{"id":21228146,"url":"https://github.com/iamyasinkaya/morwinyon","last_synced_at":"2026-04-30T19:31:52.024Z","repository":{"id":206832164,"uuid":"717798599","full_name":"iamyasinkaya/Morwinyon","owner":"iamyasinkaya","description":"Morwinyon, geliştiricilere var olan .NET yazılım projelerine ek işlevsellikler kazandırmak için tasarlanmış bir NuGet paketi uzantısıdır.","archived":false,"fork":false,"pushed_at":"2024-08-10T06:41:24.000Z","size":175,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-03T02:30:23.201Z","etag":null,"topics":["caching","extension","openapi","swagger","validation","versioning"],"latest_commit_sha":null,"homepage":"https://www.morwinyon.io","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamyasinkaya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-12T16:26:29.000Z","updated_at":"2025-02-03T07:05:02.000Z","dependencies_parsed_at":"2023-12-16T12:04:36.557Z","dependency_job_id":"cf75bed5-54bf-403d-9268-8ec773cc1431","html_url":"https://github.com/iamyasinkaya/Morwinyon","commit_stats":{"total_commits":17,"total_committers":2,"mean_commits":8.5,"dds":"0.17647058823529416","last_synced_commit":"1c1de459b68c6797d48567e2f438143a8ccda05c"},"previous_names":["iamyasinkaya/morwinyon"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iamyasinkaya/Morwinyon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamyasinkaya%2FMorwinyon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamyasinkaya%2FMorwinyon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamyasinkaya%2FMorwinyon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamyasinkaya%2FMorwinyon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamyasinkaya","download_url":"https://codeload.github.com/iamyasinkaya/Morwinyon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamyasinkaya%2FMorwinyon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32475191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caching","extension","openapi","swagger","validation","versioning"],"created_at":"2024-11-20T23:14:41.356Z","updated_at":"2026-04-30T19:31:52.007Z","avatar_url":"https://github.com/iamyasinkaya.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Morwinyon - .NET Platformu için Genişletilmiş NuGet Paketi Uzantısı\n\n**Morwinyon**, geliştiricilere var olan .NET yazılım projelerine ek işlevsellikler kazandırmak için tasarlanmış bir NuGet paketi uzantısıdır. Bu uzantı, genişletilmiş ve özelleştirilmiş özellikler sunarak geliştirme süreçlerini hızlandırır ve yazılım projelerinin kalitesini artırır.\n\n![Durum](https://img.shields.io/badge/durum-aktif-brightgreen)\n![Lisans](https://img.shields.io/badge/lisans-MIT-blue)\n\n## Özellikler\n\n- **Exception Handling (İstisna Yönetimi)**: \n  - Kodlarda oluşabilecek istisnai durumları yönetmek için entegre çözümler sunar.\n  - İstisnaları yakalamak, günlüğe kaydetmek ve yönetmek için standartlaştırılmış yöntemler sağlar.\n\n- **Versioning (Sürüm Yönetimi)**: \n  - Projenizin farklı sürümlerini kolaylıkla yönetmenizi sağlayan özellikler sunar.\n  - API'lerinizi farklı sürümler halinde yönetmenize yardımcı olur.\n\n- **Validation (Doğrulama)**: \n  - Gelen verilerin veya isteklerin doğruluğunu kontrol eder.\n  - Kullanıcıdan gelen bilgileri kontrol ederek, yanlış veya hatalı verilerin sisteme girmesini engeller.\n\n- **OpenApi**: \n  - API'nin nasıl kullanılacağını belirlemeye yardımcı olur.\n  - Kullanıcıların API'yi daha iyi anlamalarına ve doğru şekilde kullanmalarına yardımcı olur; yani, API'nin kullanım kılavuzu gibi düşünebilirsiniz.\n\n- **Caching (Önbellekleme)**: \n  - Tüm cache yöntemlerini tek bir çatı altında barındırır.\n  - Performansı artırmak için sık erişilen verilerin önbelleğe alınmasını sağlar.\n\n## Kurulum\n\nMorwinyon'u yerel ortamınızda kullanmaya başlamak için şu adımları izleyin:\n\n1. Depoyu klonlayın:\n    ```bash\n    git clone https://github.com/iamyasinkaya/Morwinyon.git\n    ```\n2. Proje dizinine gidin:\n    ```bash\n    cd Morwinyon\n    ```\n3. Gerekli bağımlılıkları yükleyin:\n    ```bash\n    dotnet restore\n    ```\n\n## Kullanım\n\nMorwinyon'un bazı temel özelliklerini kullanmak için örnekler:\n\n### Exception Handling (İstisna Yönetimi)\n\nGlobal istisna yönetimini uygulamak için:\n\n1. `Startup.cs` dosyanıza istisna yönetimi ara yazılımını ekleyin:\n    ```csharp\n    app.UseExceptionHandling();\n    ```\n2. İstisna yanıtlarını özelleştirin:\n    ```csharp\n    try\n    {\n        // Kendi kodlarınız\n    }\n    catch (Exception ex)\n    {\n        _logger.LogError(ex, \"Bir hata oluştu\");\n        throw new CustomException(\"Özel hata mesajı\", ex);\n    }\n    ```\n\n### Versioning (Sürüm Yönetimi)\n\nAPI sürüm yönetimini uygulamak için:\n\n1. `Startup.cs` dosyanızda sürüm yönetimini yapılandırın:\n    ```csharp\n    services.AddApiVersioning(options =\u003e\n    {\n        options.AssumeDefaultVersionWhenUnspecified = true;\n        options.DefaultApiVersion = new ApiVersion(1, 0);\n        options.ReportApiVersions = true;\n    });\n    ```\n2. Denetleyicilerinize sürüm yönetimi öznitelikleri ekleyin:\n    ```csharp\n    [ApiVersion(\"1.0\")]\n    [Route(\"api/v{version:apiVersion}/[controller]\")]\n    public class MyController : ControllerBase\n    {\n        // İşlemler burada\n    }\n    ```\n\n### Validation (Doğrulama)\n\nDoğrulama uzantı yöntemlerini kullanmak için:\n\n1. Basit veri tiplerini doğrulayın:\n    ```csharp\n    var isValid = myString.IsValidEmail();\n    ```\n2. Özel doğrulama kurallarını uygulayın:\n    ```csharp\n    var validationResult = myObject.ValidateWith(customValidator);\n    ```\n\n### OpenApi\n\nAPI'nizin kullanıcılar tarafından daha iyi anlaşılmasını ve doğru kullanılmasını sağlamak için OpenApi desteğini ekleyin:\n\n1. `Startup.cs` dosyanızda OpenApi'yi etkinleştirin:\n    ```csharp\n    services.AddSwaggerGen(c =\u003e\n    {\n        c.SwaggerDoc(\"v1\", new OpenApiInfo { Title = \"My API\", Version = \"v1\" });\n    });\n    ```\n2. Uygulamanıza Swagger ara yazılımını ekleyin:\n    ```csharp\n    app.UseSwagger();\n    app.UseSwaggerUI(c =\u003e\n    {\n        c.SwaggerEndpoint(\"/swagger/v1/swagger.json\", \"My API V1\");\n    });\n    ```\n\n### Caching (Önbellekleme)\n\nÖnbellekleme özelliğini kullanarak performansınızı artırın:\n\n1. `Startup.cs` dosyanıza önbellekleme hizmetini ekleyin:\n    ```csharp\n    services.AddMemoryCache();\n    ```\n2. Hizmetinizde önbellekleme uzantı yöntemini kullanın:\n    ```csharp\n    var cachedData = await _cache.GetOrCreateAsync(\"cacheKey\", entry =\u003e\n    {\n        entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(5);\n        return _yourDataFetchingMethod();\n    });\n    ```\n\n## Yapılandırma\n\nMorwinyon'u çeşitli ayarlarla özelleştirebilirsiniz:\n\n- **Caching (Önbellekleme)**:\n  - `appsettings.json` dosyasında önbellek sürelerini ve stratejilerini ayarlayın.\n- **Exception Handling (İstisna Yönetimi)**:\n  - Ara yazılım yapılandırması aracılığıyla istisna yönetimi davranışını özelleştirin.\n- **Validation (Doğrulama)**:\n  - Uygulamanızın ihtiyaçlarına göre doğrulama kurallarını ve stratejilerini yapılandırın.\n- **Versioning (Sürüm Yönetimi)**:\n  - Sürüm yönetimini öznitelikler ve yapılandırma ayarları aracılığıyla yönetin.\n\n## Katkıda Bulunma\n\nMorwinyon'a katkıda bulunmak isterseniz, lütfen şu adımları izleyin:\n\n1. Depoyu forklayın.\n2. Yeni bir özellik veya hata düzeltmesi için bir dal oluşturun (`git checkout -b feature/YourFeatureName`).\n3. Değişikliklerinizi commit edin (`git commit -m 'Anlamlı bir commit mesajı ekleyin'`).\n4. Dalı push edin (`git push origin feature/YourFeatureName`).\n5. `main` dalına bir Pull Request açın.\n\nKodunuzun kodlama standartlarımıza uygun olduğundan ve uygun testleri içerdiğinden emin olun.\n\n## Lisans\n\nBu proje MIT Lisansı altında lisanslanmıştır - ayrıntılar için [LICENSE](LICENSE) dosyasına bakın.\n\n\n\n## İletişim\n\nHerhangi bir soru, öneri veya geri bildirim için bizimle iletişime geçebilirsiniz:\n\n- **Adı**: Yasin Kaya\n- **E-posta**: iamyasinkaya@gmail.com\n- **LinkedIn**: [Yasin Kaya](https://www.linkedin.com/in/iamyasinkaya)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamyasinkaya%2Fmorwinyon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamyasinkaya%2Fmorwinyon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamyasinkaya%2Fmorwinyon/lists"}