ASP.NET Core Blazor Hybrid

Not

Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.

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 8 sürümüne bakın.

Önemli

Bu bilgiler, ticari olarak piyasaya sürülmeden önce önemli ölçüde değiştirilebilen bir yayın öncesi ürünle ilgilidir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.

Geçerli sürüm için bu makalenin .NET 8 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 ile karıştırmak için Blazor Hybrid 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.

.NET MAUI ile Blazor Hybrid uygulamaları

Blazor Hybrid destek, .NET Multi-platform App UI (.NET MAUI) çerçevesinde yerleşik olarak bulunur. .NET MAUI, Razor bileşenleri katıştırılmış bir Web Viewoluşturulmasına izin veren BlazorWebView 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, BlazorWebView denetiminin olayları aracılığıyla farklı platformlar için temel Web View 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:

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 System.AppDomain.CurrentDomain için UnhandledException 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önergesi MessageBox kullanır. hata bilgilerini içinde günlüğe error.ExceptionObjectkaydeder.

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 MAUICurrentCulture 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 ResourceManagerbir görüntünün baytlarını Stream okuysa bile, çerçeve şu anda alınan görüntünün bir Razor bileşende işlenmesini desteklemez.

Yerelleştirilmiş görüntüleri dahil etmek için platforma özgü bir yaklaşım özelliğidir. NET'in kaynak sistemi, ancak bir Razor .NET MAUIBlazor Hybrid bileşenin uygulamadaki tarayıcı öğeleri bu tür görüntülerle etkileşim kuramaz.

Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

Yerel kullanıcı arabiriminden kapsamı belirlenmiş hizmetlere erişme

BlazorWebView, belirtilen Action<ServiceProvider> bir zaman uyumsuz olarak çağıran ve bileşenlerde kullanılabilen Razor kapsamlı hizmetlere geçen bir TryDispatchAsync 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