ASP.NET Core Blazor Hybrid
Jegyzet
Ez nem a cikk legújabb verziója. Az aktuális kiadáshoz tekintse meg ennek a cikknek a .NET 9-es változatát.
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 jelenlegi kiadásért tekintse meg a cikk .NET 9-es verzióját.
Fontos
Ezek az információk egy olyan előzetes termékre vonatkoznak, amelyet a kereskedelmi forgalomba kerülés előtt jelentősen módosíthatnak. A Microsoft nem vállal kifejezett vagy hallgatólagos szavatosságot az itt megadott információkra vonatkozóan.
Az aktuális verziót lásd ennek a cikknek a .NET 9-es változatában.
Ez a cikk ismerteti ASP.NET Core Blazor Hybrid, amellyel interaktív ügyféloldali webes felhasználói felületet hozhat létre a .NET használatával egy ASP.NET Core-alkalmazásban.
A Blazor Hybrid használatával ötvözhet asztali és mobil natív ügyfél-keretrendszereket a .NET-tel és a Blazor.
Egy Blazor Hybrid alkalmazásban Razor összetevők natív módon futni az eszközön. Helyi interop csatornán keresztül az összetevők egy beágyazott Web View vezérlőelemre renderelnek. Az összetevők nem futnak a böngészőben, és a WebAssembly nincs benne. Razor összetevők gyorsan betöltik és végrehajtják a kódot, és az összetevők teljes hozzáféréssel rendelkeznek az eszköz natív képességeihez a .NET platformon keresztül. A Web View megjelenített összetevőstílusok platformfüggetlenek, és előfordulhat, hogy egyéni stíluslapok használatával figyelembe kell vennie a különböző platformok közötti megjelenítési különbségeket.
Blazor Hybrid cikkek az Razor összetevők natív ügyfél-keretrendszerekbe való integrálásával kapcsolatos témaköröket ismertetik.
Blazor Hybrid alkalmazások .NET MAUI-val
Blazor Hybrid támogatás a .NET Multi-platform App UI (.NET MAUI) keretrendszerbe van beépítve. .NET MAUI tartalmazza a BlazorWebView vezérlőt, amely lehetővé teszi Razor összetevők beágyazott Web View renderelését. A .NET MAUI és a Blazor együttes használatával több webes felhasználói felületi összetevőt használhat újra mobil, asztali és webes rendszereken.
Blazor Hybrid alkalmazások WPF és Windows Forms használatával
Blazor Hybrid alkalmazások Windows Presentation Foundation (WPF) és Windows Formshasználatával hozhatók létre.
Blazor
BlazorWebView
vezérlőket biztosít mindkét keretrendszerhez (WPF BlazorWebView
, Windows Forms BlazorWebView
).
Razor összetevő natív módon futnak a Windows asztali környezetben, és renderelnek egy beágyazott Web View-hez. A WPF és a Windows Forms Blazor használatával új felhasználói felületet adhat hozzá meglévő asztali Windows-alkalmazásaihoz, amelyek .NET MAUI vagy webes platformokon újra felhasználhatók.
Web View konfigurációja
Blazor Hybrid különböző platformok mögöttes Web View konfigurációját teszi elérhetővé a BlazorWebView
vezérlő eseményein keresztül:
-
BlazorWebViewInitializing
hozzáférést biztosít az egyes platformokon a Web View létrehozásához használt beállításokhoz, ha a beállítások elérhetők. -
BlazorWebViewInitialized
hozzáférést biztosít a Web View-hoz a beállítások további konfigurálásához.
Az egyes platformok előnyben részesített mintáival eseménykezelőket csatolhat az eseményekhez az egyéni kód végrehajtásához.
API-dokumentáció:
- .NET MAUI
- WPF
- Windows Forms
Nem kezelt kivételek a Windows Formsban és a WPF-alkalmazásokban
Ez a szakasz csak a Windows Forms és a WPF Blazor Hybrid alkalmazásokra vonatkozik.
Hozzon létre egy visszahívást UnhandledException
a System.AppDomain.CurrentDomain tulajdonságban. Az alábbi példa egy fordító irányelvvel jelenít meg egy MessageBox, amely vagy figyelmezteti a felhasználót, hogy hiba történt, vagy megjeleníti a hibainformációkat a fejlesztőnek. Naplózza a hibainformációkat a error.ExceptionObject
.
AppDomain.CurrentDomain.UnhandledException += (sender, error) =>
{
#if DEBUG
MessageBox.Show(text: error.ExceptionObject.ToString(), caption: "Error");
#else
MessageBox.Show(text: "An error has occurred.", caption: "Error");
#endif
// Log the error information (error.ExceptionObject)
};
Globalizáció és honosítás
Ez a szakasz csak .NET MAUIBlazor Hybrid alkalmazásokra vonatkozik.
.NET MAUI az eszköz környezeti adatai alapján konfigurálja a CurrentCulture és a CurrentUICulture.
A IStringLocalizer és a Microsoft.Extensions.Localization névtér egyéb API-ja általában a várt módon működik, a felhasználó kultúrájára támaszkodó globalizációs formázással, elemzéssel és kötéssel együtt.
Az alkalmazáskultúra futásidőben történő dinamikus módosításakor az alkalmazást újra kell tölteni, hogy tükrözze a kultúra változását, ami gondoskodik a gyökérösszetevő újrarendezéséről és az új kultúra újrarendezett gyermekösszetevőkre való átadásáról.
. A NET erőforrásrendszere támogatja a honosított képek (blobok) alkalmazásba való beágyazását, de Blazor Hybrid jelenleg nem tudja megjeleníteni a beágyazott képeket Razor összetevőkben. Még akkor sem támogatja a keretrendszer a lekért kép megjelenítését egy Razor-összetevőben, ha a felhasználó a kép bájtjait egy Stream-ba olvassa be a ResourceManagerhasználatával.
További információ:
- Honosítás (.NET MAUI dokumentáció)
- Blazor képösszetevőt a HTTP-végpontokon keresztül nem elérhető képek megjelenítéséhez (dotnet/aspnetcore #25274)
Hatókörön belüli szolgáltatások elérése natív felhasználói felületről
BlazorWebView egy TryDispatchAsync metódussal rendelkezik, amely aszinkron módon hív meg egy adott Action<ServiceProvider>
, és átadja a Razor összetevőkben elérhető hatókörű szolgáltatásokat. Ez lehetővé teszi, hogy a natív felhasználói felület kódja hozzáférjen a hatókörrel rendelkező szolgáltatásokhoz, például NavigationManager:
private async void MyMauiButtonHandler(object sender, EventArgs e)
{
var wasDispatchCalled = await _blazorWebView.TryDispatchAsync(sp =>
{
var navMan = sp.GetRequiredService<NavigationManager>();
navMan.CallSomeNavigationApi(...);
});
if (!wasDispatchCalled)
{
...
}
}
Ha wasDispatchCalled
false
, fontolja meg, hogy mi a teendő, ha a hívás nem lett elküldve. Általában a küldés nem hiúsul meg. Ha nem sikerül, előfordulhat, hogy az operációsrendszer-erőforrások kimerülnek. Ha az erőforrások elfogynának, érdemes fontolóra venni egy üzenet naplózását, kivétel dobását, és esetleg a felhasználó figyelmeztetését.