OpenSDK 1.1.38

dotnet add package OpenSDK --version 1.1.38
                    
NuGet\Install-Package OpenSDK -Version 1.1.38
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenSDK" Version="1.1.38" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OpenSDK" Version="1.1.38" />
                    
Directory.Packages.props
<PackageReference Include="OpenSDK" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OpenSDK --version 1.1.38
                    
#r "nuget: OpenSDK, 1.1.38"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OpenSDK@1.1.38
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OpenSDK&version=1.1.38
                    
Install as a Cake Addin
#tool nuget:?package=OpenSDK&version=1.1.38
                    
Install as a Cake Tool

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: AppSettings sınıfı ile appsettings.json ayarlarına kolay erişim.
  • Genişletilmiş Tip Destekleri: string, DateTime, numeric gibi 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: ApplicationHeaderMiddleware ile her yanıta özel uygulama başlıkları eklenir. LogMiddleware ile 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
Loading failed