Deneyimli yazılım ekip arkadaşlarımızdan Emrah Uslu ve Fatih Doğan’ın her ay düzenli olarak gerçekleştirdiğimiz CodeRunner serimizin en son içeriği Blazor WebAssembly: Server & Client sizlerle paylaşıyoruz.
Konu başlıklarımız;
- Blazor Nedir?
Blazor bir Single Page Application geliştirme kütüphanesi. Browser ve Razor kelimelerinin birleşiminden oluşuyor. ASP.NET’in aksine, Blazor, WebAssembly sayesinde Razor kodunun browser üzerinde yani client-side çalışabilmesini sağlıyor.
WebAssembly’i (wasm) yapı anlamında .NET için MSIL’e ya da Java için Bytecode’a benzetebilir ve browserlar için intermediate language diyebiliriz. C, C++, C#, Go, Lua vb. bir çok dil wasm’a compile edilebiliyor. Blazor’ın sunucu taraflı çalışan versiyonu da mevcut.
- Blazor Web Assembly Artıları ve Eksileri
Blazor WebAssembly’nin artıları arasında offline çalışabilmesi, Progressive Web App olarak çalışmaya çok uygun olması ve sunucu yükünü oldukça azaltması.
Eksileri olarak da gerekli olan bütün dll dosyalarını ilk önce indirilmesi gerektiği için ilk başlangıç süresi normalden uzun oluyor. .NET kodunun client tarafında çalıştıran runtime Mono olmasından dolayı normalde kullandığımız runtimedan biraz daha yavaş olduğu söyleniyor. Server-side pre-rendering açılmadığı taktirde arama motorlarının bu sayfaları indexleyemediklerini de söylemek gerekiyor.
- Blazor Server Artıları ve Eksileri
Blazor Server’ın artıları arasında, sunucu taraflı render edilip HTML içeriğin gönderilmesi, bu sebeple arama motorunda indexlenebilir olması ve herşey sunucuda olduğu için daha hızlı başlangıç sürelerinden bahsedilebilir. WebAssembly’nin desteklenmediği eski tarayıcılarda çalışabilmesi de başka bir artı.
Eksileri arasında ise sunucu ile bağlantının kullanım süresince SignalR kullanılarak açık bırakılması ve sayfada dinlenilmesi gereken bütün olayların dinlenilmesi, bu işlemlerde ise tekrar sunucu tarafına istek gönderilip cevabın uygulanmasını sayabiliriz.
CodeRunner Webcast – Blazor WebAssembly: Server & Client Video kaydını izleyebilirsiniz.