ASP.NET Web Forms geliştiricilerine, Blazor için bir giriş

Tavsiye

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 kapak küçük resmi.

.NET Framework ilk kez 2002'de piyasaya sürüldüğünden bu yana, ASP.NET Web Forms çerçevesi, .NET web geliştirmesinin önemli bir unsuru 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 yönden eğilimli olanlar için, Web Forms tasarım aracı denetimleri yönetmek için basit bir sürükle ve bırak arayüzü sağlar.

Yıllar içinde Microsoft, web geliştirme eğilimlerini ele almak amacıyla yeni ASP.NET tabanlı web çerçeveleri tanıttı. 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 bir yeni çerçevede, bazıları ASP.NET Web Forms'un yakında yok olacağını tahmin etti ve modası geçmiş, demode bir web çerçevesi olarak eleştirdiler. 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. ASP.NET Web Forms'un diğer yeni .NET web çerçevelerine kıyasla artıları ve dezavantajları üzerindeki tartışmalar 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 bağlı kalmazlar. 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 azaltma önlemleri arasında katkıda bulunan lisans sözleşmeleri, uyumlu lisanslar, soyağacı taramaları ve destekleyici vakıflar gibi örnekler yer alabilir.

.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. Mono, .NET'in Android, iOS ve saatler ve akıllı TV'ler gibi çeşitli form faktörleri üzerinde çalışan açık kaynaklı bir sürümüdü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 zamanlarında ASP.NET Web Forms'u taşımaya yönelik çalışmalar yapıldı. Gerekli köklü değişikliklerin sayısının çok büyük 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 ASP.NET Web Forms yalnızca Windows'ta kalacak ve açık kaynak katkı modeli olmayacak 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, istemciden yararlanabilir ve hatta ASP.NET AJAX gibi tümleşik JavaScript çerçeveleriyle hazır bir şekilde gelen destekten faydalanabilirler.

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.

.NET'i WebAssembly üzerinde çalıştırma çalışmaları, 2017'nin sonlarında duyurulmuş ve .NET 5 ve sonrasındaki desteği de içeren sürüm 2020'de piyasaya çıkmıştır. .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, WebAssembly aracılığıyla doğ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 enjeksiyonu
  • İstemci tarafı yönlendirme
  • Düzenler
  • Tarayıcıda hata ayıklama
  • JavaScript ile birlikte çalışabilirlik (interoperabilite)

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 istemci tarayıcısında çalışabilir. Ancak bir ASP.NET Web Forms geçmişinden geliyorsanız, Blazor içinde size tanıdık gelecek birçok şey 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 Blazor hakkında bir giriş 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:

  • Blazor uygulamaları nasıl oluşturulur.
  • Nasıl Blazor çalışır?
  • Blazor.NET ile ilişkisi.
  • Mevcut ASP.NET Web Forms uygulamalarının uygun olan yerlere taşınması için makul stratejiler.

Kullanmaya başlama Blazor

Başlamak kolaydır Blazor ile. 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.