OpenSDK 1.1.38
dotnet add package OpenSDK --version 1.1.38
NuGet\Install-Package OpenSDK -Version 1.1.38
<PackageReference Include="OpenSDK" Version="1.1.38" />
<PackageVersion Include="OpenSDK" Version="1.1.38" />
<PackageReference Include="OpenSDK" />
paket add OpenSDK --version 1.1.38
#r "nuget: OpenSDK, 1.1.38"
#:package OpenSDK@1.1.38
#addin nuget:?package=OpenSDK&version=1.1.38
#tool nuget:?package=OpenSDK&version=1.1.38
OpenSDK - WebApi Geliştirme Araçları
OpenSDK, .NET 8 tabanlı WebApi projeleri için geliştirilmiş, geliştirme sürecini hızlandıran ve standartlaştıran kapsamlı bir araç kütüphanesidir. Kimlik doğrulama, validasyon, medya işlemleri, veritabanı yardımcıları ve birçok yardımcı fonksiyonu içerisinde barındırır.
🚀 Temel Özellikler
- Merkezi Konfigürasyon:
AppSettingssınıfı ileappsettings.jsonayarlarına kolay erişim. - Genişletilmiş Tip Destekleri:
string,DateTime,numericgibi temel tipler için onlarca extension metodu. - Medya İşlemleri: Görüntü boyutlandırma, filigran ekleme, FFmpeg entegrasyonu ile video kare yakalama ve logo ekleme.
- Veritabanı Araçları: SQL Server ve SQLite için Dapper benzeri hızlı sorgu ve işlem yetenekleri.
- Google Entegrasyonu: Google OAuth2 ID Token ve Access Token doğrulama işlemleri.
- SignalR Kolaylığı: Mesaj gönderim işlemlerini basitleştiren extensionlar.
- Ofis ve PDF: MiniExcel ile Excel işlemleri ve PuppeteerSharp ile PDF üretim desteği.
📦 Kullanılan Paketler ve Amaçları
| Paket | Kullanım Amacı |
|---|---|
Microsoft.AspNetCore.Authentication.JwtBearer |
JWT tabanlı kimlik doğrulama altyapısı. |
FluentValidation.AspNetCore |
Model ve DTO doğrulama kuralları. |
Microsoft.AspNetCore.Mvc.Versioning |
API versiyonlama (v1, v2 vb.) desteği. |
Swashbuckle.AspNetCore |
Swagger/OpenAPI dökümantasyonu ve UI. |
PuppeteerSharp |
Chromium tabanlı tarayıcı otomasyonu ve PDF üretimi. |
MiniExcel |
Yüksek performanslı Excel okuma ve yazma işlemleri. |
Seq.Extensions.Logging |
Seq loglama sunucusu entegrasyonu. |
Microsoft.Data.Sqlite |
SQLite veritabanı bağlantı desteği. |
System.Data.SqlClient |
SQL Server veritabanı bağlantı desteği. |
System.Drawing.Common |
Resim işleme ve grafik operasyonları. |
🛠 Kurulum ve Yapılandırma
1. Başlatma
Uygulamanın Program.cs dosyasında AppSettings sınıfını initialize etmeniz gerekir:
var builder = WebApplication.CreateBuilder(args);
builder.InitApplication(); // appsettings.json dosyasını yükler ve statik erişime açar.
2. Veritabanı Bağlantısı
appsettings.json içerisinde aşağıdaki bağlantı dizelerini tanımlayabilirsiniz:
{
"ConnectionStrings": {
"DefaultConnectionString": "Server=...;Database=...;",
"HangFireConnectionString": "..."
}
}
💡 Genişletme Metotları (Extensions)
String Extensions
IsEmpty()/IsBlank(): Boşluk kontrolü.ToSlug(): Metni URL dostu formata çevirir.ClearTrChars(): Türkçe karakterleri temizler.MaskEmail()/MaskPhone(): Hassas verileri maskeler.Sanitize(): SQL Injection risklerini temizler.
DateTime Extensions
ToTrString(): Tarihi Türkiye formatına çevirir (dd.MM.yyyy).ToRelativeTime(): "3 dakika önce", "Dün" gibi metinler üretir.AddBusinessDays(): Hafta sonlarını atlayarak iş günü ekler.GetFirstDayOfMonth()/GetLastDayOfMonth(): Ayın başı ve sonunu döner.
Validation Extensions
IsTcNo(): T.C. Kimlik numarası algoritma doğrulaması.IsIban(): IBAN doğrulaması (Mod 97).IsCreditCard(): Luhn algoritması ile kart doğrulaması.IsTrPhone(): Türkiye telefon formatı kontrolü.
🔧 Fonksiyonlar (Functions)
MediaFunctions
Medya işlemleri için MediaFunctions sınıfını kullanabilirsiniz:
UploadFileAsync: Dosya yükleme.AddWatermarkAndResizeAsync: Resme filigran ekleme ve yeniden boyutlandırma.CaptureVideoFrameAsync: Videodan kare yakalama (FFmpeg gerektirir).ZipFilesAsync: Dosyaları ZIP paketine dönüştürme.
Database Functions
SqlFunctions ve SqliteFunctions sınıfları üzerinden:
List<T> GetList<T>(query): Sorgu sonucunu liste olarak döner.T GetSingle<T>(query): Tek bir kayıt döner.Execute(query): Insert/Update/Delete işlemlerini yürütür.
GoogleFunctions
Google Login entegrasyonu için:
VerifyGoogleToken(idToken): Token doğruluğunu ve kullanıcı bilgilerini kontrol eder.
📡 SignalR Desteği
AppHubExtensions ile Hub operasyonları çok daha kolay:
// Tüm istemcilere mesaj gönder
await hubContext.SendToAll("Notification", new { message = "Sistem güncellendi" });
// Belirli bir kullanıcıya gönder
await hubContext.SendToUser("DirectMessage", data, userId);
🛡 Güvenlik ve Katmanlar
- Middlewares:
ApplicationHeaderMiddlewareile her yanıta özel uygulama başlıkları eklenir.LogMiddlewareile istekler loglanır. - Wrappers:
ServiceResult<T>yapısı ile tüm API yanıtları standart bir formatta döner:{ "data": { ... }, "isSuccess": true, "message": "İşlem başarılı" }
Bu SDK, modern yazılım standartlarına uygun olarak sürekli güncellenmektedir.
| 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 was computed. 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 was computed. 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. |
-
net8.0
- AspNetCore.HealthChecks.UI.Client (>= 9.0.0)
- AutoMapper.Extensions.Microsoft.DependencyInjection (>= 12.0.1)
- Cronos (>= 0.11.1)
- Dapper (>= 2.1.44)
- FluentFTP (>= 53.0.2)
- FluentValidation.AspNetCore (>= 11.3.0)
- FluentValidation.DependencyInjectionExtensions (>= 11.9.0)
- MailKit (>= 4.14.1)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.0)
- Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation (>= 8.0.0)
- Microsoft.AspNetCore.Mvc.Versioning (>= 5.1.0)
- Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer (>= 5.1.0)
- Microsoft.AspNetCore.OpenApi (>= 8.0.0)
- Microsoft.Data.Sqlite (>= 8.0.0)
- Microsoft.EntityFrameworkCore.Design (>= 9.0.12)
- Microsoft.EntityFrameworkCore.Proxies (>= 9.0.12)
- Microsoft.EntityFrameworkCore.SqlServer (>= 9.0.12)
- Microsoft.EntityFrameworkCore.Tools (>= 9.0.12)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.0)
- Microsoft.SemanticKernel (>= 1.70.0)
- MiniExcel (>= 1.42.0)
- MiniWord (>= 0.9.2)
- MySqlConnector (>= 2.3.5)
- NEST (>= 6.0.1)
- Ocelot.Provider.Consul (>= 22.0.0)
- PuppeteerSharp (>= 20.2.5)
- RabbitMQ.Client (>= 6.8.1)
- Seq.Extensions.Logging (>= 6.1.0)
- StackExchange.Redis (>= 2.8.16)
- Swashbuckle.AspNetCore (>= 6.5.0)
- Swashbuckle.AspNetCore.Annotations (>= 6.5.0)
- System.Data.SqlClient (>= 4.8.6)
- System.Drawing.Common (>= 8.0.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.38 | 41 | 2/13/2026 |
| 1.1.37 | 39 | 2/12/2026 |
| 1.1.36 | 37 | 2/12/2026 |
| 1.1.35 | 42 | 2/12/2026 |
| 1.1.34 | 46 | 2/4/2026 |
| 1.1.33 | 48 | 2/2/2026 |
| 1.1.32 | 47 | 2/2/2026 |
| 1.1.31 | 51 | 2/1/2026 |
| 1.1.30 | 49 | 1/30/2026 |
| 1.1.29 | 52 | 1/30/2026 |
| 1.1.28 | 50 | 1/29/2026 |
| 1.1.27 | 47 | 1/28/2026 |
| 1.1.26 | 50 | 1/28/2026 |
| 1.1.24 | 53 | 1/28/2026 |
| 1.1.23 | 45 | 1/28/2026 |
| 1.1.22 | 46 | 1/28/2026 |
| 1.1.21 | 48 | 1/28/2026 |
| 1.1.20 | 39 | 1/28/2026 |
| 1.1.19 | 46 | 1/28/2026 |
| 1.1.18 | 42 | 1/28/2026 |