June 15, 2024

Network System

Une technologie unique

Comment migrer le code ASP.NET Core 5 vers ASP.NET Core 6

6 min read

ASP.Internet Core 6 de Microsoft, disponible pour une utilisation en manufacturing depuis le 8 novembre, introduit un modèle d’hébergement simplifié qui réduit le code passe-partout que vous auriez autrement besoin d’écrire pour que votre software ASP.Internet Main soit opérationnelle. ASP.Web Core 6 facilite un peu la création d’une nouvelle software Website à partir de zéro, par rapport à ASP.Web Main 5.

Mais que se passe-t-il si vous souhaitez mettre à jour un projet ASP.Internet Core 5 vers ASP.Net Main 6 ? Dans ce cas, vous devez connaître le code que vous devrez écrire pour migrer le code ASP.Net Core 5 vers ASP.Internet Main 6. Cet post présente plusieurs exemples de code qui montrent comment procéder.

Pour travailler avec les exemples de code fournis dans cet article, vous devez avoir installé Visible Studio 2022 sur votre système. Si vous n’en avez pas déjà une copie, vous pouvez télécharger Visible Studio 2022 ici.

Créer un projet d’API Net ASP.Net Main dans Visual Studio 2022

Tout d’abord, créons un projet ASP.Net Core dans Visual Studio 2022. Suivez ces étapes pour créer un nouveau projet ASP.Net Main Net API 6 dans Visible Studio 2022 :

  1. Lancez l’IDE Visible Studio 2022.
  2. Cliquez sur “Créer un nouveau projet”.
  3. Dans la fenêtre “Créer un nouveau projet”, sélectionnez “API Website ASP.Web Core” dans la liste des modèles affichés.
  4. Cliquez sur Suivant.
  5. Dans la fenêtre “Configurer votre nouveau projet”, spécifiez le nom et l’emplacement du nouveau projet.
  6. Cochez éventuellement la circumstance « Placer la resolution et le projet dans le même répertoire », selon vos préférences.
  7. Cliquez sur Suivant.
  8. Dans la fenêtre « Informations supplémentaires » affichée ci-dessous, assurez-vous que la circumstance à cocher indiquant « Utiliser des contrôleurs… » est cochée, auto nous utiliserons des contrôleurs au lieu d’API minimales dans cet exemple. Laissez le “Variety d’authentification” défini sur “Aucun” (par défaut).
  9. Assurez-vous que les situations à cocher “Activer Docker”, “Configurer pour HTTPS” et “Activer la prise en charge de l’API ouverte” sont décochées car nous n’utiliserons aucune de ces fonctionnalités ici.
  10. Cliquez sur Créer.

Nous utiliserons ce projet d’API Web ASP.Net Core 6 pour illustrer les migrations du code ASP.Net Main 5 vers ASP.Internet Core 6 dans les sections suivantes de cet article.

La classe Software dans ASP.Internet Core 5

L’extrait de code suivant illustre à quoi ressemble une classe Application typique dans ASP.Net Core 5.

community course Software

      general public static void Main(string[] args)
            CreateHostBuilder(args).Make().Run()
     
      community static IHostBuilder CreateHostBuilder(string[] args)
            return Host.CreateDefaultBuilder(args).
            ConfigureWebHostDefaults(x => x.UseStartup ())
     

La classe Software dans ASP.Web Core 6

Avec l’introduction du modèle d’hébergement simplifié dans ASP.Net Main 6, vous n’avez plus besoin d’utiliser la classe Startup. Vous pouvez en savoir moreover à ce sujet dans mon post précédent ici. Voici comment vous écririez une classe Software typique dans ASP.Net Core 6 :

var builder = WebApplication.CreateBuilder(args)
// Include services to the container
builder.Solutions.AddControllers()
var application = builder.Create()
// Configure the HTTP request pipeline
application.UseAuthorization()
application.MapControllers()
app.Run()

Ajouter un middleware dans ASP.Internet Main 5

L’extrait de code suivant montre comment vous pouvez ajouter un composant middleware dans ASP.Internet Core 5. Dans notre exemple, nous ajouterons le middleware de compression de réponse.

community course Startup

    general public void Configure(IApplicationBuilder application)
   
        application.UseResponseCompression()
   

Ajouter un middleware dans ASP.Internet Main 6

Pour ajouter un composant middleware dans ASP.Net Core 6, vous pouvez utiliser le code suivant.

var builder = WebApplication.CreateBuilder(args)
var app = builder.Construct()
application.UseResponseCompression()
app.Operate()

Ajouter le routage dans ASP.Web Core 5

Pour ajouter un position de terminaison dans ASP.Web Main 5, vous pouvez utiliser le code suivant.

public class Startup

    community void Configure(IApplicationBuilder app)
   
        app.UseRouting()
        app.UseEndpoints(endpoints =>
       
            endpoints.MapGet("/test", () => "This is a exam concept.")
        )
   

Ajouter le routage dans ASP.Internet Core 6

Vous pouvez ajouter un point de terminaison dans ASP.Internet Core 6 à l’aide du code suivant.

var builder = WebApplication.CreateBuilder(args)
var application = builder.Establish()
application.MapGet("/examination", () => "This is a test concept.")
application.Operate()

Notez que dans ASP.Web Core 6, vous pouvez ajouter des points de terminaison à WebApplication sans avoir à appeler explicitement les méthodes d’extension UseRouting ou UseEndpoints.

Ajouter des providers dans ASP.Net Core 5

L’extrait de code suivant illustre comment vous pouvez ajouter des solutions au conteneur dans ASP.Internet Main 5.

general public class Startup

    general public void ConfigureServices(IServiceCollection products and services)
   
        // Add constructed-in services
        providers.AddMemoryCache()
        companies.AddRazorPages()
        companies.AddControllersWithViews()
        // Insert a personalized provider
        products and services.AddScoped()
   

Ajouter des services dans ASP.Web Core 6

Pour ajouter des products and services au conteneur dans ASP.Web Main 6, vous pouvez utiliser le code suivant.

var builder = WebApplication.CreateBuilder(args)
// Increase designed-in companies
builder.Services.AddMemoryCache()
builder.Solutions.AddRazorPages()
builder.Providers.AddControllersWithViews()
// Increase a customized assistance
builder.Solutions.AddScoped()
var app = builder.Create()

Tester une software ASP.Internet Core 5 ou ASP.Internet Core 6

Vous pouvez tester une software ASP.Internet Main 5 à l’aide de TestServer ou de WebApplicationFactory. Pour tester l’utilisation de TestServer dans ASP.Internet Main 5, vous pouvez utiliser l’extrait de code suivant.

[Fact]
public async Endeavor GetProductsTest()

    using var host = Host.CreateDefaultBuilder()
        .ConfigureWebHostDefaults(builder =>
       
            builder.UseTestServer()
                    .UseStartup()
        )
        .ConfigureServices(products and services =>
       
            companies.AddSingleton()
        )
        .Establish()
    await host.StartAsync()
    var client = host.GetTestClient()
    var reaction = await consumer.GetStringAsync("/getproducts")
    Assert.Equivalent(HttpStatusCode.Okay, response.StatusCode)

L’extrait de code suivant montre comment vous pouvez tester votre application ASP.Web Main 5 à l’aide de WebApplicationFactory.

[Fact]
community async Task GetProductsTest()

    var application = new WebApplicationFactory()
        .WithWebHostBuilder(builder =>
       
            builder.ConfigureServices(companies =>
           
                solutions.AddSingleton()
            )
        )
    var client = application.CreateClient()
    var reaction = await shopper.GetStringAsync("/getproducts")
    Assert.Equal(HttpStatusCode.Alright, response.StatusCode)

Vous pouvez utiliser le même code pour tester en utilisant TestServer ou WebApplicationFactory dans .Web 5 et .Web 6.

Ajouter un fournisseur de journalisation dans ASP.Web Core 5

Les fournisseurs de journalisation dans ASP.Internet Core sont utilisés pour stocker les journaux. Les fournisseurs de journalisation par défaut inclus dans ASP.Internet Main sont les fournisseurs de journalisation Debug, Console, EventLog et EventSource.

Vous pouvez utiliser la méthode ClearProviders pour effacer tous les fournisseurs de journalisation et ajouter un fournisseur de journalisation spécifique ou votre propre fournisseur de journalisation personnalisé. L’extrait de code suivant illustre remark vous pouvez supprimer toutes les occasions ILoggerProvider et ajouter le fournisseur de journalisation de la console dans ASP.Net Core 5.

community static IHostBuilder CreateHostBuilder(string[] args) =>
   Host.CreateDefaultBuilder(args)
      .ConfigureLogging(logging =>
         logging.ClearProviders()
         logging.AddConsole()
      )
      .ConfigureWebHostDefaults(webBuilder =>
         webBuilder.UseStartup()
      )

Ajouter un fournisseur de journalisation dans ASP.Web Core 6

Dans ASP.Internet Core 6, lorsque vous appelez WebApplication.CreateBuilder, il ajoute les fournisseurs de journalisation Console, Debug, EventLog et EventSource. L’extrait de code suivant montre comment vous pouvez effacer les fournisseurs de journalisation par défaut et ajouter uniquement le fournisseur de journalisation de la console dans ASP.Web Core 6.

var builder = WebApplication.CreateBuilder(args)
//Very clear default logging vendors
builder.Logging.ClearProviders()
//Code to include solutions to the container
builder.Logging.AddConsole()
var app = builder.Construct()

Les exemples de code fournis ici illustrent les différentes manières dont nous ajoutons des fournisseurs de middleware, de routage, de companies et de journalisation dans ASP.Web Core 5 et ASP.Internet Core 6, ainsi que les différences dans la classe Application et les exams. Ces extraits de code devraient vous aider lorsque vous travaillez avec des apps ASP.Web Main 6 et vous permettre de bien démarrer lorsque vous migrez vos applications ASP.Web Core 5 vers ASP.Web Core 6.

Copyright © 2022 IDG Communications, Inc.