Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
I když ASP.NET webové formuláře a Blazor mají mnoho podobných konceptů, existují rozdíly v tom, jak fungují. Tato kapitola se zabývá vnitřními pracovními a architekturami webových formulářů ASP.NET a Blazor.
ASP.NET – webové formuláře
Architektura webových formulářů ASP.NET je založená na architektuře zaměřené na stránky. Každý požadavek HTTP na umístění v aplikaci je samostatná stránka, kterou ASP.NET zpracovává. Při vyžádání stránek se obsah prohlížeče nahradí výsledky požadované stránky.
Stránky se skládají z následujících součástí:
- Kód HTML
- Kód jazyka C# nebo Visual Basic
- Třída kódu, která obsahuje možnosti logiky a zpracování událostí
- Ovládání
Ovládací prvky jsou opakovaně použitelné jednotky webového uživatelského rozhraní, které lze programově umístit na stránku a pracovat s nimi. Stránky se skládají ze souborů, které končí .aspx obsahující značky, ovládací prvky a nějaký kód. Třídy založené na kódu jsou v souborech se stejným základním názvem a .aspx.cs nebo .aspx.vb příponou v závislosti na použitém programovacím jazyce. Je zajímavé, že webový server interpretuje obsah .aspx souborů a zkompiluje je při každé změně. K této rekompilace dochází i v případě, že je webový server již spuštěný.
Ovládací prvky lze sestavit pomocí značkovacího jazyka a zprostředkovat jako uživatelské ovládací prvky. Uživatelský ovládací prvek je odvozen z UserControl třídy a má podobnou strukturu jako Page. Označení uživatelských ovládacích prvků je uloženo v souboru .ascx. Doprovodná třída kódu se nachází v .ascx.cs souboru nebo .ascx.vb souboru. Ovládací prvky lze také zcela sestavit pomocí kódu, děděním buď ze základní třídy WebControl, nebo CompositeControl.
Stránky mají také rozsáhlý životní cyklus událostí. každá stránka vyvolává události pro inicializaci, načtení, předvýpočet a uvolnění, ke kterým dochází, když ASP.NET runtime zpracovává kód stránky pro každý požadavek.
Ovládací prvky na stránce obvykle odesílají data zpět na stejnou stránku, která ovládací prvek představila, a nesou s sebou užitečná data ze skrytého pole formuláře nazvaného ViewState. Pole ViewState obsahuje informace o stavu ovládacích prvků v době, kdy byly vykresleny a prezentovány na stránce, což umožňuje modulu runtime ASP.NET porovnat a identifikovat změny obsahu odeslaného na server.
Blazor
Blazor je architektura webového uživatelského rozhraní na straně klienta podobná rozhraní front-endu JavaScriptu, jako je Angular nebo React. Blazor zpracovává interakce uživatelů a vykresluje potřebné aktualizace uživatelského rozhraní. Blazor není založená na modelu žádosti a odpovědi. Interakce uživatelů se zpracovávají jako události, které nejsou v kontextu žádného konkrétního požadavku HTTP.
Blazor aplikace se skládají z jedné nebo více kořenových komponent, které se vykreslují na stránce HTML.
Způsob, jakým uživatel určuje, kde se mají komponenty vykreslit, a jak jsou poté komponenty připraveny pro interakce s uživateli, je specifický pro konkrétní model.
Blazor komponenty jsou třídy .NET, které představují opakovaně použitelnou část uživatelského rozhraní. Každá komponenta udržuje svůj vlastní stav a určuje vlastní logiku vykreslování, která může zahrnovat vykreslování dalších komponent. Komponenty určují obslužné rutiny událostí pro konkrétní interakce uživatele pro aktualizaci stavu komponenty.
Jakmile komponenta zpracuje událost, vykreslí ji a sleduje, Blazor co se změnilo ve vykresleném výstupu. Komponenty se nevykreslují přímo do modelu DOM (Document Object Model). Místo toho se vykreslují do reprezentace modelu DOM v paměti nazývané RenderTree, aby Blazor mohlo sledovat změny.
Blazor porovná nově vykreslený výstup s předchozím výstupem, aby vypočítal rozdíl uživatelského rozhraní, který pak efektivně aplikuje na DOM.
Komponenty můžou také ručně označit, že by se měly vykreslit, pokud se jejich stav změní mimo normální událost uživatelského rozhraní.
Blazor používá SynchronizationContext k vynucení jednoho logického vlákna provádění. Metody životního cyklu komponenty a všechna zpětná volání událostí, které jsou vyvolány Blazor, jsou spuštěny na tomto SynchronizationContext.