Sdílet prostřednictvím


Úvod do Blazor pro vývojáře webových formulářů ASP.NET

Návod

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-pro-ASP-NET-Web-Forms-Developers miniatura obálky eKnihy.

Architektura webových formulářů ASP.NET byla základem vývoje webu .NET od prvního odeslání rozhraní .NET Framework v roce 2002. Tehdy, když byl web stále ve svých počátcích, ASP.NET Web Forms usnadnily vytváření webových aplikací jednoduchým a produktivním přijetím mnoha vzorů, které byly použity pro vývoj desktopových aplikací. 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í společnost Microsoft a dodavatelé ovládacích prvků. Ovládací prvky usnadňují připojování ke zdrojům dat a zobrazování bohatých vizualizací dat. Pro ty, kteří upřednostňují vizuální práci, 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é webové frameworky založené na ASP.NET, aby reagovala na trendy ve vývoji webů. Mezi takové webové architektury patří ASP.NET MVC, ASP.NET webové stránky a nedávno ASP.NET Core. S každým novým rámcem někteří předpověděli hrozící úpadek ASP.NET Web Forms a kritizovali ho jako zastaralý a nemoderní webový framework. 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 ohledně výhod a nevýhod webových formulářů ASP.NET ve srovnání s ostatními novými webovými rámci .NET mohou dále probíhat. 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 omezeni na jednoho vlastníka projektu pro opravu chyb a přidávání funkcí. 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 opatření patří licenční smlouvy přispěvatele, přátelské licence, skeny rodokmenu a podpůrné nadace.

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. Mono je opensourcová verze .NET, která běží na Androidu, iOSu a mnoha dalších formách faktorů, včetně hodinek a inteligentních televizorů. V roce 2020 společnost Microsoft vydala .NET 5 které sjednotily .NET Core a Mono do jediného runtime prostředí a rozhraní .NET, které lze používat všude a má jednotné chování runtime a zkušenosti vývojářů.

Přinese přechod ASP.NET Web Forms na open-source a multiplatformní podporu nějaké výhody? Odpověď je bohužel ne, nebo alespoň ne ve stejném rozsahu jako zbytek platformy. Tým .NET jasně uvedl, že Web Forms ASP.NET nebudou převedeny do .NET Core ani .NET 8. Proč to je?

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ý. Je zde také přiznání, že i pro Microsoft existuje limit, kolik webových architektur může současně podporovat. Možná se někdo z komunity ujme myšlenky vytvoření open-source a multiplatformní verze ASP.NET Web Forms. 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ářů není nedostatek multiplatformní a opensourcové podpory žádným problémem. 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šechny webové architektury založené na technologii .NET, včetně ASP.NET Web Forms, mají historicky jednu věc společnou: jsou vykreslovány 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 mohou těžit zejména z bohatšího a interaktivnějšího dojmu, když jsou zpracovány 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. Vývojáři webových formulářů ASP.NET mohou také těžit z využití klientského prostředí a dokonce mají určitou podporu s integrovanými JavaScriptovými frameworky, 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 neustálého vývoje závratnou rychlostí. 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 frameworků, jako jsou jQuery, Knockout, Angular, React a Vue, došlo ke stejnému neklidnému rozruchu. Ale vzhledem k tomu, že monopol JavaScriptu v prohlížečích, nebylo mnoho možností. To bylo do té doby, než se webová komunita spojila a způsobila zázrak!

WebAssembly uspokojuje 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, přičemž zahrnuje podporu v .NET 5 a novějších verzí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. Tam přichází na řadu Blazor. 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 mohou alternativně Blazor běžet na straně serveru na .NET a zpracovávat všechny interakce uživatelů prostřednictvím připojení v reálném čase s webovým 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í
  • Injekce závislostí
  • Směrování na straně klienta
  • Nákresy
  • 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 prostředí technologie ASP.NET Web Forms, bude tu toho hodně, co vám 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 poskytuje úvod do Blazor, které je určeno speciálně pro vývojáře webových formulářů ASP.NET. Každý Blazor koncept je prezentován v kontextu analogických funkcí a postupů ASP.NET Web Forms. Na konci této knihy budete rozumět:

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

Začínáme s Blazor

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