WebSDK 1.0.11

dotnet add package WebSDK --version 1.0.11
                    
NuGet\Install-Package WebSDK -Version 1.0.11
                    
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="WebSDK" Version="1.0.11" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WebSDK" Version="1.0.11" />
                    
Directory.Packages.props
<PackageReference Include="WebSDK" />
                    
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 WebSDK --version 1.0.11
                    
#r "nuget: WebSDK, 1.0.11"
                    
#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 WebSDK@1.0.11
                    
#: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=WebSDK&version=1.0.11
                    
Install as a Cake Addin
#tool nuget:?package=WebSDK&version=1.0.11
                    
Install as a Cake Tool

WebSDK Projesi Detaylı İncelemesi

Bu belge, WebSDK projesinin yapısını, ana işlevlerini ve önemli bileşenlerini detaylı bir şekilde açıklamaktadır.

1. Proje Genel Bakışı

WebSDK, .NET 8.0 hedef çerçevesini kullanan bir kütüphane veya web uygulamasıdır. DevSDK ve Rotativa.AspNetCore gibi dış bağımlılıkları kullanarak çeşitli web tabanlı işlevsellikler sunar. Proje, modüler bir yapıya sahiptir ve güvenlik, yerelleştirme (çoklu dil desteği), form yönetimi ve UI bileşenleri gibi temel alanlara odaklanmıştır.

  • Paket Kimliği (PackageId): WebSDK
  • Sürüm (Version): 1.0.0
  • Yazarlar (Authors): Veli Filiz
  • Şirket (Company): Veli Filiz
  • Lisans (License): MIT
  • Depo (Repository): https://github.com/velifiliz
  • Hedef Çerçeve (Target Framework): net8.0

2. Temel Bileşenler ve İşlevler

2.1. register.cs - Servis Kayıt ve Uygulama Yapılandırması

Bu dosya, uygulamanın başlangıç ayarlarını ve bağımlılık enjeksiyonuna (DI) servislerin eklenmesini yönetir. Aynı zamanda HTTP isteği işleme hattını (middleware pipeline) yapılandırır.

  • AddWebCoreServices:

    • Log servisleri ve özel CORS (Cross-Origin Resource Sharing) ayarları ekler.
    • Cookie tabanlı kimlik doğrulama yapılandırır. Giriş ve erişim engellenen sayfalar /login olarak ayarlanmıştır. Çerez adı CookieAppName ayarından alınır ve çerezler 30 gün boyunca geçerlidir.
    • Yetkilendirme servisini etkinleştirir.
    • FluentValidation entegrasyonu için isteğe bağlı bir bölüm içerir (şu an yorum satırında).
  • UseWebCoreServices:

    • Statik dosyaların (wwwroot klasöründeki) sunumunu ve routing'i etkinleştirir.
    • PDF oluşturma kütüphanesi Rotativa.AspNetCore'u yapılandırır.
    • Yetkilendirme ve özel CORS middleware'lerini kullanır.
    • Her HTTP isteğinde kullanıcının dil tercihini (çerezlerden okunur) ayarlayan özel bir middleware içerir. Varsayılan dil tr-TR'dir.

2.2. global.cs - Global Using Direktifleri

Projeler arası kod tekrarını azaltmak için sık kullanılan isim alanlarını (namespaces) global olarak tanımlar. Bu sayede, bu isim alanları diğer kod dosyalarında her seferinde using direktifi yazılmadan kullanılabilir. Başlıca DevSDK ile ilgili isim alanları ve ASP.NET Core MVC, kimlik doğrulama, HTTP bağlamı, yansıma ve JSON serileştirme ile ilgili temel isim alanları burada yer alır.

2.3. Language.cs - Çoklu Dil Desteği (Localization)

Uygulamanın çoklu dil desteğini yöneten statik bir sınıftır.

  • Çevirileri bellekte önbellekler (_cache) ve performans optimizasyonu sağlar.
  • ResetCache() metodu ile önbelleği temizleme olanağı sunar.
  • Key(string key) metodu, verilen anahtara göre geçerli kültür için çeviriyi getirir. Anahtar bulunamazsa, anahtarın kendisi döndürülür.
  • Çeviriler, wwwroot/languages/{culture}.json yolundaki JSON dosyalarından yüklenir. Eğer kültüre özel dosya yoksa tr-TR.json varsayılan olarak kullanılır.
  • İç içe geçmiş anahtarları ("Anahtar.AltAnahtar") destekler.
  • GetCurrentCulture() metodu, mevcut kullanıcı arayüzü kültürünü alır; geçersiz veya boş ise tr-TR döndürür.

2.4. Common/ Dizini - Ortak Yardımcı Sınıflar

Uygulama genelinde kullanılan temel sınıfları ve yardımcı yapıları barındırır:

  • BaseViewComponent.cs: Görünüm bileşenleri için temel sınıf.
  • BaseController.cs: Denetleyiciler için temel sınıf.
  • UserPerms.cs: Kullanıcı izinleriyle ilgili tanımlamalar.
  • UserRole.cs: Kullanıcı rolleriyle ilgili tanımlamalar.
  • BaseTableFilter.cs: Temel tablo filtreleme mantığı.

2.5. Attributes/ Dizini - Özel Öznitelikler (Attributes)

ASP.NET Core'daki öznitelik mekanizmasını kullanarak özel doğrulama ve yetkilendirme işlevleri sunar:

  • RoleAuthorizeAttribute.cs: Rol tabanlı yetkilendirme kontrolü sağlar.
  • Doğrulama Öznitelikleri: MailValidatorAttribute.cs, IBANValidatorAttribute.cs, IPValidatorAttribute.cs, TCKimlikValidatorAttribute.cs, PhoneValidatorAttribute.cs gibi çeşitli veri doğrulama öznitelikleri.
  • RoleRequirement.cs: Rol tabanlı yetkilendirme gereksinimleri.
  • Yerelleştirilmiş Öznitelikler: LocalizedRequiredAttribute.cs ve LocalizedDisplayNameAttribute.cs, form alanları için yerelleştirilmiş zorunluluk ve görüntüleme adı desteği sunar.

2.6. Extensions/ Dizini - Genişletme Metotları

Mevcut sınıflara yeni işlevsellikler ekleyen genişletme metotlarını içerir:

  • PrincipalExtensions.cs: ClaimsPrincipal sınıfına (kullanıcı kimlik bilgileri) ait genişletme metotları ile kullanıcının ID'si, rolleri gibi bilgilere kolayca erişim sağlar.
  • HtmlHelperExtensions.cs: IHtmlHelper arayüzü için genişletme metotları. Bu metotlar, özel HTML etiketleri, form öğeleri veya diğer UI yardımcıları oluşturmak için kullanılabilir.

2.7. Components/ Dizini - Kullanıcı Arayüzü (UI) Bileşenleri ve Formlar

Uygulamanın kullanıcı arayüzü bileşenlerini ve form oluşturma altyapısını barındırır. Bu dizin altında çeşitli alt dizinler ve dosyalar bulunur:

  • Alt Dizinler: Menu/, BreadCrumb/, BootstrapTable/ gibi spesifik UI alanlarına yönelik bileşenleri içerir.
  • Form Bileşenleri:
    • FormItem.cs, FormLayout.cs, FormAjax.cs, Toolbar.cs: Genel form ve araç çubuğu yapılandırmaları.
    • FormCheckBox.cs, FormRangeSlider.cs, FormCheckBoxList.cs, FormRadio.cs, FormTextTags.cs, FormTextBox.cs, FormTextArea.cs, FormSelect.cs, FormSelectCascade.cs: Çeşitli HTML form giriş türleri için özel bileşenler, özellikle FormSelectCascade.cs gibi dosyalar dinamik ve birbirine bağlı seçim kutuları gibi karmaşık form öğelerine işaret eder.
    • FormActionBuilder.cs: Form eylemlerini programatik olarak oluşturmak için kullanılır.
    • FormTextEditor.cs: Metin düzenleyici bileşenleri için.

Bu bileşenler, dinamik, yeniden kullanılabilir ve standartlaştırılmış web formları ve UI elemanları oluşturmayı hedefler.

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.0.11 84 7/30/2025
1.0.10 59 7/27/2025
1.0.9 70 7/27/2025
1.0.8 297 7/25/2025
1.0.7 487 7/22/2025
1.0.6 432 7/21/2025
1.0.5 357 7/21/2025
1.0.4 362 7/21/2025
1.0.3 188 7/20/2025
1.0.2 181 7/20/2025
1.0.1 180 7/20/2025
1.0.0 180 7/20/2025