ASP.NET Core Blazor barındırma modelleri

Not

Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.

Uyarı

ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.

Önemli

Bu bilgiler, ticari olarak piyasaya sürülmeden önce önemli ölçüde değiştirilebilen bir yayın öncesi ürünle ilgilidir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.

Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.

Bu makalede, .NET 8'den önceki .NET sürümlerinde öncelikli olarak ve Blazor WebAssembly uygulamalarına Blazor Server odaklanan barındırma modelleri açıklanmaktadırBlazor. Bu makaledeki yönergeler, yerel mobil ve masaüstü platformlarında çalışan uygulamalar için Blazor Hybrid tüm .NET sürümleri altında geçerlidir. Blazor Web App.NET 8 veya sonraki sürümlerde s bileşenleri işleme modu olarak tanımlanan şekilde nasıl işlendiğine göre Razor daha iyi kavramsallaştırılmıştır. İşleme modlarına Temel bilgiler genel bakış makalesinde kısaca değinilir ve Bileşenler düğümünün ASP.NET Çekirdek Blazor işleme modlarında ayrıntılı olarak ele alınmıştır.

Bu makalede barındırma modelleri ve hangisinin kullanılacağının nasıl seçileceği açıklanmaktadır Blazor .

Blazor , farklı şekillerde barındırılabilir web kullanıcı arabirimi bileşenleri (Razor bileşenler) oluşturmaya yönelik bir web çerçevesidir. Razorbileşenleri, WebAssembly tabanlı bir .NET çalışma zamanında (Blazor Server,Blazor WASM) tarayıcıda istemci tarafı yerine ASP.NET Core'da (Blazor WebAssembly) sunucu tarafı çalıştırabilir. Bileşenleri, ekli Web View denetime (Blazor Hybrid ) işleyen yerel mobil ve masaüstü uygulamalarında da barındırabilirsinizRazor. Barındırma modeli ne olursa olsun, bileşenleri oluşturma Razor yönteminiz aynıdır. Aynı Razor bileşenler, herhangi bir barındırma modelinde değişmeden kullanılabilir.

Blazor , farklı şekillerde barındırılabilir web kullanıcı arabirimi bileşenleri (Razor bileşenler) oluşturmaya yönelik bir web çerçevesidir. Razorbileşenleri, WebAssembly tabanlı bir .NET çalışma zamanında (Blazor Server,Blazor WASM) tarayıcıda istemci tarafı yerine ASP.NET Core'da (Blazor WebAssembly) sunucu tarafı çalıştırabilir. Barındırma modeli ne olursa olsun, bileşenleri oluşturma Razor yönteminiz aynıdır. Aynı Razor bileşenler, herhangi bir barındırma modelinde değişmeden kullanılabilir.

Blazor Server

Barındırma modeliyle Blazor Server , bileşenler ASP.NET Core uygulamasının içinden sunucuda yürütülür. Kullanıcı arabirimi güncelleştirmeleri, olay işleme ve JavaScript çağrıları, WebSockets protokolü kullanılarak bir SignalR bağlantı üzerinden işlenir. Her bağlı istemciyle ilişkilendirilmiş sunucudaki durum bağlantı hattı olarak adlandırılır. Bağlantı hatları belirli bir ağ bağlantısına bağlı değildir ve bağlantı kesildiğinde istemcinin geçici ağ kesintilerine ve sunucuya yeniden bağlanma denemelerine dayanabilir.

Geleneksel sunucu tarafından işlenen bir uygulamada, aynı uygulamayı birden çok tarayıcı ekranında (sekmeler veya iframes) açmak normalde sunucuda ek kaynak taleplerine dönüşmüyor. Barındırma modeli için Blazor Server her tarayıcı ekranı ayrı bir bağlantı hattı ve sunucu tarafından yönetilen bileşen durumunun ayrı örneklerini gerektirir. Blazorbir tarayıcı sekmesini kapatmayı veya dış URL'ye gezinmeyi düzgün bir sonlandırma olarak değerlendirir. Düzgün bir sonlandırma durumunda devre ve ilişkili kaynaklar hemen serbest bırakılır. Örneğin bir ağ kesintisi nedeniyle istemci düzgün bir şekilde bağlantısını kesebilir. Blazor Server , istemcinin yeniden bağlanmasına izin vermek için bağlantısı kesilmiş devreleri yapılandırılabilir bir aralıkta depolar.

Tarayıcı, bir bağlantı üzerinden SignalR sunucudaki (ASP.NET Core uygulamasının içinde barındırılan) ile Blazor etkileşim kurar.

İstemcide betik sunucuyla Blazor bağlantı kurar SignalR . Betik, ASP.NET Core paylaşılan çerçevesine eklenmiş bir kaynaktan sunulur.

Barındırma Blazor Server modeli çeşitli avantajlar sunar:

  • İndirme boyutu, barındırma modelinin kullanıldığından Blazor WebAssembly önemli ölçüde daha küçüktür ve uygulama çok daha hızlı yüklenir.
  • Uygulama, .NET Core API'lerinin kullanımı da dahil olmak üzere sunucu özelliklerinden tam olarak yararlanır.
  • Sunucudaki .NET Core, uygulamayı çalıştırmak için kullanıldığından, hata ayıklama gibi mevcut .NET araçları beklendiği gibi çalışır.
  • İnce istemciler desteklenir. Örneğin, Blazor Server WebAssembly'yi desteklemeyen tarayıcılarla ve kaynak kısıtlanmış cihazlarda çalışır.
  • Uygulamanın bileşen kodu da dahil olmak üzere uygulamanın .NET/C# kod tabanı istemcilere sunulmaz.

Barındırma Blazor Server modeli aşağıdaki sınırlamalara sahiptir:

  • Genellikle daha yüksek gecikme süresi vardır. Her kullanıcı etkileşimi bir ağ atlama içerir.
  • Çevrimdışı destek yoktur. İstemci bağlantısı başarısız olursa etkileşim başarısız olur.
  • Uygulamaları çok sayıda kullanıcıyla ölçeklendirmek için birden çok istemci bağlantısını ve istemci durumunu işlemek için sunucu kaynakları gerekir.
  • Uygulamaya hizmet vermek için bir ASP.NET Core sunucusu gereklidir. Bir Content Delivery Network'ten (CDN) uygulamaya hizmet verme gibi sunucusuz dağıtım senaryoları mümkün değildir.

Barındırma modelini benimseyen uygulamalar için Azure SignalR Hizmeti'ni Blazor Server kullanmanızı öneririz. Hizmet, bir Blazor Server uygulamanın ölçeğini çok sayıda eşzamanlı SignalR bağlantıya artırmaya olanak tanır.

Blazor WebAssembly

Barındırma Blazor WebAssembly modeli, bileşenleri WebAssembly tabanlı bir .NET çalışma zamanında tarayıcıda istemci tarafında çalıştırır. Razor bileşenleri, bağımlılıkları ve .NET çalışma zamanı tarayıcıya indirilir. Bileşenler doğrudan tarayıcı kullanıcı arabirimi iş parçacığında yürütülür. Kullanıcı arabirimi güncelleştirmeleri ve olay işleme aynı işlem içinde gerçekleşir. Varlıklar, istemcilere statik içerik sunma özelliğine sahip bir web sunucusuna veya hizmete statik dosyalar olarak dağıtılır.

Blazor WebAssembly: Blazor tarayıcının içindeki bir kullanıcı arabirimi iş parçacığında çalışır.

Blazor web uygulamaları, istemci tarafı etkileşimini etkinleştirmek için barındırma modelini kullanabilir Blazor WebAssembly . Sunucu tarafı işleme ve etkileşim olmadan yalnızca barındırma modelinde Blazor WebAssembly çalışan bir uygulama oluşturulduğunda, uygulamaya tek başınaBlazor WebAssembly uygulama adı verilir.

Blazor WebAssembly Uygulama, dosyalarını sunmak üzere bir arka uç ASP.NET Core uygulaması olmadan dağıtım için oluşturulduğunda, uygulamaya tek başınaBlazor WebAssembly uygulama adı verilir.

Tek başına Blazor WebAssembly bir uygulama dosyalarını sunmak için arka uç ASP.NET Core uygulaması kullandığında, uygulamaya barındırılanBlazor WebAssembly uygulama adı verilir. Barındırılan Blazor WebAssemblykullanarak, istemci ve sunucu uygulamaları arasında kod paylaşma, ön kayıt desteği ve MVC Razor ve Pages ile tümleştirme dahil olmak üzere .NET ile tam yığın web geliştirme deneyimi elde edersiniz. Barındırılan istemci uygulaması, web API'si, gRPC-web ve (ile ASP.NET Core'u SignalR kullanın) gibi çeşitli mesajlaşma çerçevelerini ve SignalR protokollerini kullanarak ağ üzerinden arka uç sunucu uygulamasıyla Blazoretkileşim kurabilir.

Blazor WebAssembly Aşamalı Web Uygulaması (PWA) olarak oluşturulan bir uygulama, yerel istemci uygulamasının çevrimdışı çalışma, kendi uygulama penceresinde çalışma, konağın işletim sisteminden başlatma, anında iletme bildirimleri alma ve arka planda otomatik olarak güncelleştirme gibi birçok özelliği etkinleştirmek için modern tarayıcı API'lerini kullanır.

Betik Blazor şu işlemleri işler:

  • .NET çalışma zamanını, Razor bileşenlerini ve bileşenin bağımlılıklarını indirme.
  • Çalışma zamanını başlatma.

Yayımlanan uygulamanın boyutu ve yük boyutu, bir uygulamanın kullanılabilirliği için kritik bir performans faktörüdür. Büyük bir uygulamanın tarayıcıya indirilmesi nispeten uzun sürer ve bu da kullanıcı deneyimini azaltır. Blazor WebAssembly, indirme sürelerini azaltmak için yük boyutunu iyileştirir:

  • Ara Dil (IL) Düzelticisi tarafından yayımlandığında, kullanılmayan kod uygulamadan çıkarılır.
  • HTTP yanıtları sıkıştırılır.
  • .NET çalışma zamanı ve derlemeleri tarayıcıda önbelleğe alınır.

Barındırma Blazor WebAssembly modeli çeşitli avantajlar sunar:

  • Tek başına Blazor WebAssembly uygulamalar için, uygulama sunucudan indirildikten sonra .NET sunucu tarafı bağımlılığı yoktur, bu nedenle sunucu çevrimdışı olduğunda uygulama çalışır durumda kalır.
  • İstemci kaynakları ve yeteneklerinden tam olarak yararlanılır.
  • İş sunucudan istemciye yüklenir.
  • Tek başına Blazor WebAssembly uygulamalarda, uygulamayı barındırmak için ASP.NET Core web sunucusu gerekmez. Bir Content Delivery Network'ten (CDN) uygulamaya hizmet sunma gibi sunucusuz dağıtım senaryoları mümkündür.

Barındırma Blazor WebAssembly modeli aşağıdaki sınırlamalara sahiptir:

  • Razor bileşenleri tarayıcının özellikleriyle sınırlıdır.
  • Yetenekli istemci donanımı ve yazılımı (örneğin, WebAssembly desteği) gereklidir.
  • İndirme boyutu daha büyüktür ve bileşenlerin yüklenmesi daha uzun sürer.
  • İstemciye gönderilen kod, kullanıcılar tarafından denetlenmeye ve kurcalamaya karşı korunamaz.

.NET Ara Dil (IL) yorumlayıcısı, geliştirilmiş çalışma zamanı performansı elde etmek için kısmi tam zamanında (JIT) çalışma zamanı desteği içerir. JIT yorumlayıcısı, yorumlayıcı bayt kodlarını webassembly kodunun küçük bloblarıyla değiştirerek yürütülmesini iyileştirir. Hata ayıklama dışındaki uygulamalar için Blazor WebAssembly JIT yorumlayıcısı otomatik olarak etkinleştirilir.

Blazor , .NET kodunuzu doğrudan WebAssembly'de derleyebileceğiniz önceden (AOT) derlemeyi destekler. AOT derlemesi, daha büyük bir uygulama boyutuna zarar verebilirsiniz. Daha fazla bilgi için bkz . ASP.NET Core Blazor WebAssembly derleme araçları ve önceden (AOT) derleme.

AOT derlemesi için kullanılan .NET WebAssembly derleme araçları, kullanılmayan çalışma zamanı kodunu kırpmak için .NET WebAssembly çalışma zamanını da yeniden bağlar. Blazor ayrıca kullanılmayan kodu .NET framework kitaplıklarından keser. .NET derleyicisi, daha küçük bir uygulama yükü için tek başına Blazor WebAssembly bir uygulamayı daha önceden sıkıştırıyor.

WebAssembly tarafından işlenen Razor bileşenler, WebAssembly üzerinde çalışacak şekilde oluşturulmuş yerel bağımlılıkları kullanabilir.

Blazor WebAssembly .NET Core framework kitaplıklarından kullanılmayan kodu kırpma desteği içerir. Daha fazla bilgi için bkz . ASP.NET Çekirdek Blazor genelleştirme ve yerelleştirme.

Blazor Hybrid

Blazor karma bir yaklaşım kullanarak yerel istemci uygulamaları oluşturmak için de kullanılabilir. Karma uygulamalar, işlevleri için web teknolojilerinden yararlanan yerel uygulamalardır. Bir Blazor Hybrid uygulamada bileşenler, Razor diğer .NET kodlarıyla birlikte doğrudan yerel uygulamada (WebAssembly'de değil) çalışır ve HTML ve CSS tabanlı web kullanıcı arabirimini yerel birlikte çalışma kanalı aracılığıyla eklenmiş Web View bir denetime işler.

.NET ile karma uygulamalar ve Blazor HTML DOM'un yerel masaüstü veya mobil uygulamanın .NET ile Blazor etkileşimde bulunduğu bir Web View denetimde kullanıcı arabirimini işler.

Blazor Hybrid uygulamalar, WPF ve Windows Forms gibi .NET MAUIfarklı .NET yerel uygulama çerçeveleri kullanılarak oluşturulabilir. Blazor , bu çerçevelerle BlazorWebView oluşturulan uygulamalara bileşen ekleme Razor denetimleri sağlar. Blazor ile kullanmak .NET MAUI mobil ve masaüstü için platformlar Blazor Hybrid arası uygulamalar oluşturmak için kullanışlı bir yol sunarken Blazor WPF ve Windows Forms ile tümleştirme, mevcut uygulamaları modernleştirmek için harika bir yol olabilir.

Uygulamalar yerel uygulamalar olduğundan Blazor Hybrid , yalnızca web platformunda bulunmayan işlevleri destekleyebilirler. Blazor Hybrid uygulamalar, normal .NET API'leri aracılığıyla yerel platform özelliklerine tam erişime sahiptir. Blazor Hybrid uygulamalar ayrıca bileşenleri mevcut Blazor Server veya Blazor WebAssembly uygulamalarla paylaşabilir ve yeniden kullanabilir. Blazor Hybrid uygulamalar web, yerel uygulamalar ve .NET platformunun avantajlarını birleştirir.

Barındırma Blazor Hybrid modeli çeşitli avantajlar sunar:

  • Mobil, masaüstü ve web üzerinde paylaşılabilen mevcut bileşenleri yeniden kullanma.
  • Web geliştirme becerileri, deneyimi ve kaynaklarını kullanın.
  • Uygulamalar, cihazın yerel özelliklerine tam erişime sahiptir.

Barındırma Blazor Hybrid modeli aşağıdaki sınırlamalara sahiptir:

  • Her hedef platform için ayrı yerel istemci uygulamaları derlenmeli, dağıtılmalı ve korunmalıdır.
  • Yerel istemci uygulamalarının tarayıcıda bir web uygulamasına erişerek bulunması, indirilmesi ve yüklenmesi genellikle daha uzun sürer.

Daha fazla bilgi için bkz . ASP.NET Core Blazor Hybrid.

Microsoft yerel istemci çerçeveleri hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:

Hangi Blazor barındırma modelini seçmeliyim?

Bir bileşenin barındırma modeli, derleme zamanında veya çalışma zamanında, ASP.NET Core Blazor işleme modlarındaki örneklerle açıklanan işleme moduna göre ayarlanır. Aşağıdaki tabloda, bir bileşenin barındırma modelini belirlemek için işleme modunu ayarlamayla ilgili önemli noktalar gösterilmektedir. Tek başına Blazor WebAssembly uygulamalar için, uygulamanın tüm bileşenleri barındırma modeliyle Blazor WebAssembly istemcide işlenir.

Blazor Uygulamanın özellik gereksinimlerine göre barındırma modelini seçin. Aşağıdaki tabloda barındırma modelini seçmeyle ilgili önemli noktalar gösterilmektedir.

Blazor Hybrid uygulamaları , WPF ve Windows Forms çerçeve uygulamalarını içerir .NET MAUI.

Özellik Blazor Server Blazor WebAssembly (WASM) Blazor Hybrid
.NET API uyumluluğunu tamamlama Destekli Desteklenmiyor Destekli
Sunucu ve ağ kaynaklarına doğrudan erişim Destekli Desteklenmiyor† Desteklenmiyor†
İlk yükleme süresinin hızlı olduğu küçük yük boyutu Destekli Desteklenmiyor Desteklenmiyor
Yerel yürütme hızına yakın Destekli Desteklenir Destekli
Uygulama kodu sunucuda güvenli ve özel Destekli Desteklenmiyor† Desteklenmiyor†
İndirildikten sonra uygulamaları çevrimdışı çalıştırma Desteklenmiyor Destekli Destekli
Statik site barındırma Desteklenmiyor Destekli Desteklenmiyor
İşlemeyi istemcilere boşaltıyor Desteklenmiyor Destekli Destekli
Yerel istemci özelliklerine tam erişim Desteklenmiyor Desteklenmiyor Destekli
Web tabanlı dağıtım Destekli Destekli Desteklenmiyor

Blazor WebAssembly† ve Blazor Hybrid uygulamalar sunucu/ağ kaynaklarına erişmek ve özel ve güvenli uygulama koduna erişmek için sunucu tabanlı API'leri kullanabilir.
Blazor WebAssembly‡ yalnızca önceden (AOT) derleme ile yerel performansa yakın bir performansa ulaşır.

Özellik Blazor Server Blazor WebAssembly (WASM)
.NET API uyumluluğunu tamamlama Destekli Desteklenmiyor
Sunucu ve ağ kaynaklarına doğrudan erişim Destekli Desteklenmiyor†
İlk yükleme süresinin hızlı olduğu küçük yük boyutu Destekli Desteklenmiyor
Uygulama kodu sunucuda güvenli ve özel Destekli Desteklenmiyor†
İndirildikten sonra uygulamaları çevrimdışı çalıştırma Desteklenmiyor Destekli
Statik site barındırma Desteklenmiyor Destekli
İşlemeyi istemcilere boşaltıyor Desteklenmiyor Destekli

Blazor WebAssembly† uygulamalar sunucu/ağ kaynaklarına erişmek ve özel ve güvenli uygulama koduna erişmek için sunucu tabanlı API'leri kullanabilir.

Uygulamanın barındırma modelini seçtikten sonra bir proje şablonundan Blazor veya Blazor WebAssembly uygulaması oluşturabilirsinizBlazor Server. Daha fazla bilgi için bkz . ASP.NET Core Blazoriçin Araçlar.

Uygulama oluşturmak Blazor Hybrid için ASP.NET Core Blazor Hybrid öğreticileri altındaki makalelere bakın.

.NET API uyumluluğunu tamamlama

Barındırma modeli ve uygulamalar için Blazor Server işlenen bileşenler tam .NET API uyumluluğuna sahipken, için Blazor WebAssembly işlenen bileşenler .NET API'lerinin bir alt kümesiyle Blazor Hybrid sınırlıdır. Bir uygulamanın belirtimi, WebAssembly tarafından işlenen bileşenler için kullanılamayan bir veya daha fazla .NET API'sine ihtiyaç duyuyorsa, için Blazor Server bileşenleri işlemeyi veya kullanmayı Blazor Hybridseçin.

Blazor Server ve Blazor Hybrid uygulamalar tam .NET API uyumluluğuna sahipken Blazor WebAssembly , uygulamalar .NET API'lerinin bir alt kümesiyle sınırlıdır. Bir uygulamanın belirtimi için uygulamalar tarafından kullanılamayan bir veya daha fazla .NET API'sine Blazor WebAssembly ihtiyaç duyulduğunda veya Blazor Hybridöğesini seçinBlazor Server.

Blazor Server uygulamalar tam .NET API uyumluluğuna sahipken Blazor WebAssembly , uygulamalar .NET API'lerinin bir alt kümesiyle sınırlıdır. Bir uygulamanın belirtimi, uygulamalar tarafından kullanılamayan bir veya daha fazla .NET API'sini Blazor WebAssembly gerektirdiğinde öğesini seçin Blazor Server.

Sunucu ve ağ kaynaklarına doğrudan erişim

Barındırma modeli için Blazor Server işlenen bileşenler, uygulamanın yürütüldüğü sunucu ve ağ kaynaklarına doğrudan erişime sahiptir. Bir istemcide kullanılarak Blazor WebAssembly barındırılan veya Blazor Hybrid yürütülen bileşenler sunucu ve ağ kaynaklarına doğrudan erişime sahip değildir. Bileşenler, korumalı sunucu tabanlı API'ler aracılığıyla sunucu ve ağ kaynaklarına dolaylı olarak erişebilir. Sunucu tabanlı API'ler üçüncü taraf kitaplıklar, paketler ve hizmetler aracılığıyla kullanılabilir. Aşağıdaki noktaları dikkate alın:

  • Üçüncü taraf kitaplıkları, paketleri ve hizmetleri uygulamak ve korumak, zayıf desteklenmek veya güvenlik riskleri getirmek maliyetli olabilir.
  • Kuruluşunuz tarafından bir veya daha fazla sunucu tabanlı API geliştiriliyorsa, bunları oluşturmak ve korumak için ek kaynaklar gerekir.

Sunucu ortamından Blazor Server API'leri kullanıma sunma gereksinimini önlemek için barındırma modelini kullanın.

Blazor Server uygulamalar, uygulamanın yürütüldüğü sunucu ve ağ kaynaklarına doğrudan erişime sahiptir. Blazor WebAssembly ve Blazor Hybrid uygulamaları bir istemcide yürütürken sunucu ve ağ kaynaklarına doğrudan erişimleri yoktur. Blazor WebAssembly ve Blazor Hybrid uygulamalar, korumalı sunucu tabanlı API'ler aracılığıyla sunucu ve ağ kaynaklarına dolaylı olarak erişebilir. Sunucu tabanlı API'ler üçüncü taraf kitaplıklar, paketler ve hizmetler aracılığıyla kullanılabilir. Aşağıdaki noktaları dikkate alın:

  • Üçüncü taraf kitaplıkları, paketleri ve hizmetleri uygulamak ve korumak, zayıf desteklenmek veya güvenlik riskleri getirmek maliyetli olabilir.
  • Kuruluşunuz tarafından bir veya daha fazla sunucu tabanlı API geliştiriliyorsa, bunları oluşturmak ve korumak için ek kaynaklar gerekir.

veya Blazor Hybrid uygulamaları için sunucu tabanlı API'lerden kaçınmak içinBlazor WebAssembly, sunucu ve ağ kaynaklarına doğrudan erişebilen öğesini benimseyinBlazor Server.

Blazor Server uygulamalar, uygulamanın yürütüldüğü sunucu ve ağ kaynaklarına doğrudan erişime sahiptir. Blazor WebAssembly Uygulamalar bir istemcide yürütülürken sunucu ve ağ kaynaklarına doğrudan erişimleri yoktur. Blazor WebAssembly uygulamalar, korumalı sunucu tabanlı API'ler aracılığıyla sunucu ve ağ kaynaklarına dolaylı olarak erişebilir. Sunucu tabanlı API'ler üçüncü taraf kitaplıklar, paketler ve hizmetler aracılığıyla kullanılabilir. Aşağıdaki noktaları dikkate alın:

  • Üçüncü taraf kitaplıkları, paketleri ve hizmetleri uygulamak ve korumak, zayıf desteklenmek veya güvenlik riskleri getirmek maliyetli olabilir.
  • Kuruluşunuz tarafından bir veya daha fazla sunucu tabanlı API geliştiriliyorsa, bunları oluşturmak ve korumak için ek kaynaklar gerekir.

Uygulamalar için sunucu tabanlı API'lerden kaçınmak için Blazor WebAssembly , sunucu ve ağ kaynaklarına doğrudan erişebilen öğesini benimseyin Blazor Server.

İlk yükleme süresinin hızlı olduğu küçük yük boyutu

Sunucudan bileşenlerin işlenmesi, uygulama yükü boyutunu azaltır ve ilk yükleme sürelerini iyileştirir. Hızlı bir ilk yükleme süresi istendiğinde barındırma modelini kullanın veya statik sunucu tarafı işlemeyi Blazor Server göz önünde bulundurun.

Blazor Server uygulamalar, ilk yükleme sürelerinin daha hızlı olduğu görece küçük yük boyutlarına sahiptir. Hızlı bir ilk yükleme süresi istendiğinde, benimseyin Blazor Server.

Yerel yürütme hızına yakın

Blazor Hybrid uygulamalar, mümkün olan en iyi hızı sunan hedef platformda .NET çalışma zamanını yerel olarak kullanarak çalışır.

Aşamalı Web Uygulamaları (PWA'lar) ve tek başına Blazor WebAssembly uygulamalar da dahil olmak üzere barındırma modeli için Blazor WebAssembly işlenen bileşenler, doğrudan platformda çalışmaya göre daha yavaş olan WebAssembly için .NET çalışma zamanı kullanılarak çalıştırılır. kullanırken çalışma zamanı performansını geliştirmek için önceden derlenmiş (AOT) kullanmayı Blazor WebAssemblygöz önünde bulundurun.

Blazor Hybrid uygulamalar, mümkün olan en iyi hızı sunan hedef platformda .NET çalışma zamanını yerel olarak kullanarak çalışır.

Blazor WebAssembly, Aşamalı Web Uygulamaları (PWA'lar) dahil olmak üzere, uygulamalar WebAssembly için .NET çalışma zamanı kullanılarak çalıştırılır. Bu çalışma zamanı, tarayıcıda WebAssembly için derlenen önceden (AOT) uygulamalar için bile doğrudan platformda çalışmaya göre daha yavaştır.

Blazor Server uygulamalar genellikle sunucuda hızlı bir şekilde yürütülür.

Blazor WebAssembly uygulamalar WebAssembly için .NET çalışma zamanı kullanılarak çalıştırılır ve bu, doğrudan platformda çalışmaktan daha yavaştır.

Uygulama kodu sunucuda güvenli ve özel

Uygulama kodunun sunucuda güvenli ve özel bir şekilde korunması, barındırma modeli için Blazor Server işlenen bileşenlerin yerleşik bir özelliğidir. veya Blazor Hybrid barındırma modelleri kullanılarak Blazor WebAssembly işlenen bileşenler, özel ve güvenli tutulması gereken işlevlere erişmek için sunucu tabanlı API'leri kullanabilir. Sunucu ve ağ kaynaklarına doğrudan erişim bölümünde açıklanan sunucu tabanlı API'leri geliştirme ve sürdürme konusunda dikkat edilmesi gerekenler geçerlidir. Sunucu tabanlı API'lerin geliştirilmesi ve bakımı güvenli ve özel uygulama kodunu korumak için istenmiyorsa barındırma modeli için Blazor Server bileşenleri işleyin.

Uygulama kodunun sunucuda güvenli ve özel bir şekilde korunması yerleşik bir özelliğidir Blazor Server. Blazor WebAssembly ve Blazor Hybrid uygulamalar, özel ve güvenli tutulması gereken işlevlere erişmek için sunucu tabanlı API'leri kullanabilir. Sunucu ve ağ kaynaklarına doğrudan erişim bölümünde açıklanan sunucu tabanlı API'leri geliştirme ve sürdürme konusunda dikkat edilmesi gerekenler geçerlidir. Güvenli ve özel uygulama kodunu korumak için sunucu tabanlı API'lerin geliştirilmesi ve bakımı istenmiyorsa barındırma modelini benimseyin Blazor Server .

Uygulama kodunun sunucuda güvenli ve özel bir şekilde korunması yerleşik bir özelliğidir Blazor Server. Blazor WebAssembly uygulamalar, özel ve güvenli tutulması gereken işlevlere erişmek için sunucu tabanlı API'leri kullanabilir. Sunucu ve ağ kaynaklarına doğrudan erişim bölümünde açıklanan sunucu tabanlı API'leri geliştirme ve sürdürme konusunda dikkat edilmesi gerekenler geçerlidir. Güvenli ve özel uygulama kodunu korumak için sunucu tabanlı API'lerin geliştirilmesi ve bakımı istenmiyorsa barındırma modelini benimseyin Blazor Server .

İndirildikten sonra uygulamaları çevrimdışı çalıştırma

Aşamalı Web Uygulamaları (PWA' lar) olarak oluşturulan tek başına Blazor WebAssembly uygulamalar ve Blazor Hybrid uygulamalar çevrimdışı çalışabilir; bu, özellikle istemciler İnternet'e bağlanamadığında kullanışlıdır. Barındırma modeli için Blazor Server işlenen bileşenler, sunucu bağlantısı kaybolduğunda çalıştırılamaz. Bir uygulamanın çevrimdışı çalışması gerekiyorsa, tek başına Blazor WebAssembly ve Blazor Hybrid en iyi seçeneklerdir.

Blazor WebAssembly Aşamalı Web Uygulamaları (PWA' lar) olarak oluşturulan uygulamalar ve Blazor Hybrid uygulamalar çevrimdışı çalışabilir; bu, özellikle istemciler İnternet'e bağlanamadığında kullanışlıdır. Blazor Server sunucu bağlantısı kaybolduğunda uygulamalar çalıştırılamaz. Bir uygulamanın çevrimdışı Blazor WebAssembly çalışması gerekiyorsa ve Blazor Hybrid en iyi seçenekler bunlardır.

Blazor WebAssembly uygulamalar çevrimdışı çalışabilir; bu, özellikle istemciler İnternet'e bağlanamadığında kullanışlıdır. Blazor Server sunucu bağlantısı kaybolduğunda uygulamalar çalıştırılamaz. Bir uygulamanın çevrimdışı çalışması gerekiyorsa en Blazor WebAssembly iyi seçenektir.

Statik site barındırma

Statik site barındırma, istemcilere bir dizi statik dosya olarak indirildiği için tek başına Blazor WebAssembly uygulamalarla mümkündür. Tek başına Blazor WebAssembly uygulamalar, bir sunucunun indirip çalıştırmak için sunucu tarafı kodu yürütmesini gerektirmez ve bir Content Delivery Network (CDN) (örneğin, Azure CDN) aracılığıyla teslim edilebilir.

Uygulamalar bir veya daha fazla bağımsız dağıtım varlığında derlenmiş olsa Blazor Hybrid da, varlıklar genellikle üçüncü taraf uygulama mağazası aracılığıyla istemcilere sağlanır. Statik barındırma bir uygulama gereksinimiyse tek başına Blazor WebAssemblyöğesini seçin.

İşlemeyi istemcilere boşaltıyor

veya Blazor Hybrid barındırma modelleri kullanılarak Blazor WebAssembly işlenen bileşenler istemcilerde yürütülür ve dolayısıyla işleme istemcilere boşaltılır. Barındırma modeli için Blazor Server işlenen bileşenler bir sunucuda yürütülür, bu nedenle sunucu kaynak talebi genellikle kullanıcı sayısı ve kullanıcı başına gereken işlem miktarıyla artar. Bir uygulamanın işlemlerinin çoğunu veya tamamını istemcilere boşaltmak mümkün olduğunda ve uygulama önemli miktarda veri Blazor WebAssembly işlediğinde veya Blazor Hybrid en iyi seçenek olduğunda.

Blazor WebAssembly ve Blazor Hybrid uygulamalar istemcilerde yürütülür ve böylece işleme istemcilere boşaltılır. Blazor Server uygulamalar bir sunucuda yürütülür, bu nedenle sunucu kaynağı talebi genellikle kullanıcı sayısı ve kullanıcı başına gereken işlem miktarı ile artar. Bir uygulamanın işlemlerinin çoğunu veya tamamını istemcilere boşaltmak mümkün olduğunda ve uygulama önemli miktarda veri Blazor WebAssembly işlediğinde veya Blazor Hybrid en iyi seçenek olduğunda.

Blazor WebAssembly uygulamalar istemcilerde yürütülür ve bu nedenle işlemeyi istemcilere boşaltılır. Blazor Server uygulamalar bir sunucuda yürütülür, bu nedenle sunucu kaynağı talebi genellikle kullanıcı sayısı ve kullanıcı başına gereken işlem miktarı ile artar. Bir uygulamanın işlemlerinin çoğunu veya tamamını istemcilere boşaltmak mümkün olduğunda ve uygulama önemli miktarda veri işlediğinde en Blazor WebAssembly iyi seçenektir.

Yerel istemci özelliklerine tam erişim

Blazor Hybrid uygulamalar, .NET yerel uygulama çerçeveleri aracılığıyla yerel istemci API'sine tam erişime sahiptir. Uygulamalarda Blazor Hybrid bileşenler Razor WebAssembly'de değil doğrudan yerel uygulamada çalışır. Tam istemci özellikleri bir gereksinim olduğunda en Blazor Hybrid iyi seçenektir.

Web tabanlı dağıtım

Blazor web uygulamaları, tarayıcıdan bir sonraki uygulama yenilemesinde güncelleştirilir.

Blazor Hybrid uygulamalar genellikle bir yükleyici ve platforma özgü dağıtım mekanizması gerektiren yerel istemci uygulamalarıdır.

Bileşenin barındırma modelini ayarlama

Bir bileşenin barındırma modelini Blazor Server derleme zamanında veya Blazor WebAssembly çalışma zamanında dinamik olarak ayarlamak için işleme modunu ayarlarsınız. İşleme modları, ASP.NET Core Blazor işleme modları makalesinde tam olarak açıklanmıştır ve gösterilmiştir. Bu iki makale arasındaki makalelerdeki içeriği okumadan bu makaleden doğrudan İşleme modları makalesine atlamanızı önermiyoruz. Örneğin, işleme modları bileşen örneklerine bakarak Razor daha kolay anlaşılır, ancak temel Razor bileşen yapısı ve işlevi ASP.NET Temel Blazor bilgiler makalesine ulaşılana kadar ele alınamaz. İşleme modları makalesindeki bileşen örnekleriyle çalışmadan önce proje şablonları ve araçları hakkında Blazorbilgi edinmek de yararlıdır.