ASP.NET Core Blazor Hybrid
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 9 sürümüne bakın.
Bu makalede, bir ASP.NET Core uygulamasında .NET ile etkileşimli istemci tarafı web kullanıcı arabirimi oluşturmanın bir yolu olan ASP.NET Core Blazor Hybrid açıklanmaktadır.
Masaüstü ve mobil yerel istemci çerçevelerini .NET ve Blazor Hybrid ile karıştırmak için Blazor kullanın.
Bir Blazor Hybrid uygulamasında Razorbileşenleri cihazda yerel olarak çalışır. Bileşenler, yerel birlikte çalışma kanalı aracılığıyla ekli Web View bir denetime işlenir. Bileşenler tarayıcıda çalışmaz ve WebAssembly söz konusu değildir. Razor bileşenleri kodu hızla yükleyip yürütür ve bileşenler, .NET platformu aracılığıyla cihazın yerel özelliklerine tam erişime sahiptir. içinde Web View işlenen bileşen stilleri platforma bağımlıdır ve özel stil sayfalarını kullanarak platformlar arasındaki işleme farklarını hesaba eklemenizi gerektirebilir.
Blazor Hybrid makaleleri, Razor bileşenlerini yerel istemci çerçeveleri ile tümleştirmeyle ilgili konuları kapsar.
Blazor Hybrid ile .NET MAUI uygulamaları
Blazor Hybrid destek, .NET Multi-platform App UI (.NET MAUI) çerçevesinde yerleşik olarak bulunur. .NET MAUI, Razor katıştırılmış bir oluşturulmasına izin veren Web View denetimini içerir. .NET MAUI ve Blazor birlikte kullanarak, mobil, masaüstü ve web genelinde bir web kullanıcı arabirimi bileşeni kümesini yeniden kullanabilirsiniz.
WPF ve Windows Forms içeren Blazor Hybrid uygulamaları
Blazor Hybrid uygulamaları Windows Presentation Foundation (WPF) ve Windows Forms ile oluşturulabilir.
Blazor bu çerçevelerin her ikisi için de denetimler BlazorWebView
sağlar (WPF BlazorWebView
, Windows Forms BlazorWebView
).
Razor bileşenleri, Windows masaüstünde yerel olarak çalışır ve gömülü bir Web View öğesine dönüştürülür. WPF ve Windows Forms içinde Blazor kullanmak, mevcut Windows Masaüstü uygulamalarınıza, .NET MAUI veya webde platformlar arasında yeniden kullanılabilen yeni kullanıcı arabirimi eklemenize olanak sağlar.
Web View yapılandırması
Blazor Hybrid, Web View denetiminin olayları aracılığıyla farklı platformlar için temel BlazorWebView
yapılandırmasını kullanıma sunar:
-
BlazorWebViewInitializing
, ayarlar kullanılabiliyorsa her platformda Web View oluşturmak için kullanılan ayarlara erişim sağlar. -
BlazorWebViewInitialized
ayarların daha fazla yapılandırılmasına izin vermek için Web View erişimi sağlar.
Özel kodunuzu yürütmek üzere olaylara olay işleyicileri eklemek için her platformda tercih edilen desenleri kullanın.
API belgeleri:
- .NET MAUI
- WPF
- Windows Forms
Windows Forms ve WPF uygulamalarında işlenmeyen özel durumlar
Bu bölüm yalnızca Windows Forms ve WPF Blazor Hybrid uygulamaları için geçerlidir.
özelliğinde UnhandledException
için System.AppDomain.CurrentDomain bir geri çağırma oluşturun. Aşağıdaki örnek, kullanıcıyı bir hata oluştuğu konusunda uyaran veya hata bilgilerini geliştiriciye gösteren bir derleyici yönergesiMessageBox kullanır. hata bilgilerini içinde günlüğe error.ExceptionObject
kaydeder.
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)
};
Genelleştirme ve yerelleştirme
Bu bölüm yalnızca uygulamalar için .NET MAUIBlazor Hybrid geçerlidir.
.NET MAUI CurrentCulture ve CurrentUICulture öğesini cihazın ortam bilgilerine göre yapılandırmaktadır.
IStringLocalizer ve ad alanı içindeki Microsoft.Extensions.Localization diğer API'ler genelleştirme biçimlendirmesi, ayrıştırma ve bağlama ile birlikte genellikle beklendiği gibi çalışır.
Çalışma zamanında uygulama kültürünü dinamik olarak değiştirirken, uygulamanın kök bileşeni yeniden oluşturma ve yeni kültürü yeniden yenilenen alt bileşenlere geçirmeyle ilgilenen kültürdeki değişikliği yansıtacak şekilde yeniden yüklenmesi gerekir.
. NET'in kaynak sistemi, bir uygulamaya yerelleştirilmiş görüntülerin (blob olarak) eklemeyi destekler, ancak Blazor Hybrid şu anda ekli görüntüleri bileşenlerde Razor görüntüleyemez. Kullanıcı kullanarak Streambir görüntünün baytlarını ResourceManager okuysa bile, çerçeve şu anda alınan görüntünün bir Razor bileşende işlenmesini desteklemez.
Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:
- Yerelleştirme (.NET MAUI belgelendirme)
- Blazor HTTP uç noktaları üzerinden erişilmeyen görüntüleri görüntülemek için görüntü bileşeni (dotnet/aspnetcore #25274)
Yerel kullanıcı arabiriminden kapsamı belirlenmiş hizmetlere erişme
BlazorWebView, belirtilen TryDispatchAsync bir zaman uyumsuz olarak çağıran ve bileşenlerde kullanılabilen Action<ServiceProvider>
kapsamlı hizmetlere geçen bir Razor yönteme sahiptir. Bu, yerel kullanıcı arabirimindeki kodun gibi NavigationManagerkapsamlı hizmetlere erişmesini sağlar:
private async void MyMauiButtonHandler(object sender, EventArgs e)
{
var wasDispatchCalled = await _blazorWebView.TryDispatchAsync(sp =>
{
var navMan = sp.GetRequiredService<NavigationManager>();
navMan.CallSomeNavigationApi(...);
});
if (!wasDispatchCalled)
{
...
}
}
olduğunda wasDispatchCalled
false
, aramanın gönderilip gönderilmediğini göz önünde bulundurun. Genel olarak, gönderim başarısız olmamalıdır. Başarısız olursa işletim sistemi kaynakları tükenmiş olabilir. Kaynaklar tükenirse, bir iletiyi günlüğe kaydetmeyi, özel durum oluşturmayı ve belki de kullanıcıyı uyarmayı göz önünde bulundurun.
Ek kaynaklar
ASP.NET Core