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.
Jegyzet
Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.
Figyelmeztetés
A ASP.NET Core ezen verziója már nem támogatott. További információ: .NET és .NET Core támogatási szabályzat. A jelen kiadást lásd a .NET 9-es verzióban ebben a cikkben .
Ez a cikk az önálló Blazor WebAssembly-alkalmazások buildelési eszközeit ismerteti, valamint azt, hogyan állíthat össze alkalmazásokat az üzembe helyezés előtt, előre elkészített (AOT) összeállítással.
.NET WebAssembly buildelési eszközök
A .NET WebAssembly buildelési eszközei Emscripten, a webes platform fordítóeszközláncán alapulnak.
A buildelési eszközök .NET-számítási feladatként való telepítéséhez használja az alábbi módszerek egyikét :
A Visual Studio telepítőjének ASP.NET és webfejlesztési számítási feladataihoz válassza a .NET WebAssembly buildelési eszközöket lehetőséget az opcionális összetevők listájából. A beállítás a következőket biztosítja:
- A számítási feladat telepítve van a legújabb .NET SDK-hoz.
- Ha a Visual Studio új verziója megjelent, és új .NET SDK-t tartalmaz, a lehetőség telepíti az új SDK számítási feladatát.
Másik lehetőségként futtassa a következő parancsot egy felügyeleti parancshéjban a legújabb számítási feladat telepítéséhez a rendszeren elérhető legújabb .NET SDK-ra:
dotnet workload install wasm-tools
Ha egy korábbi .NET-kiadást meg szeretne célozni egy adott .NET SDK-val, telepítse a wasm-tools-net{MAJOR VERSION} számítási feladatot:
- A
{MAJOR VERSION}helyőrzőt a megcélzni kívánt .NET-kiadás főverziószámára cseréli (példáulwasm-tools-net8.NET 8 esetén). - A számítási feladatok .NET SDK-nként vannak telepítve.
wasm-toolsAz egyik SDK számítási feladatának telepítése nem teszi elérhetővé a rendszer többi SDK-jának számára. - Minden használni kívánt .NET SDK-verzióhoz telepítenie kell a megfelelő számítási feladatot.
Az alábbi lista az egyes .NET SDK-khoz telepíteni kívánt számítási feladatokat mutatja be a megcélzott alkalmazásoktól függően. Bár több sor is tartalmazhatja ugyanazt a számítási feladatot, a számítási feladatok mindig kissé eltérnek az egyes .NET SDK-k esetében.
- A .NET 10 SDK használata
- A .NET 10-re való célzáshoz szükséges
wasm-tools. - A .NET 9 célzásához szükséges
wasm-tools-net9. - A .NET 8 célzásához szükséges
wasm-tools-net8.
- A .NET 10-re való célzáshoz szükséges
- A .NET 9 SDK használata
- A .NET 9 célzásához szükséges
wasm-tools. - A .NET 8 célzásához szükséges
wasm-tools-net8.
- A .NET 9 célzásához szükséges
- A .NET 8 SDK használata: A .NET 8 célzása megköveteli
wasm-tools.
Idő előtti (AOT) összeállítás
Blazor WebAssembly támogatja az idő előtti (AOT) fordítást, ahol a .NET-kódot közvetlenül a WebAssemblybe fordíthatja. Az AOT-fordítás javítja a futásidejű teljesítményt, viszont nagyobb lesz az alkalmazás mérete.
A böngészőben futó
Az AOT-fordítás bekapcsolása nélkül Blazor WebAssembly alkalmazások a böngészőben futnak a WebAssemblyben implementált .NET köztes nyelv (IL) értelmező használatával. A .NET-kód értelmezése miatt az alkalmazások általában lassabban futnak, mint a kiszolgálóoldali .NET- futtatókörnyezetben. Az AOT összeállítása úgy oldja meg ezt a teljesítményproblémát, hogy egy alkalmazás .NET-kódját közvetlenül a WebAssemblybe alakítja a böngésző natív WebAssembly-végrehajtásához. Az AOT-teljesítmény javítása drámai javulást eredményezhet a processzorigényes feladatokat végrehajtó alkalmazások számára. Az AOT-fordítás használatának hátránya, hogy az AOT által lefordított alkalmazások általában nagyobbak, mint az IL által értelmezett társaik, ezért általában hosszabb ideig tart letölteni őket az ügyfélhez, amikor először kérik őket.
A .NET WebAssembly építési eszközeinek telepítéséhez szükséges útmutatásért tekintse meg az ASP.NET Core Blazor WebAssembly építési eszközeit és az előzetes (AOT) fordítást.
A WebAssembly AOT-fordítás engedélyezéséhez állítsa a <RunAOTCompilation> tulajdonságot true-re, és adja hozzá a Blazor WebAssembly alkalmazás projektfájljához:
<PropertyGroup>
<RunAOTCompilation>true</RunAOTCompilation>
</PropertyGroup>
Az alkalmazás WebAssemblyre fordításához tegye közzé az alkalmazást. A Release konfiguráció közzététele biztosítja, hogy a .NET köztes nyelv (IL) csatolása is fusson a közzétett alkalmazás méretének csökkentése érdekében:
dotnet publish -c Release
A WebAssembly AOT összeállítása csak a projekt közzétételekor történik. Az AOT-fordítás nem használható, ha a projektet fejlesztés (Development környezet) során futtatják, mivel az AOT-fordítás általában néhány percet vesz igénybe a kis projekteken, és a nagyobb projektek esetében akár sokkal hosszabb időt is igénybe vehet. Az AOT-fordítás létrehozási idejének csökkentése folyamatban van a ASP.NET Core jövőbeli kiadásaihoz.
Az AOT által lefordított Blazor WebAssembly-alkalmazások mérete általában nagyobb, mint az alkalmazás mérete, ha .NET IL-be van fordítva:
Bár a méretkülönbség az alkalmazástól függ, az AOT által lefordított alkalmazások többsége körülbelül kétszer akkora, mint az IL-fordítású verzióké. Ez azt jelenti, hogy az AOT-fordítás használata a betöltési idő alatti teljesítmény rovására javítja a futásidejű teljesítményt. Az alkalmazástól függ, hogy megéri-e ez a kompromisszum az AOT-fordítással. Blazor WebAssembly processzorigényes alkalmazások általában az AOT-fordítás előnyeit élvezhetik a legjobban.
Az AOT által lefordított alkalmazások nagyobb mérete két feltételnek köszönhető:
- A natív WebAssemblyben a magas szintű .NET IL-utasítások megjelenítéséhez további kód szükséges.
- Az AOT nem vágja ki a felügyelt DLL-eket az alkalmazás közzétételekor. Blazor tükrözési metaadatokhoz dll-eket igényel, és támogatnia kell bizonyos .NET-futtatókörnyezeti funkciókat. Az ügyfél DLL-einek megkövetelése növeli a letöltés méretét, de kompatibilisebb .NET-felületet biztosít.
Jegyzet
A Mono/WebAssembly MSBuild tulajdonságairól és céljairól lásd: WasmApp.Common.targets (dotnet/runtime GitHub-adattár). A közös MSBuild tulajdonságok hivatalos dokumentációját a Blazor MSBuild konfigurációs beállítások dokumentálása (dotnet/docs #27395) terv szerint tervezik.
Teljesítmény
A teljesítményre vonatkozó útmutatásért tekintse meg ASP.NET core Blazor WebAssembly futtatókörnyezet teljesítményét:
- Halomméret egyes mobileszköz-böngészőkben
- Futtatókörnyezet újralinkelése
- Egyetlen utasítás, több adat (SIMD)
- A .NET IL vágása az idő előtti (AOT) fordítás után (.NET 8 vagy újabb)
Kivételkezelés
A kivételkezelés alapértelmezés szerint engedélyezve van. A kivételkezelés letiltásához adja hozzá a <WasmEnableExceptionHandling> tulajdonságot false értékkel az alkalmazás projektfájljában (.csproj):
<PropertyGroup>
<WasmEnableExceptionHandling>false</WasmEnableExceptionHandling>
</PropertyGroup>
A WebAssembly kivételkezelésének engedélyezéséhez adja hozzá a <WasmEnableExceptionHandling> tulajdonságot true értékkel az alkalmazás projektfájljában (.csproj):
<PropertyGroup>
<WasmEnableExceptionHandling>true</WasmEnableExceptionHandling>
</PropertyGroup>
További információ: