ASP.NET Web Forms geliştiricilerine giriş Blazor

İpucu

Bu içerik, Blazor .NET Docs'ta veya çevrimdışı olarak okunabilen ücretsiz indirilebilir bir PDF olarak sağlanan Azure için ASP NET Web Forms Geliştiricileri için e-Kitap'tan bir alıntıdır.

Blazor-for-ASP-NET-Web-Forms-Developers eBook cover thumbnail.

ASP.NET Web Forms çerçevesi, .NET Framework'ün ilk kez 2002'de gönderilmesinden bu yana .NET web geliştirmesinin bir zımbası olmuştur. Web'in henüz ilk döneminde olduğu zamanlarda ASP.NET Web Forms, masaüstü geliştirme için kullanılan desenlerin birçoğunu benimseyerek web uygulamaları derlemeyi basit ve üretken hale getirmiştir. ASP.NET Web Forms'da, web sayfaları yeniden kullanılabilir kullanıcı arabirimi denetimlerinden hızla oluşturulabilir. Kullanıcı etkileşimleri doğal olarak olaylar olarak işlenir. Microsoft ve denetim satıcıları tarafından sağlanan zengin bir Web Forms kullanıcı arabirimi denetimi ekosistemi vardır. Denetimler, veri kaynaklarına bağlanma ve zengin veri görselleştirmeleri görüntüleme çabalarını kolaylaştırır. Görsel olarak eğimli olan Web Forms tasarımcısı denetimleri yönetmek için basit bir sürükle ve bırak arabirimi sağlar.

Yıllar içinde Microsoft yeni ASP'yi kullanıma sunulmuştur. Web geliştirme eğilimlerini ele almak için NET tabanlı web çerçeveleri. Bu tür web çerçevelerinden bazıları ASP.NET MVC, ASP.NET Web Sayfaları ve daha yakın zamanda ASP.NET Core'dur. Her yeni çerçevede, bazıları ASP.NET Web Forms'un azalacağını tahmin etti ve eski, eski bir web çerçevesi olarak eleştirdi. Bu tahminlere rağmen, birçok .NET web geliştiricisi ASP.NET Web Forms'u işlerini yapmak için basit, kararlı ve üretken bir yol bulmaya devam eder.

Yazı yazarken, neredeyse yarım milyon web geliştiricisi her ay ASP.NET Web Forms kullanıyor. ASP.NET Web Forms çerçevesi, on yıl önceki belgeler, örnekler, kitaplar ve blog gönderilerinin yararlı ve ilgili olmaya devam etme noktasına kararlıdır. Birçok .NET web geliştiricisi için "ASP.NET" hala .NET ilk tasarlandığı zamanki gibi "ASP.NET Web Forms" ile eş anlamlıdır. diğer yeni .NET web çerçevelerine kıyasla ASP.NET Web Forms'un artıları ve dezavantajları üzerindeki bağımsız değişkenler devam edebilir. ASP.NET Web Forms, web uygulamaları oluşturmaya yönelik popüler bir çerçeve olmaya devam etmektedir.

Yine de yazılım geliştirmedeki yenilikler yavaşlamıyor. Tüm yazılım geliştiricilerin yeni teknolojiler ve eğilimlerden haberdar olması gerekir. Özellikle iki eğilim göz önünde bulundurulmaya değer:

  1. Açık kaynak ve platformlar arası geçiş
  2. Uygulama mantığının istemciye kayması

Açık kaynak ve platformlar arası .NET

.NET ve ASP.NET Web Forms ilk kez gönderildiğinde platform ekosistemi bugünden çok farklı görünüyordu. Masaüstü ve sunucu pazarları Windows'un hakimiyetindeydi. macOS ve Linux gibi alternatif platformlar hala zorluk çekiyordu. ASP.NET Web Forms yalnızca Windows bileşeni olarak .NET Framework ile birlikte gelir; bu, ASP.NET Web Forms uygulamalarının yalnızca Windows Server makinelerinde çalışabileceği anlamına gelir. Birçok modern ortam artık sunucular ve geliştirme makineleri için farklı türlerde platformlar kullanıyor. Bu nedenle birçok kullanıcı için platformlar arası destek mutlak bir gereksinimdir.

Modern web çerçevelerinin çoğu artık bir dizi avantajı olan açık kaynaktır. Kullanıcılar, hataları düzeltmek ve özellik eklemek için tek bir proje sahibine bildirimde bulunamaz. Açık kaynak projeleri geliştirme ilerleme durumu ve yaklaşan değişiklikler üzerinde gelişmiş saydamlık sağlar. Açık kaynak projeleri tüm topluluğun katkılarından faydalanıyor ve destekleyici bir açık kaynak ekosistemi teşvik ediyor. Açık kaynak risklerine rağmen, birçok tüketici ve katkıda bulunan, açık kaynak ekosisteminin avantajlarından güvenli ve makul bir şekilde yararlanmalarını sağlayan uygun risk azaltmaları buldu. Bu tür risk azaltmalara örnek olarak katkıda bulunan lisans sözleşmeleri, kolay lisanslar, soyağacı taramaları ve destekleyici temeller verilebilir.

.NET topluluğu hem platformlar arası desteği hem de açık kaynak desteğini benimsemiştir. .NET Core, Windows, macOS ve çeşitli Linux dağıtımları da dahil olmak üzere çok sayıda platformda çalışan açık kaynaklı ve platformlar arası bir uygulamadır. Xamarin, .NET'in açık kaynak bir sürümü olan Mono'yı sağlar. Mono, Android, iOS ve saatler ve akıllı TV'ler dahil olmak üzere çeşitli diğer form faktörleri üzerinde çalışır. 2020'de Microsoft, .NET Core ve Mono'nun "her yerde kullanılabilen ve tekdüzen çalışma zamanı davranışları ve geliştirici deneyimleri olan tek bir .NET çalışma zamanı ve çerçevesi" ile mutabık olan .NET 5'i yayımladı.

ASP.NET Web Forms açık kaynak ve platformlar arası desteğe geçişten yararlanacak mı? Yanıt ne yazık ki hayır veya en azından platformun geri kalanıyla aynı ölçüde değildir. .NET ekibi , ASP.NET Web Forms'un .NET Core veya .NET 8'e aktarılmayacağını açıkça belirtmiş . Bunun nedeni nedir?

.NET Core'un ilk günlerinde Web Forms'ASP.NET bağlantı noktasına yönelik çalışmalar yapıldı. Gerekli hataya neden olan değişikliklerin sayısının çok fazla olduğu belirlendi. Ayrıca burada, Microsoft için bile aynı anda destekleyebileceğiniz web çerçevelerinin sayısıyla ilgili bir sınır vardır. Belki de topluluktaki biri ASP.NET Web Forms'un açık kaynak ve platformlar arası sürümünü oluşturmanın nedenini ele alacaktır. ASP.NET Web Forms için kaynak kodu, başvuru formunda genel kullanıma sunulmuştur. Ancak şimdilik Web Forms ASP.NET yalnızca Windows'ta ve açık kaynak katkı modeli olmadan kalacak gibi görünüyor. Platformlar arası destek veya açık kaynak senaryolarınız için önemli hale gelirse yeni bir şey aramanız gerekir.

Bu, ASP.NET Web Forms'un öldüğü ve artık kullanılmaması gerektiği anlamına mı geliyor? Tabii ki olmaz! .NET Framework, Windows'un bir parçası olarak gösterildiği sürece ASP.NET Web Forms desteklenen bir çerçeve olacaktır. Birçok Web Forms geliştiricisi için platformlar arası ve açık kaynak desteğinin olmaması sorun oluşturmaz. Platformlar arası destek, açık kaynak veya .NET Core veya .NET 8'deki diğer yeni özelliklere yönelik bir gereksiniminiz yoksa, Windows'da ASP.NET Web Forms ile devam edebilirsiniz. ASP.NET Web Forms, uzun yıllar boyunca web uygulamaları yazmanın üretken bir yolu olmaya devam edecektir.

Ama dikkate alınması gereken başka bir eğilim daha var ve bu da müşteriye geçiştir.

İstemci tarafı web geliştirme

tüm . ASP.NET Web Forms da dahil olmak üzere NET tabanlı web çerçevelerinin geçmişte ortak bir yanı vardır: bunlar sunucu tarafından işlenir. Sunucu tarafından işlenen web uygulamalarında, tarayıcı sunucuya bir istekte bulunur ve bir yanıt oluşturmak için bazı kodlar (ASP.NET uygulamalarında.NET kodu) yürütür. Bu yanıt işlenmek üzere tarayıcıya geri gönderilir. Bu modelde tarayıcı, ince işleme altyapısı olarak kullanılır. Kullanıcı arabirimini oluşturma, iş mantığını çalıştırma ve durumu yönetme işlemleri sunucuda gerçekleştirilir.

Ancak tarayıcılar çok yönlü platformlar haline gelmiştir. Kullanıcının makinesinin özelliklerine erişim sağlayan, sürekli artan sayıda açık web standardı uygular. neden istemci cihazının işlem gücü, depolama alanı, bellek ve diğer kaynaklarından yararlanmıyorsunuz? Özellikle kullanıcı arabirimi etkileşimleri, en azından kısmen veya tamamen istemci tarafında işlendiğinde daha zengin ve daha etkileşimli bir histen yararlanabilir. Sunucuda işlenmesi gereken mantık ve veriler yine de sunucu tarafında işlenebilir. Web API çağrıları ve hatta WebSockets gibi gerçek zamanlı protokoller kullanılabilir. Bu avantajlar, JavaScript yazmak isteyen web geliştiricileri tarafından ücretsiz olarak kullanılabilir. Angular, React ve Vue gibi istemci tarafı kullanıcı arabirimi çerçeveleri, istemci tarafı web geliştirmeyi basitleştirir ve popülerliği artmış durumdadır. ASP.NET Web Forms geliştiricileri de istemciden yararlanabilir ve hatta ASP.NET AJAX gibi tümleşik JavaScript çerçeveleriyle kullanıma hazır destek alabilir.

Ancak iki farklı platform ve ekosistemde (.NET ve JavaScript) köprü oluşturmanın bir maliyeti vardır. Farklı dillere, çerçevelere ve araçlara sahip iki paralel dünyada uzmanlık gereklidir. Kod ve mantık, istemci ve sunucu arasında kolayca paylaşılamaz ve bu da yineleme ve mühendislik ek yüküne neden olur. Ayrıca, kırılma hızında gelişen bir geçmişe sahip olan JavaScript ekosistemine ayak uydurmak da zor olabilir. Ön uç çerçevesi ve derleme aracı tercihleri hızla değişir. Sektör Grunt'tan Gulp'a, Webpack'e ve benzeri ilerlemeyi gözlemlemiştir. JQuery, Knockout, Angular, React ve Vue gibi ön uç çerçevelerinde de aynı huzursuz değişim sıklığı oluştu. Ancak JavaScript'in tarayıcı tekeli göz önüne alındığında, bu konuda çok az seçenek vardı. Yani, web topluluğu bir araya gelip bir mucizeye neden olana kadar!

WebAssembly bir ihtiyacı karşılar

2015'te, büyük tarayıcı satıcıları adlı WebAssemblyyeni bir açık web standardı oluşturmak için bir W3C Topluluk Grubu'nda güçlerini birleştirdi. WebAssembly , Web için bir bayt kodudur. Kodunuzu olarak WebAssemblyderleyebilirseniz, herhangi bir platformdaki herhangi bir tarayıcıda yerel hıza yakın bir şekilde çalıştırılabilir. C/C++ odaklı ilk çalışmalar. Sonuç, yerel 3B grafik altyapılarını eklentiler olmadan doğrudan tarayıcıda çalıştırmanın çarpıcı bir gösterimiydi. WebAssembly o zamandan beri tüm ana tarayıcılar tarafından standartlaştırılmış ve uygulanmıştır.

Üzerinde .NET WebAssembly çalıştırma çalışmaları 2017'nin sonlarında duyuruldu ve .NET 5 ve sonrasındaki destek de dahil olmak üzere 2020'de yayınlandı. .NET kodunu doğrudan tarayıcıda çalıştırma özelliği, .NET ile tam yığın web geliştirmesine olanak tanır.

Blazor: .NET ile tam yığın web geliştirme

.NET kodunu tarayıcıda tek başına çalıştırma özelliği, istemci tarafı web uygulamaları oluşturmak için uçtan uca bir deneyim sağlamaz. İşte bu noktada Blazor devreye giriyor. Blazor JavaScript yerine C# tabanlı bir istemci tarafı web kullanıcı arabirimi çerçevesidir. Blazor aracılığıyla WebAssemblydoğrudan tarayıcıda çalışabilir. Tarayıcı eklentisi gerekmez. Alternatif olarak, Blazor uygulamalar .NET üzerinde sunucu tarafında çalışabilir ve tarayıcıyla gerçek zamanlı bir bağlantı üzerinden tüm kullanıcı etkileşimlerini işleyebilir.

Blazor Visual Studio ve Visual Studio Code'da harika araç desteğine sahiptir. Çerçeve ayrıca tam kullanıcı arabirimi bileşen modeli içerir ve aşağıdakiler için yerleşik olanaklara sahiptir:

  • Formlar ve doğrulama
  • Bağımlılık ekleme
  • İstemci tarafı yönlendirme
  • Düzenler
  • Tarayıcıda hata ayıklama
  • JavaScript ile birlikte çalışma

Blazor ASP.NET Web Forms ile birçok ortak yönü vardır. Her iki çerçeve de bileşen tabanlı, olay odaklı, durum bilgisi olan kullanıcı arabirimi programlama modelleri sunar. Ana mimari farkı, ASP.NET Web Forms'un yalnızca sunucuda çalışmasıdır. Blazor tarayıcıda istemcide çalışabilir. Ancak bir ASP.NET Web Forms arka planından geliyorsanız, tanıdık gelecek birçok şey Blazor vardır. Blazor , istemci tarafı geliştirmeden ve .NET'in açık kaynak, platformlar arası geleceğinden yararlanmanın bir yolunu arayan ASP.NET Web Forms geliştiricileri için doğal bir çözümdür.

Bu kitap, özellikle ASP.NET Web Forms geliştiricilerine yönelik bir giriş Blazor sağlar. Her Blazor kavram, Benzer ASP.NET Web Forms özellikleri ve uygulamaları bağlamında sunulur. Bu kitabın sonunda şunları anlayacaksınız:

  • Uygulama oluşturma Blazor .
  • Nasıl Blazor çalışır?
  • Blazor.NET ile ilişkisi.
  • Mevcut ASP.NET Web Forms uygulamalarını uygun yerlere geçirmek için Blazor makul stratejiler.

Blazor kullanmaya başlayın

Kullanmaya başlamak Blazor kolaydır. Uygun .NET SDK'sını https://blazor.net ve proje şablonlarını yüklemek için adresine gidin ve Blazor bağlantıları izleyin. Visual Studio veya Visual Studio Code'da araçları ayarlama Blazor yönergelerini de bulabilirsiniz.