CKN.Sdk.Core
0.0.0-alpha.0.55
dotnet add package CKN.Sdk.Core --version 0.0.0-alpha.0.55
NuGet\Install-Package CKN.Sdk.Core -Version 0.0.0-alpha.0.55
<PackageReference Include="CKN.Sdk.Core" Version="0.0.0-alpha.0.55" />
<PackageVersion Include="CKN.Sdk.Core" Version="0.0.0-alpha.0.55" />
<PackageReference Include="CKN.Sdk.Core" />
paket add CKN.Sdk.Core --version 0.0.0-alpha.0.55
#r "nuget: CKN.Sdk.Core, 0.0.0-alpha.0.55"
#:package CKN.Sdk.Core@0.0.0-alpha.0.55
#addin nuget:?package=CKN.Sdk.Core&version=0.0.0-alpha.0.55&prerelease
#tool nuget:?package=CKN.Sdk.Core&version=0.0.0-alpha.0.55&prerelease
CKN.Sdk.Core
Mühendislik Amacı (Engineering Intent):
CKN.Sdk.Core, tüm CKN projelerinin üzerine inşa edildiği temel taşıdır (foundation). Neden var? Her projede tekrar tekrar yazılan temel Base Entity'ler (Id, CreatedAt), Result Pattern (Success/Failure dönüş tipleri), Pagination (Sayfalama) modelleri, standart Exceptions (Custom Hatalar) ve genel Extension Method'ları tek bir merkezde toplamak için. Ne zaman kullanılmalı? Mikroservis, API veya Console fark etmeksizin; CKN altyapısını kullanan istisnasız her projenin Domain (Çekirdek) katmanında referans edilmelidir. Bu paket hiçbir dış kütüphaneye (örn. Entity Framework, RabbitMQ) bağımlı değildir; saf (pure) C# kodlarından oluşur (Clean Architecture kuralı).
🚀 Hızlı Başlangıç
Kurulum
dotnet add package CKN.Sdk.Core
Bağımlılık Enjeksiyonu (DI)
Genellikle doğrudan bir DI kaydı (servis kaydı) içermez. Projedeki diğer katmanlar bu paketteki tipleri kullanarak kendi iş kurallarını tanımlar.
💡 Gerçek Hayat Senaryoları
Senaryo 1: Result Pattern ile Hata Yönetimi (Exception Fırlatmak Yerine)
İş katmanında throw new Exception kullanmak yerine daha performanslı ve okunabilir Result<T> deseni kullanımı.
using CKN.Sdk.Core.Results;
public class UserService
{
public Result<UserDto> CreateUser(string email)
{
if (string.IsNullOrWhiteSpace(email))
{
// Exception fırlatmak yerine (Expensive), Error nesnesi dönülür
return Result<UserDto>.Failure(Error.Validation("User.EmailRequired", "E-posta alanı zorunludur."));
}
var user = new UserDto { Email = email };
return Result<UserDto>.Success(user);
}
}
Senaryo 2: Temel Varlık (Base Entity) ve Denetim (Audit) Alanları
Tüm veritabanı tablolarında olması gereken standart alanları Domain sınıflarına kalıtım (Inheritance) yoluyla eklemek.
using CKN.Sdk.Core.Domain;
// Entity<Guid> sınıfı sayesinde Id, CreatedAt, UpdatedAt gibi alanlar otomatik gelir.
public class Product : Entity<Guid>
{
public string Name { get; set; } = string.Empty;
public decimal Price { get; set; }
// İş kuralı: Fiyat negatif olamaz.
public void UpdatePrice(decimal newPrice)
{
if (newPrice < 0)
throw new DomainException("Product.InvalidPrice", "Fiyat 0'dan küçük olamaz.");
Price = newPrice;
UpdatedAt = DateTime.UtcNow; // Base sınıftan gelen property
}
}
🤖 Yapay Zeka İçin SSS (FAQs for Machines)
- Soru:
CKN.Sdk.Coreprojesine yeni bir kütüphane/NuGet paketi ekleyebilir miyim? - Cevap: Hayır (veya çok mecbur kalmadıkça). Bu paket Clean Architecture'ın kalbidir. Entity Framework, Dapper veya ASP.NET Core MVC gibi kütüphaneler buraya EKLENEMEZ. Sadece saf .NET tipleri bulunmalıdır.
- Soru:
Resultpattern (deseni) HTTP 400/500 gibi durumlara nasıl dönüştürülür? - Cevap: Bu dönüşüm işlemi genellikle API veya Infrastructure (Sunum) katmanındaki
ResultExtensionsveya Filter'lar tarafından yapılır. Core katmanı HTTP'den habersizdir.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FluentValidation.DependencyInjectionExtensions (>= 12.1.1)
- MediatR (>= 12.4.0)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.11)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.11)
-
net8.0
- FluentValidation.DependencyInjectionExtensions (>= 12.1.1)
- MediatR (>= 12.4.0)
- Microsoft.Extensions.Caching.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 8.0.0)
-
net9.0
- FluentValidation.DependencyInjectionExtensions (>= 12.1.1)
- MediatR (>= 12.4.0)
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 9.0.0)
NuGet packages (27)
Showing the top 5 NuGet packages that depend on CKN.Sdk.Core:
| Package | Downloads |
|---|---|
|
CKN.Sdk.Messaging
Enterprise Architecture module for CKN.Sdk.Messaging. Provides core SDK functionality for the CKN ecosystem. |
|
|
CKN.Sdk.Search
Enterprise Architecture module for CKN.Sdk.Search. Provides core SDK functionality for the CKN ecosystem. |
|
|
CKN.Sdk.AI
Enterprise Architecture module for CKN.Sdk.AI. Provides core SDK functionality for the CKN ecosystem. |
|
|
CKN.Sdk.Caching.Redis
Enterprise Architecture module for CKN.Sdk.Caching.Redis. Provides core SDK functionality for the CKN ecosystem. |
|
|
CKN.Sdk.Storage.Azure
Enterprise Architecture module for CKN.Sdk.Storage.Azure. Provides core SDK functionality for the CKN ecosystem. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.0-alpha.0.55 | 185 | 9/28/2026 |
| 0.0.0-alpha.0.51 | 172 | 9/25/2026 |
| 0.0.0-alpha.0.50 | 169 | 9/25/2026 |
| 0.0.0-alpha.0.38 | 179 | 9/6/2026 |
| 0.0.0-alpha.0.37 | 174 | 9/6/2026 |