Blazor render mode'ları: WASM, Server, Auto ve Hybrid arasında nasıl seçim yapılır?
Khalid Abuhakmeh, .NET 8 sonrası tek bir Blazor Web App içinde sayfa veya component bazında seçilen dört render mode'u (Static SSR, Interactive Server, Interactive WebAssembly, Interactive Auto) ve Blazor Hybrid'i karşılaştırıyor. Yazı, her mode'un maliyetini ve hangi senaryoda doğru tercih olduğunu kısa bir karar rehberiyle anlatıyor.
Kilit noktalar
- Render mode artık proje değil component düzeyinde seçiliyor: `@rendermode="InteractiveServer"` gibi tek satırla değiştirilebiliyor.
- Interactive Server en hızlı etkileşimi verir ama her kullanıcı için sunucuda circuit state'i tutar ve bağlantı kopunca UI durur.
- Interactive WebAssembly client kodunda sır tutmaz; connection string ve API anahtarları bir API arkasında kalmalı.
- Auto, component ilk yüklendiğinde karar verir ve oturum ortasında mode değiştirmez; server-only bağımlılıklar kullanamazsınız.
- WebAssembly ve Auto kullanan component'ler `.Client` ile biten ayrı bir projede yaşamak zorunda ve prerendering varsayılan olarak açık.
- Blazor Hybrid, WebAssembly ve SignalR olmadan Razor component'lerini MAUI içindeki BlazorWebView ile native uygulamada çalıştırır.
"Blazor Server" ve "Blazor WebAssembly" ayrı proje tipleri geride kaldı: .NET 8'den beri tek bir Blazor Web App, her component için `@rendermode` directive'iyle çalışma yerini seçiyor. Interactive Server component'i sunucuda çalıştırıp tarayıcıya SignalR üzerinden bir circuit açar; indirilen boyut küçüktür ve veritabanına doğrudan erişilir, ama her etkileşim ağ gidiş-dönüşü gerektirir ve her aktif circuit bellekte state tutar. Interactive WebAssembly ise runtime ve bundle'ı indirip C#'ı tarayıcıda çalıştırır; çevrimdışı ve CDN senaryolarına uyar, fakat ilk yükleme yavaştır ve client kodunda hiçbir şey gizli kalmaz. Interactive Auto ilk ziyarette Server ile başlayıp arka planda WASM'ı indirir; seçim component ilk yüklendiğinde verilir ve kod iki ortamda da çalışmalıdır. Etkileşim gerektirmeyen sayfalar için Static SSR en ucuz seçenek; .NET 11'de form doğrulaması ve QuickGrid paging/sorting tarayıcıda ve URL üzerinden yapılabilecek. Masaüstü veya mobil uygulamalar için BlazorWebView tabanlı Hybrid devreye giriyor.
Gerçek dünyada kullanımı
- Sunucuya yakın kullanıcıların kullandığı, veritabanına doğrudan erişmesi gereken iç admin paneli (Interactive Server)
- Çevrimdışı çalışması ve CDN üzerinden statik dağıtılması gereken saha ekipleri PWA'sı (Interactive WebAssembly)
- İlk açılışta hızlı görünüp zamanla sunucu yükünü azaltması istenen genel amaçlı SaaS dashboard'u (Interactive Auto)
- SEO'ya önem veren pazarlama ve dokümantasyon sayfaları, araya tek bir interaktif component eklenerek (Static SSR)
- Web becerileriyle Windows, macOS, iOS ve Android'e dağıtılan kurulabilir masaüstü uygulaması (Blazor Hybrid)
Neden önemli
Render mode seçimi mimariyi belirliyor: Server seçen maliyeti ve ölçeklemeyi sunucuda, WebAssembly seçen ise ilk yükleme süresini ve client'ta hiçbir sır tutulmamasını kabul eder; karar proje oluştururken değil component bazında verildiği için sonradan değiştirmek de kolay.
Benzer haberler
- Hangfire alternatifi: .NET'te BackgroundService ve ChannelDEV Community: #aspnetcore1 gün önce
- WriteLine ile JSON Lines yazmayı bırakın: .NET 11 bunu sizin için yapıyorDEV Community: #csharp1 gün önce
- Ekim 2026 Node.js güvenlik açıkları: Azure DevOps ve .NET için yama rehberiAzure DevOps Blog2 gün önce