Genellikle tek sayfalık bir uygulamaya ihtiyaç duyduğumuzda JavaScript veya TypeScript tabanlı bir yapıya ihtiyaç duyarız.

Akla gelen ilk şey açısal veya duyarlıydı ve buna bağlı kalacağız. Microsoft, 2018'de bu trende katıldı.

Blazor, .net ile etkileşimli olarak kullanılabilecek istemci tarafı web arayüzleri oluşturmamıza izin veren bir çerçeve geliştirdiğini duyurdu. Microsoft tarafından geliştirilen Blazor çatısı sayesinde C# ve Razor ile client-side kullanıma yönelik interaktif uygulamalar geliştirebiliyoruz.

Bu şekilde, güçlü C# dilinde hem arka plan hem de ön uç programları için kod yazabiliriz. En güzeli ise client tarafında .net standardının kurallarına göre geliştirilmiş kütüphaneleri kullanabiliyor olmamız.

Blazor sayesinde istemci tarafı C# kodu, bir eklenti yüklemeden veya dönüştürmeden tüm modern tarayıcılarda çalışır.

Hem arka uç hem de kullanıcı arayüzünü aynı dilde geliştirebilmek, bize önemli geliştirme çabası ve maliyet tasarrufu sağlıyor. Diğer bir avantajımız ise Visual Studio gibi gelişmiş IDE'ler ile çalışabilmemiz.

Blazor’u önemli yapan taraflardan birisi de Microsoft tarafından geliştirilmiş olması ve resmi olarak desteklenmesidir.

Dezavantajları


Dosya boyutu: Blazor ile oluşturulan uygulama dosyaları, Javascript ile geliştirilen koda kıyasla daha büyüktür ve daha fazla disk alanı kaplar. Bu durumda sayfanın ilk açılışını yavaşlatabilir.

Debugging: Debugging konusunda hala oldukça gelişmiş olduğunu söylemek güç. Bahsettiğim kusurlar yeni sürümlerde giderilecek veya bu şeyler iyileştirilecek.

Angular ve Blazor Arasındaki Farklar

  • Component : Blazor içerisinde yer alan component mantığı ile angular içerisinde yer alan component mantığı bire bir aynıdır. Componentlerinizi hazırlayıp iç içe bir şekilde kullanarak kullanıcı arayüzünüzü oluşturabiliriz.
    Blazor içerisinde yer alan componentler tıpkı angularda yer aldığı gibi sınıf şeklinde yazılmıştır. Eğer daha önce angular üzerinde çalıştıysdanız kolay bir şekilde blazora alışabilirsiniz aynı zamanda asp.net ya da asp.net mvc içerisinde bir geçmişiniz var ise de razor söz dizimini (syntax) kullandığı için ciddi anlamda kolaylık sağlamaktadır.
  • Routing : Angular içersinde routing yapmak istediğimizde app-routing.ts dosyasını app.module.ts dosyamıza implemente etmeliyiz. Blazorda ise routing tam olarak frameworkün bir özelliğidir. Componentler arasında tanımlamalar yapmak ve bunları routing içerisinde kullanmak ciddi anlamda kolaydır.
  • Data Binding : Data binding kısmında ise öncelikle şunu söylemek istiyorum iki yapı içinde de two-way binding geçerlidir. Angular bu konuda biraz daha gelişmiştir. Blazor bu konuda biraz daha geride kalyıor, ikisi içerisinde debug yapmaya kalktığınızda blazorun bazı noktalarda çok stabil davranmadığını görebiliriz. Tabi şu an blazor çok yeni bir platform ve zamanla daha iyi olacaktır diye düşünüyoruz.


Hiç mi? Angular ve Blazor'un pek çok ortak noktası olsa da, ana farklılıklar sunucu tarafı kodu yazarken ortaya çıkar. Şimdi basit bir müşteri tarafı uygulaması yazdığımızı varsayarsak, gerçek bir fark yok. Elbette yinelemek istediğim bir şey var, o da blazer ceketin henüz tam anlamıyla olgunlaşmamış bir yapı olduğu. Dezavantajları büyük uygulamalarda görülebilir. Bu eksiklikler zaman içinde düzeltildiği için teknoloji ile ilgili kararların neye ve nasıl verildiğine bakmakta fayda var.

C# ile Etkileşimli(interactive) Web Kullanıcı Arayüzü (UI) :

Interactive web UI with C#

  • Blazor, JavaScript yerine C# kullanarak interactive web kullanıcı arayüzleri oluşturmanıza olanak tanır.
  • Blazor uygulamaları C#, HTML ve CSS kullanılarak uygulanan web kullanıcı arayüzü componentlerini (bileşenlerini) yeniden kullanabilir.
  • Hem istemci(client) , hemde sunucu(server) kodu C# ile yazılmıştır. Yazılan kod(code) ve kütüphaneleri(libraries) paylaşmamıza izin verir.
  • Blazor web uygulamaları geliştirmek için araçlar(tools) ve kütüphaler(libraries) ile .NET geliştirici platformunu genişleten popüler web geliştirme framework’ü olan ASP.NET'in bir özelliğidir.

WebAssembly'de veya Sunucuda Çalışır :

Run on WebAssembly or the server

  • Blazor, WebAssembly kullanarak istemci tarafı(client-side) C# kodumuzu direkt olarak tarayıcıda çalıştırabilir. Çünkü WebAssembly'de asıl .NET çalışıyor.
  • Uygulamamızın sunucu tarafı(server-side) bölümlerinden kod(code) ve kütüphaneleri(libraries) yeniden kullanabiliriz.
  • Alternatif olarak, Blazoristemci ’ mantığımızı ‘ sunucuda ‘ çalıştırabilir.
  • İstemci (client) kullanıcı arabirimi olayları, gerçek zamanlı bir mesajlaşma framework’ü olan SignalR kullanılarak sunucuya (server) geri gönderilir.
  • Uygulamada derleme işlemi tamamlandığında, gerekli kullanıcı arabilirimi (UI) değişiklikleri istemciye (client ’a) gönderir ve DOM ile birleştirilir.

Açık Web Standartları Üzerine Kurulmuştur :

Built on open web standards

  • Blazor, eklenti veya kod çevirisi olmadan açık web standartlarını kullanır.
  • Blazor, mobil tarayıcılar da dahil olmak üzere tüm modern web tarayıcılarında çalışır.
  • Tarayıcıda çalışan kod, JavaScript frameworkleriyle aynı güvenlik sanal alanında yürütülür.
  • Sunucuda(serverda) yürütülen blazor kodu normalde sunucuda(serverda) yapacağımız her şeyi yapma esnekliğine sahiptir doğrudan bir veritabanına bağlanmak gibi.

Kod ve Kütüphaneleri Paylaşır :

Share code and libraries

  • Blazor uygulamaları, tüm .NET uygulamalarında ortak olan ve resmi bir .NET API özelliği olan .NET Standardı sayesinde mevcut .NET kitaplıklarını kullanabilir
  • .NET Standard, sunucuda, tarayıcıda veya .NET kodu yazdığınız herhangi bir yerde aynı kod ve kitaplıkların kullanılmasına izin verir.

Javascript İle Birlikte Çalışır :

JavaScript interop

  • C# kodumuz kolayca JavaScript API’lerini ve kitaplıklarını çağırabilir.
  • C# ‘da istemci tarafı kullanıcı arayüzü mantığını yazarken mevcut olan JavaScript kitaplıklarının büyük ekosistemini kullanmaya devam edebiliriz.

Her İşletim Sistemi İçin Ücretsiz Araçlar Sunar :

Free tools for every operating system

  • Visual Studio ve Visual Studio Code Windows, Linux ve macOS üzerinde mükemmel bir Blazor geliştirme deneyimi sağlar.
  • Farklı bir düzenleyici kullanmayı tercih edersek, seçtiğimiz editör ile çalışmamıza izin veren .NET komut satırı araçları vardır.

Kullanıcı Arayüzü (UI) Bileşenleri Ekosistemi :

UI component ecosystem

  • Telerik, DevExpress, Syncfusion, Radzen, Infragistics ve diğerleri gibi üst düzey bileşen(component) satıcılarının yeniden kullanılabilir UI bileşenleri ile hızlı bir şekilde üretken oluruz.
  • Blazor için DevExpress UI, 15'ten fazla UI bileşeniyle birlikte gelir, (Data Grid, Pivot Grid, Scheduler ve Charts içerir) böylece hem Blazor sunucu tarafı hem de Blazor istemci tarafı platformları için zengin kullanıcı deneyimleri tasarlayabilirsiniz.

Açık Kaynaklı ve Ücretsiz :

Open-source and free

  • Blazor, 3.700'den fazla şirketten 60.000'den fazla katılımcıya sahip güçlü bir topluluğa sahip açık kaynaklı .NET platformunun bir parçasıdır.
  • .NET ücretsizdir ve Blazor içerir. Ticari kullanım da dahil olmak üzere herhangi bir ücret veya lisans maliyeti yoktur.

Aktif Topluluk :

Active community

  • Blazor, soruları cevaplayan, örnekler üreten, öğreticiler yazan, kitap yazan ve daha fazlasına sahip aktif bir topluluğa sahiptir.
  • Awesome Blazor, topluluk tarafından korunan Blazor kaynaklarının mükemmel bir listesini sunar.