DevSDK 2.1.61
See the version list below for details.
dotnet add package DevSDK --version 2.1.61
NuGet\Install-Package DevSDK -Version 2.1.61
<PackageReference Include="DevSDK" Version="2.1.61" />
<PackageVersion Include="DevSDK" Version="2.1.61" />
<PackageReference Include="DevSDK" />
paket add DevSDK --version 2.1.61
#r "nuget: DevSDK, 2.1.61"
#:package DevSDK@2.1.61
#addin nuget:?package=DevSDK&version=2.1.61
#tool nuget:?package=DevSDK&version=2.1.61
DevSDK - Yazılım Geliştirme Kiti
DevSDK, .NET 8.0 tabanlı kapsamlı bir yazılım geliştirme kitidir. Bu kütüphane, modern web uygulamaları ve API'ler geliştirmek için gerekli tüm araçları ve servisleri içerir.
📋 İçindekiler
- Özellikler
- Kurulum
- Hızlı Başlangıç
- Modüller
- Servisler
- Uzantılar (Extensions)
- Yapılandırma
- Örnekler
- Katkıda Bulunma
🚀 Özellikler
Core Özellikler
- ✅ Entity Framework Core ile ORM desteği
- ✅ AutoMapper ile nesne eşleme
- ✅ Dapper ile yüksek performanslı SQL işlemleri
- ✅ Redis önbellekleme sistemi
- ✅ RabbitMQ mesaj kuyruğu
- ✅ ElasticSearch arama motoru entegrasyonu
- ✅ JWT tabanlı kimlik doğrulama
- ✅ FluentValidation ile doğrulama
- ✅ Swagger API dokümantasyonu
- ✅ Çok dilli (i18n) destek
Web SDK Özellikleri
- 🎨 Form Bileşenleri (TextBox, Select, CheckBox, vb.)
- 📊 Bootstrap Table entegrasyonu
- 🍞 Breadcrumb navigasyon
- 🎛️ Toolbar bileşenleri
- ✅ Özel Validatörler (TC Kimlik, IBAN, Telefon, vb.)
API SDK Özellikleri
- 🔒 Middleware sistemi
- 🎯 Custom Filters
- 📡 Header yönetimi
- 🔐 JWT konfigürasyonu
- 🌐 CORS ayarları
- 📖 Swagger konfigürasyonu
Alt Servisler
- 📧 Mail Gönderimi
- 🌤️ Hava Durumu servisi
- 📍 Coğrafi Konum servisi
- 💰 Döviz Kuru servisi
- 📰 Haber servisi
- 🔔 OneSignal push notification
- 🆔 TC Kimlik doğrulama
- ⏰ DateTime yardımcı servisi
📦 Kurulum
NuGet Paketi ile
dotnet add package DevSDK
Manuel Kurulum
git clone https://github.com/velifiliz/DevSDK.git
dotnet build
🏁 Hızlı Başlangıç
1. Servisleri Kaydetme
// Program.cs
using DevSDK;
var builder = WebApplication.CreateBuilder(args);
// DevSDK servislerini kaydet
builder.Services.AddCoreServices(Assembly.GetExecutingAssembly());
var app = builder.Build();
// DevSDK middleware'lerini kullan
app.UseCoreServices(Assembly.GetExecutingAssembly(), "tr-TR");
app.Run();
2. Temel Entity Oluşturma
using DevSDK.Common;
public class User : BaseEntity
{
public string Name { get; set; }
public string Email { get; set; }
public DateTime CreatedDate { get; set; }
}
3. Repository Kullanımı
public class UserService
{
private readonly IRepositoryAsync<AppDbContext> _repository;
public UserService(IRepositoryAsync<AppDbContext> repository)
{
_repository = repository;
}
public async Task<User> GetUserAsync(int id)
{
return await _repository.GetByIdAsync<User>(id);
}
public async Task<bool> CreateUserAsync(User user)
{
return await _repository.AddOrUpdateAsync(user);
}
}
🧩 Modüller
1. Common (Ortak Bileşenler)
- BaseEntity: Tüm entity'ler için temel sınıf
- BaseAuditableEntity: Audit özellikli entity'ler için
- MappingProfile: AutoMapper profil yönetimi
- CurrentUserInfo: Mevcut kullanıcı bilgileri
- ValueObject: Değer nesneleri için temel sınıf
2. DataExtensions (Veri Uzantıları)
- IRepositoryAsync: Asenkron repository interface'i
- AppRepositoryAsync: Repository implementasyonu
- AppDataExtensions: Veri erişim uzantıları
- ModelBuilderExtensions: Entity Framework uzantıları
3. WebSDK (Web Geliştirme Kiti)
Form Bileşenleri
FormTextBox: Metin giriş kutusuFormSelect: Seçim kutusuFormCheckBox: Onay kutusuFormRadio: Radyo düğmesiFormTextArea: Çok satırlı metin alanıFormTextEditor: Zengin metin editörü
Validatörler
TCKimlikValidatorAttribute: TC Kimlik numarası doğrulamaIBANValidatorAttribute: IBAN numarası doğrulamaMailValidatorAttribute: E-posta doğrulamaPhoneValidatorAttribute: Telefon numarası doğrulama
4. ApiSDK (API Geliştirme Kiti)
- JWT Authentication: Token tabanlı kimlik doğrulama
- Swagger Configuration: API dokümantasyon ayarları
- CORS Configuration: Cross-origin ayarları
- Custom Middlewares: Özel middleware'ler
- API Filters: Özel filtreler
🔧 Servisler
Redis Önbellekleme Servisi
public class ProductService
{
private readonly IRedisMultiplexerService _redis;
public async Task<Product> GetProductAsync(int id)
{
var cacheKey = $"product:{id}";
var product = _redis.Get<Product>(cacheKey);
if (product == null)
{
// Veritabanından getir
product = await GetProductFromDatabase(id);
_redis.AddOrUpdate(cacheKey, product, 60); // 60 dakika cache
}
return product;
}
}
RabbitMQ Mesaj Servisi
public class NotificationService
{
private readonly IRabbitMQService _rabbitMQ;
public async Task SendNotificationAsync(string message)
{
await _rabbitMQ.PublishAsync("notifications", message);
}
}
Mail Gönderim Servisi
public class EmailService
{
private readonly IMailSenderService _mailService;
public async Task SendWelcomeEmailAsync(string email, string name)
{
var subject = "Hoş Geldiniz!";
var body = $"Merhaba {name}, sistemimize hoş geldiniz!";
await _mailService.SendEmailAsync(email, subject, body);
}
}
🔄 Uzantılar (Extensions)
String Uzantıları
// E-posta maskeleme
"test@example.com".MaskEmailAddress(); // "t***@example.com"
// Türkçe karakter dönüşümü
"Çalışkan Öğrenci".ConvertTurkishCharactersToAscii(); // "Caliskan Ogrenci"
// MD5 hash
"password123".ToMd5Hash(); // "482c811da5d5b4bc6d497ffa98491e38"
// Dosya boyutu formatı
1024L.ToFileSize(); // "1 KB"
DateTime Uzantıları
// Türkçe tarih formatı
DateTime.Now.ToTurkishDateString(); // "15 Ocak 2024"
// Yaş hesaplama
birthDate.CalculateAge(); // 25
// İş günü kontrolü
DateTime.Now.IsWorkingDay(); // true/false
Enum Uzantıları
public enum Status
{
[Display(Name = "Aktif")]
Active,
[Display(Name = "Pasif")]
Inactive
}
Status.Active.GetDisplayName(); // "Aktif"
⚙️ Yapılandırma
appsettings.json
{
"ConnectionStrings": {
"DefaultConnectionString": "Server=.;Database=MyApp;Trusted_Connection=true;",
"HangFireConnectionString": "Server=.;Database=HangFire;Trusted_Connection=true;"
},
"RedisSettings": {
"Host": "localhost",
"Port": 6379,
"Password": "",
"Db": 0,
"KeyPrefix": "MyApp:"
},
"RabbitMQSettings": {
"Host": "localhost",
"Port": 5672,
"Username": "guest",
"Password": "guest"
},
"ElasticSearchSettings": {
"Url": "http://localhost:9200",
"DefaultIndex": "myapp"
},
"JwtSettings": {
"SecretKey": "your-secret-key-here",
"Issuer": "MyApp",
"Audience": "MyApp-Users",
"ExpirationMinutes": 60
}
}
Dil Dosyaları
// wwwroot/languages/tr-TR.json
{
"Welcome": "Hoş Geldiniz",
"Login": "Giriş Yap",
"Register": "Kayıt Ol",
"User": {
"Name": "Kullanıcı Adı",
"Email": "E-posta"
}
}
📚 Örnekler
Çok Dilli Uygulama
// Controller'da
public class HomeController : Controller
{
public IActionResult Index()
{
ViewBag.WelcomeMessage = Language.Key("Welcome");
ViewBag.UserName = Language.Key("User.Name");
return View();
}
}
Form Validasyonu
public class UserViewModel
{
[LocalizedRequired]
[LocalizedDisplayName("User.Name")]
public string Name { get; set; }
[MailValidator]
[LocalizedDisplayName("User.Email")]
public string Email { get; set; }
[TCKimlikValidator]
public string TCKimlik { get; set; }
[PhoneValidator]
public string Phone { get; set; }
}
API Controller
[ApiController]
[Route("api/[controller]")]
[RoleAuthorize(UserRole.Admin)]
public class UsersController : ControllerBase
{
private readonly IRepositoryAsync<AppDbContext> _repository;
[HttpGet]
public async Task<IActionResult> GetUsers()
{
var users = await _repository.GetAllAsync<User>();
return Ok(users);
}
[HttpPost]
public async Task<IActionResult> CreateUser([FromBody] User user)
{
var result = await _repository.AddOrUpdateAsync(user);
return result ? Ok() : BadRequest();
}
}
🏗️ Proje Yapısı
DevSDK/
├── 📁 ApiSDK/ # API geliştirme araçları
│ ├── 📁 Attributes/ # API attribute'ları
│ ├── 📁 Filters/ # API filtreleri
│ ├── 📁 Jwt/ # JWT yapılandırması
│ ├── 📁 Middlewares/ # Özel middleware'ler
│ └── 📁 Settings/ # API ayarları
├── 📁 Attributes/ # Genel attribute'lar
├── 📁 Builders/ # Builder pattern sınıfları
├── 📁 Common/ # Ortak bileşenler
├── 📁 Constants/ # Sabit değerler
├── 📁 DataExtensions/ # Veri erişim uzantıları
├── 📁 Extensions/ # Uzantı metodları
├── 📁 Functions/ # Yardımcı fonksiyonlar
├── 📁 Settings/ # Uygulama ayarları
├── 📁 SubServices/ # Alt servisler
│ └── 📁 Contracts/ # Servis interface'leri
├── 📁 WebSDK/ # Web geliştirme araçları
│ ├── 📁 Components/ # Web bileşenleri
│ └── 📁 Validators/ # Web validatörleri
├── 📁 Wrappers/ # Wrapper sınıfları
├── 📄 AppSettings.cs # Uygulama ayarları
├── 📄 Language.cs # Dil yönetimi
├── 📄 _global.cs # Global using'ler
└── 📄 _register.cs # Servis kayıtları
🛠️ Bağımlılıklar
Ana Bağımlılıklar
- .NET 8.0 - Temel framework
- Entity Framework Core - ORM
- AutoMapper - Nesne eşleme
- Dapper - Mikro ORM
- StackExchange.Redis - Redis client
- RabbitMQ.Client - Message queue
- NEST - ElasticSearch client
- FluentValidation - Doğrulama
- Swashbuckle.AspNetCore - Swagger
Ek Kütüphaneler
- MiniExcel - Excel işlemleri
- OneSignalApi - Push notification
- RestSharp - HTTP client
- MediatR - CQRS pattern
- Iyzipay - Ödeme sistemi
🤝 Katkıda Bulunma
- Projeyi fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request oluşturun
📄 Lisans
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
👤 Yazar
Veli Filiz
- GitHub: @velifiliz
📞 Destek
Herhangi bir sorunuz veya öneriniz için:
- GitHub Issues kullanın
- E-posta gönderin: [e-posta adresi]
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!
services.AddCustomAutoMapper(assembly, otherAssembly); services.AddRepositoryServices(); services.AddDbAuditServices(); services.AddMailSenderServices(); services.AddRedisMultiplexerServices(); services.AddRabbitMQServices(); services.AddHttpClientServices(); services.AddElasticSearchServices(); services.AddOneSignalServices(); services.AddTransient<ICurrencyService,CurrencyService>(); services.AddTransient<IWeatherService, WeatherService>(); services.AddTransient<IGeoLocationService, GeoLocationService>();
| 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
- AutoMapper.Extensions.Microsoft.DependencyInjection (>= 12.0.1)
- Dapper (>= 2.1.44)
- Ical.Net.NetCore (>= 4.1.11)
- Iyzipay (>= 2.1.67)
- MediatR (>= 12.0.0)
- Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation (>= 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)
- MiniExcel (>= 1.31.3)
- NEST (>= 6.0.1)
- PuppeteerSharp (>= 20.2.5)
- RabbitMQ.Client (>= 6.8.1)
- RestSharp (>= 106.15.0)
- Seq.Extensions.Logging (>= 6.1.0)
- SqlTableDependency (>= 8.5.8)
- StackExchange.Redis (>= 2.8.16)
- System.Data.SqlClient (>= 4.8.6)
- System.Drawing.Common (>= 8.0.6)
- System.ServiceModel.Syndication (>= 9.0.4)
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 |
|---|---|---|
| 2.1.66 | 94 | 1/28/2026 |
| 2.1.65 | 97 | 1/22/2026 |
| 2.1.64 | 92 | 1/19/2026 |
| 2.1.63 | 95 | 1/18/2026 |
| 2.1.62 | 84 | 1/17/2026 |
| 2.1.61 | 91 | 1/17/2026 |
| 2.1.60 | 87 | 1/17/2026 |
| 2.1.59 | 98 | 1/17/2026 |
| 2.1.58 | 96 | 1/17/2026 |
| 2.1.57 | 129 | 1/17/2026 |
| 2.1.56 | 88 | 1/17/2026 |
| 2.1.55 | 91 | 1/17/2026 |
| 2.1.54 | 90 | 1/17/2026 |
| 2.1.53 | 87 | 1/17/2026 |
| 2.1.52 | 87 | 1/17/2026 |
| 2.1.51 | 256 | 9/14/2025 |
| 2.1.50 | 137 | 8/23/2025 |
| 2.1.49 | 167 | 8/17/2025 |
| 2.1.48 | 162 | 8/17/2025 |
| 2.1.47 | 175 | 8/17/2025 |