Bagikan melalui


WebHostBuilder, IWebHost, dan WebHost sudah usang

WebHostBuilder, IWebHost, dan WebHost telah ditandai sebagai usang di .NET 10. WebHostBuilder digantikan oleh HostBuilder (host generik) di ASP.NET Core 3.0, dan WebApplicationBuilder diperkenalkan di ASP.NET Core 6.0. Alternatif yang lebih baru ini adalah di mana investasi di masa depan akan terjadi.

Versi yang diperkenalkan

.NET 10 RC 1

Perilaku sebelumnya

Sebelumnya, Anda dapat menggunakan WebHostBuilder untuk mengonfigurasi dan membangun host web tanpa peringatan waktu kompilasi.

Perilaku baru

Mulai dari .NET 10, menggunakan WebHostBuilder menghasilkan peringatan kompilator dengan ID ASPDEPR004diagnostik :

peringatan ASPDEPR004: WebHostBuilder tidak digunakan lagi demi HostBuilder dan WebApplicationBuilder. Untuk informasi selengkapnya, kunjungi https://aka.ms/aspnet/deprecate/004.

Menggunakan IWebHost atau WebHost menghasilkan peringatan kompilator dengan ID ASPDEPR008diagnostik :

peringatan ASPDEPR008: WebHost sudah usang. Gunakan HostBuilder atau WebApplicationBuilder sebagai gantinya. Untuk informasi selengkapnya, kunjungi https://aka.ms/aspnet/deprecate/008.

Jenis perubahan yang memutus kompatibilitas

Perubahan ini dapat memengaruhi kompatibilitas sumber.

Alasan perubahan

HostBuilder dan WebApplication memiliki semua fitur WebHostBuilder dan merupakan fokus investasi di masa depan. WebHostBuilder digantikan oleh host generik di ASP.NET Core 3.0, dan API minimal dengan WebApplicationBuilder diperkenalkan di ASP.NET Core 6.0. Model hosting yang lebih baru ini memberikan integrasi yang lebih baik dengan ekosistem .NET dan merupakan pendekatan yang direkomendasikan untuk aplikasi baru.

Migrasi dari WebHostBuilder ke atau HostBuilderWebApplication:

  • Untuk aplikasi yang membutuhkan kemampuan hosting lengkap, migrasikan ke HostBuilder:

    Before:

    var hostBuilder = new WebHostBuilder()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseStartup()
        .UseKestrel();
    // Test code might use TestServer:
    var testServer = new TestServer(hostBuilder);
    

    After:

    using var host = new HostBuilder()
        .ConfigureWebHost(webHostBuilder =>
        {
            webHostBuilder
                .UseTestServer() // If using TestServer.
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup()
                .UseKestrel();
        })
        .Build();
    await host.StartAsync();
    
    var testServer = host.GetTestServer();
    
  • Untuk aplikasi baru, terutama yang menggunakan API minimal, migrasikan ke WebApplicationBuilder.

API yang terpengaruh

Lihat juga