Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Jótanács
Ez a tartalom egy részlet az eBookból, Blazor az Azure-hoz készült ASP NET Web Forms Developers számára, amely elérhető a .NET Docs-on vagy egy ingyenesen letölthető PDF-fájlként, amely offline is olvasható.
Bár az ASP.NET Web Forms és Blazor sok hasonló fogalmat tartalmaznak, különbségek vannak a működésükben. Ez a fejezet az ASP.NET Web Forms és Blazor belső működését és architektúráit vizsgálja.
ASP.NET webes űrlapok
A ASP.NET Webes űrlapok keretrendszere lapközpontú architektúrán alapul. Az alkalmazás egy-egy helyére vonatkozó MINDEN HTTP-kérés egy külön lap, amelyre ASP.NET válaszol. Az oldalak kérése során a böngésző tartalma a kért oldal eredményeire cserélődik.
A lapok a következő összetevőkből állnak:
- HTML-jelölés
- C# vagy Visual Basic-kód
- Logikai és eseménykezelési képességeket tartalmazó kód mögötti osztály
- Vezérlők
A vezérlők a webes felhasználói felület újrafelhasználható egységei, amelyek programozott módon helyezhetők el és kezelhetők a lapon. A lapok olyan fájlokból állnak, amelyek .aspx végződnek, amelyek korrektúrát, vezérlőket és néhány kódot tartalmaznak. A kód mögötti osztályok a használt programozási nyelvtől függően azonos alapnévvel és .aspx.cs vagy .aspx.vb kiterjesztéssel rendelkező fájlokban találhatók. Érdekes, hogy a webkiszolgáló értelmezi a .aspx fájlok tartalmát, és lefordítja őket, amikor módosulnak. Ez az újrafordítás akkor is megtörténik, ha a webkiszolgáló már fut.
A vezérlők jelölőnyelvvel hozhatók létre, és felhasználói vezérlőkként szállíthatók. A felhasználói vezérlők az UserControl
osztályból származnak, és az oldalhoz hasonló struktúrával rendelkezik. A felhasználói vezérlők jelölése egy .ascx fájlban van tárolva. A kísérő kód mögötti osztály egy .ascx.cs vagy .ascx.vb fájlban található. A vezérlők teljesen kóddal is felépíthetők, az WebControl
vagy a CompositeControl
alaposztályból örökölve.
A lapok kiterjedt eseményéletciklust is tartalmaznak. Minden oldal eseményeket hoz létre az inicializálási, betöltési, előrendelői és eltávolítási eseményekhez, amelyek akkor fordulnak elő, amikor a ASP.NET futtatókörnyezet végrehajtja az oldal kódját az egyes kérésekhez.
A lapok vezérlői általában visszatérnek arra az oldalra, amely megadta a vezérlőt, és magukkal viszik egy rejtett űrlapmezőből származó adatcsomagot ViewState
. A ViewState
mező információkat tartalmaz a vezérlők állapotáról a megjelenítéskor és az oldalon való megjelenítésekor, így a ASP.NET futtatókörnyezet összehasonlíthatja és azonosíthatja a kiszolgálónak küldött tartalom változásait.
Blazor
Blazor egy ügyféloldali webes felhasználói felületi keretrendszer, amely hasonló a JavaScript előtér-keretrendszerekhez, például az Angularhoz vagy a Reacthez. Blazor kezeli a felhasználói interakciókat, és megjeleníti a szükséges felhasználói felületi frissítéseket. Blazor nem egy kérés-válasz modellen alapul. A felhasználói interakciók olyan eseményekként vannak kezelve, amelyek nincsenek egy adott HTTP-kérés kontextusában.
Blazor az alkalmazások egy vagy több, HTML-oldalon renderelt gyökérösszetevőből állnak.
A felhasználó által meghatározott, hogy hol jelenjenek meg az összetevők, és az összetevők hogyan legyenek összekapcsolva a felhasználói interakciókhoz, ez a tárhelymodell sajátosságaitól függ.
Blazor az összetevők .NET-osztályok, amelyek egy újrafelhasználható felhasználói felületet képviselnek. Minden összetevő saját állapotot tart fenn, és saját renderelési logikát határoz meg, amely magában foglalhatja más összetevők renderelését is. Az összetevők eseménykezelőket adnak meg az adott felhasználói interakciókhoz az összetevő állapotának frissítéséhez.
Miután egy összetevő kezel egy eseményt, rendereli az összetevőt, Blazor és nyomon követi, hogy mi változott a renderelt kimenetben. Az összetevők nem jelennek meg közvetlenül a dokumentumobjektum-modellben (DOM). Ehelyett a DOM egy memórián belüli ábrázolására renderelnek, amit RenderTree
-nek neveznek, hogy Blazor nyomon tudja követni a változásokat.
Blazor Összehasonlítja az újonnan renderelt kimenetet az előző kimenettel egy felhasználói felületi diff kiszámításához, amelyet aztán hatékonyan alkalmaz a DOM-ra.
Az összetevők manuálisan is jelezhetik, hogy renderelni kell őket, ha az állapotuk egy normál felhasználói felületi eseményen kívül változik.
Blazor
SynchronizationContext
a végrehajtás egyetlen logikai szálának kényszerítésére használatos. Egy összetevő életciklus-módszerei és az általa Blazor kiváltott esemény-visszahívások ezen SynchronizationContext
lesznek végrehajtva.