Úvod k vývojářům Blazor webových formulářů ASP.NET

Tip

Tento obsah je výňatek z eBooku pro Blazor vývojáře webových formulářů ASP NET pro Azure, který je k dispozici na webu .NET Docs nebo jako bezplatný soubor PDF ke stažení, který si můžete přečíst offline.

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

Architektura webových formulářů ASP.NET byla základem vývoje webu .NET od prvního odeslání rozhraní .NET Framework v roce 2002. Zpátky, když byl web stále v podstatě ve své národnosti, ASP.NET Webové formuláře vytvořily vytváření webových aplikací jednoduchým a produktivním přijetím mnoha vzorů, které byly použity pro vývoj desktopů. Ve webových formulářích ASP.NET lze webové stránky rychle sestavit z opakovaně použitelných ovládacích prvků uživatelského rozhraní. Interakce uživatelů se zpracovávají přirozeně jako události. Existuje bohatý ekosystém ovládacích prvků uživatelského rozhraní webových formulářů, které poskytují dodavatelé Microsoftu a ovládacích prvků. Ovládací prvky usnadňují připojování ke zdrojům dat a zobrazování bohatých vizualizací dat. Pro vizuálně nakloněný návrhář webových formulářů poskytuje jednoduché rozhraní pro správu ovládacích prvků přetažením.

V průběhu let společnost Microsoft zavedla nové ASP. Webové architektury založené na netu pro řešení trendů vývoje webů Mezi takové webové architektury patří ASP.NET MVC, ASP.NET webové stránky a nedávno ASP.NET Core. S každou novou architekturou někteří předpověděli bezprostřední pokles ASP.NET webových formulářů a kritizovali ho jako zastaralou, zastaralou webovou architekturu. Navzdory těmto předpovědím mnoho webových vývojářů v .NET nadále najdou ASP.NET webových formulářů jednoduchý, stabilní a produktivní způsob, jak svou práci zvládnout.

V době psaní textu používají téměř půl milionu webových vývojářů každý měsíc ASP.NET webových formulářů. Architektura webových formulářů ASP.NET je stabilní v tom, že dokumenty, ukázky, knihy a blogové příspěvky z deseti let zůstávají užitečné a relevantní. Pro mnoho webových vývojářů .NET je "ASP.NET" stále synonymem "ASP.NET webových formulářů", jak tomu bylo, když byl .NET poprvé navržen. Argumenty pro výhody a nevýhody webových formulářů ASP.NET ve srovnání s ostatními novými webovými architekturami .NET mohou zuřit. ASP.NET webových formulářů zůstává oblíbenou architekturou pro vytváření webových aplikací.

I tak se inovace ve vývoji softwaru nezpomalují. Všichni vývojáři softwaru potřebují mít přehled o nových technologiích a trendech. Je třeba zvážit dva trendy:

  1. Přechod na opensourcový a multiplatformní
  2. Posun logiky aplikace do klienta

Open source a multiplatformní .NET

Když se poprvé odeslaly webové formuláře .NET a ASP.NET, ekosystém platformy vypadal mnohem jinak než dnes. Desktopové a serverové trhy ovládaly Windows. Alternativní platformy, jako jsou macOS a Linux, se stále snaží získat trakci. ASP.NET webové formuláře se dodává s rozhraním .NET Framework jako komponentou jen pro Windows, což znamená, že ASP.NET webové formuláře můžou běžet jenom na počítačích s Windows Serverem. Mnoho moderních prostředí teď používá různé druhy platforem pro servery a vývojové počítače, takže podpora více platforem pro mnoho uživatelů je absolutním požadavkem.

Většina moderních webových architektur je nyní také opensourcová, která má řadu výhod. Uživatelé nejsou u jednoho vlastníka projektu zachováni, aby opravili chyby a přidali funkce. Opensourcové projekty poskytují vylepšenou transparentnost průběhu vývoje a nadcházejících změn. Opensourcové projekty využívají příspěvky od celé komunity a podporují podpůrný opensourcový ekosystém. Navzdory rizikům opensourcových zdrojů zjistila řada spotřebitelů a přispěvatelů vhodná omezení rizik, která jim umožní využívat výhody opensourcového ekosystému bezpečným a přiměřeným způsobem. Mezi příklady takových omezení patří licenční smlouvy přispěvatele, popisné licence, kontroly rodokmenu a podpůrné základy.

Komunita .NET přijala podporu pro různé platformy i open source. .NET Core je opensourcová a multiplatformní implementace .NET, která běží na mnoha platformách, včetně Windows, macOS a různých distribucí Linuxu. Xamarin poskytuje Mono, opensourcovou verzi .NET. Mono běží na Androidu, iOSu a různých dalších formách, včetně hodinek a chytrých televizorů. V roce 2020 společnost Microsoft vydala .NET 5 , která odsouhlasila rozhraní .NET Core a Mono do jediného modulu runtime a rozhraní .NET, které lze používat všude a má jednotné chování modulu runtime a prostředí pro vývojáře.

Bude ASP.NET webových formulářů přínosem přechodu na opensourcovou a multiplatformní podporu? Odpověď bohužel není, nebo alespoň ne ve stejném rozsahu jako zbytek platformy. Tým .NET ukázal , že ASP.NET webových formulářů se nepřevedou do .NET Core ani .NET 8. Proč?

V prvních dnech rozhraní .NET Core bylo úsilí o portování ASP.NET webových formulářů. Bylo zjištěno, že počet požadovaných zásadních změn je příliš drastický. Existuje zde také přístup, který platí i pro Microsoft, existuje omezení počtu webových architektur, které může současně podporovat. Možná někdo z komunity převezme příčinu vytvoření opensourcové a multiplatformní verze ASP.NET webových formulářů. Zdrojový kód pro ASP.NET webových formulářů byl veřejně zpřístupněn v referenční podobě. Zdá se ale, že ASP.NET webové formuláře zůstanou jen pro Windows a bez opensourcového modelu přispívání. Pokud se pro vaše scénáře stane důležitá podpora pro různé platformy nebo open source, budete muset vyhledat něco nového.

Znamená to, že ASP.NET webové formuláře jsou mrtvé a už by se neměly používat? Samozřejmě ne! Pokud se rozhraní .NET Framework dodává jako součást Windows, ASP.NET webové formuláře budou podporovanou architekturou. Pro mnoho vývojářů webových formulářů je nedostatek multiplatformní a opensourcové podpory problém. Pokud nemáte požadavek na podporu napříč platformami, open source ani žádné z dalších nových funkcí v .NET Core nebo .NET 8, je v pořádku, že zůstanete u ASP.NET Webových formulářů ve Windows. ASP.NET webové formuláře budou i nadále produktivním způsobem psaní webových aplikací po mnoho let.

Ale existuje další trend, který stojí za zvážení, a to je posun na klienta.

Vývoj webu na straně klienta

Všechno z toho . Webové architektury založené na netu, včetně ASP.NET webových formulářů, mají historicky jednu věc: jsou vykreslené serverem. V serverových webových aplikacích prohlížeč odešle požadavek na server, který spustí kód (kód .NET v ASP.NET aplikacích), aby vytvořil odpověď. Tato odpověď se odešle zpět do prohlížeče pro zpracování. V tomto modelu se prohlížeč používá jako tenký vykreslovací modul. Tvrdá práce při vytváření uživatelského rozhraní, spouštění obchodní logiky a správy stavu na serveru.

Prohlížeče se však staly univerzálními platformami. Implementují stále rostoucí počet otevřených webových standardů, které udělují přístup k možnostem počítače uživatele. Proč nevyužít výpočetní výkon, úložiště, paměť a další prostředky klientského zařízení? Interakce s uživatelským rozhraním můžou být užitečné zejména z bohatšího a interaktivnějšího chování při zpracování alespoň částečně nebo zcela na straně klienta. Logika a data, která by se měla zpracovat na serveru, je stále možné zpracovat na straně serveru. Je možné použít volání webového rozhraní API nebo dokonce protokoly v reálném čase, jako jsou WebSockets. Tyto výhody jsou dostupné webovým vývojářům zdarma, pokud jsou ochotni psát JavaScript. Architektury uživatelského rozhraní na straně klienta, jako jsou Angular, React a Vue, zjednodušují vývoj na straně klienta a zvýšily se popularitu. ASP.NET vývojáři webových formulářů můžou také využívat využití klienta a dokonce mají určitou podporu s integrovanými javascriptovými architekturami, jako je ASP.NET AJAX.

Přemostění dvou různých platforem a ekosystémů (.NET a JavaScript) ale přináší náklady. Odborné znalosti se vyžadují ve dvou paralelních světech s různými jazyky, architekturami a nástroji. Kód a logika se nedají snadno sdílet mezi klientem a serverem, což vede k duplikaci a technické režii. Také může být obtížné držet krok s ekosystémem JavaScriptu, který má historii vývoje v kritické rychlosti. Front-endová architektura a předvolby nástrojů sestavení se rychle mění. Odvětví zaznamenalo průběh z Gruntu na Gulp na Webpack atd. U front-endových architektur, jako jsou jQuery, Knockout, Angular, React a Vue, došlo ke stejné nepokojné četnosti změn. Ale vzhledem k tomu, že javascriptový monopol prohlížeče, bylo v této věci málo na výběr. To znamená, že dokud se webová komunita seskupila a způsobila zázrak , že se stane!

WebAssembly plní potřebu

V roce 2015 se hlavní dodavatelé prohlížečů spojili v rámci komunitní skupiny W3C a vytvořili nový otevřený webový standard s názvem WebAssembly. WebAssembly je bajtový kód pro web. Pokud můžete kód WebAssemblyzkompilovat, může se spustit v libovolném prohlížeči na libovolné platformě téměř nativní rychlostí. Počáteční úsilí zaměřené na C/C++. Výsledkem byla dramatická ukázka spouštění nativních 3D grafických modulů přímo v prohlížeči bez modulů plug-in. WebAssembly od té doby byla standardizována a implementována všemi hlavními prohlížeči.

Práce na spuštění .NET on WebAssembly byla oznámena na konci roku 2017 a vydána v roce 2020, včetně podpory v .NET 5 a novějších. Možnost spouštět kód .NET přímo v prohlížeči umožňuje kompletní vývoj webu pomocí .NET.

Blazor: Kompletní vývoj webu s využitím .NET

Možnost spouštět kód .NET v prohlížeči nenabízí kompletní prostředí pro vytváření webových aplikací na straně klienta. To je místo, kde Blazor přichází. Blazor je architektura webového uživatelského rozhraní na straně klienta založená na jazyce C# místo JavaScriptu. Blazor může běžet přímo v prohlížeči prostřednictvím WebAssembly. Nejsou vyžadovány žádné moduly plug-in prohlížeče. Aplikace můžou také Blazor spouštět serverovou stranu na .NET a zpracovávat všechny interakce uživatelů přes připojení v reálném čase s prohlížečem.

Blazor má skvělou podporu nástrojů v sadě Visual Studio a Visual Studio Code. Tato architektura zahrnuje také úplný model komponent uživatelského rozhraní a má integrované zařízení pro:

  • Formuláře a ověřování
  • Injektáž závislostí
  • Směrování na straně klienta
  • Rozložení
  • Ladění v prohlížeči
  • Interoperabilita JavaScriptu

Blazor má hodně společného s webovými formuláři ASP.NET. Obě architektury nabízejí programovací modely stavového uživatelského rozhraní založené na komponentách, řízené událostmi. Hlavní rozdíl v architektuře spočívá v tom, že webové formuláře ASP.NET běží jenom na serveru. Blazor může běžet v klientovi v prohlížeči. Pokud ale pocházíte z ASP.NET pozadí webových formulářů, Blazor je toho hodně, co bude povědomé. Blazor je přirozené řešení pro vývojáře ASP.NET webových formulářů, kteří hledají způsob, jak využívat vývoj na straně klienta a opensourcovou multiplatformní budoucnost rozhraní .NET.

Tato kniha obsahuje úvod do Blazor toho, co je určené speciálně pro vývojáře webových formulářů ASP.NET. Každý Blazor koncept je prezentován v kontextu analogické ASP.NET funkce a postupy webových formulářů. Na konci této knihy budete rozumět:

  • Jak vytvářet Blazor aplikace
  • Jak Blazor to funguje.
  • Jak Blazor souvisí s .NET.
  • Vhodné strategie migrace stávajících aplikací ASP.NET Webových formulářů na Blazor vhodné místo.

Začínáme s Blazor

Začínáme s Blazor aplikací je snadné. Přejděte na https://blazor.net odkazy a nainstalujte příslušné šablony sady .NET SDK a projektů.Blazor Najdete zde také pokyny pro nastavení Blazor nástrojů v sadě Visual Studio nebo Visual Studio Code.