WebSDK 1.0.11
dotnet add package WebSDK --version 1.0.11
NuGet\Install-Package WebSDK -Version 1.0.11
<PackageReference Include="WebSDK" Version="1.0.11" />
<PackageVersion Include="WebSDK" Version="1.0.11" />
<PackageReference Include="WebSDK" />
paket add WebSDK --version 1.0.11
#r "nuget: WebSDK, 1.0.11"
#:package WebSDK@1.0.11
#addin nuget:?package=WebSDK&version=1.0.11
#tool nuget:?package=WebSDK&version=1.0.11
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.
- Statik dosyaların (
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 yoksatr-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ş isetr-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
veLocalizedDisplayNameAttribute.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, özellikleFormSelectCascade.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 | 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
- Rotativa.AspNetCore (>= 1.3.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.