Blazor Geliştirme: Her zaman uyum sağlayan bileşenler

Saberie

Active member
Geliştiriciler, “Tüm Platformlar için Tek Blazor Uygulaması” makalesinde gösterildiği gibi, dört Blazor varyantının (Blazor WebAssembly, Blazor Server, Blazor Desktop ve Blazor MAUI) tamamında ortak Razor bileşenlerini kullanmak için bir Razor sınıf kitaplığı kullanabilir.

Duyuru



Mimari karşılaştırmada blazer çeşitleri


Dört Blazor türü arasındaki farklar aynı zamanda farklı katman mimarilerine olanak tanımalarını da içermektedir (Şekil 1 ve 2):

  • Blazor WebAssembly uygulaması her zaman 3 katmanlı bir uygulamadır çünkü yalnızca izin verilen HTTP(S) tabanlı web hizmetlerine (REST API’leri, diğer web API’leri, gRPC hizmetleri veya SignalR dahil) erişim sağlayan web tarayıcısı sanal alanında çalışır.
  • Ancak Blazor sunucu uygulamasında C# program kodu web sunucusunda korumalı alan olmadan çalışır. Geliştiriciler buradan, web sunucusundan erişilebildiği sürece veritabanı yönetim sistemleri gibi herhangi bir kaynağa doğrudan erişebilirler. Web hizmetlerine erişim de mümkündür; bu nedenle 2 ve 3 seviyeli mimariler arasında seçim yapmak mümkündür.
  • Blazor masaüstü uygulamaları, korumalı alan oluşturmadan doğrudan Windows kullanıcı bağlamında çalışır. Kayıtlı kullanıcının erişebildiği tüm kaynaklara erişebilirsiniz. Burada da geliştiriciler 2 ve 3 katmanlı mimariler arasında seçim yapabilir.
  • Blazor MAUI ayrıca korumalı alanda çalışmaz. Ancak mobil işletim sistemlerinde genellikle veri tabanı sürücüleri bulunmaz. Bu nedenle 3 katmanlı bir mimari yaygındır; Mobil platformlarda 2 seviyelendirme hoş karşılanmaz.






Şekil 1: Blazor WebAssembly ve Blazor Sunucu mimarisi


(Resim: Dr. Holger Schwichtenberg)








Resim 2: Blazor Masaüstü ve Blazor MAUI mimarisi


(Resim: Dr. Holger Schwichtenberg)



Topluluk yalnızca web hizmetleri aracılığıyla mı?


Bir Razor sınıf kitaplığında çalışan ve tüm Blazor türleri tarafından entegre edilebilen bir Blazor uygulaması yazmak istiyorsanız (ana projeler aracılığıyla, bkz. “Tüm platformlar için tek Blazor uygulaması”), tüm Blazor türlerini etkinleştirmek için gereken kaynaklara erişiminizin olması gerekir. Blazor türleri: İlk düşünce: Tüm Blazor türleri arasındaki ortak payda, 3 katmanlı bir uygulamadır. Bu nedenle, Razor sınıf kitaplığındaki Razor bileşenleri veritabanına her zaman bir web hizmeti aracılığıyla erişiyorsa tüm Blazor türlerinde çalışırlar.

Bu doğru ama tek seçenek bu. Blazor Server ve Blazor Desktop’taki bir uygulama sunucusunda web hizmetleriyle çalışan herkes, veritabanı yönetim sistemine doğrudan erişebilseler bile, ek ağ trafiğine maruz kalacak ve bu da başlangıçta uygulamayı yavaşlatacaktır. Bir uygulama sunucusu muhtemelen iyi bir önbellekleme yoluyla bu sorunu telafi edebilir.

Ancak burada Blazor Server ve Blazor Desktop’ın veritabanını doğrudan kullandığı, Blazor WebAssembly ve Blazor MAUI’nin aynı veritabanına bir web hizmeti aracılığıyla eriştiği bir yaklaşım sunacağız.Dört Blazor türünün tümü Common Razor sınıf kitaplığında aynı Razor bileşenlerini kullanır.

Geliştiriciler, veri erişimini tamamen temel projelere taşıyabilir ve oluşturma sırasında Razor sınıf kitaplığındaki Razor bileşenlerini azaltabilir. Bu örnekte, Razor bileşenleri Razor sınıf kitaplığındaki verileri alıp depolayabilir. Bu amaçla 2 ila 3 seviye arasındaki veri erişimi için oldukça verimli olan bir soyutlama katmanı tanıtılmıştır.



Haberin Sonu
 
Üst