June 2, 2023

Tech Articles

L'art de la technologie

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

ASP.Net Core 6 de Microsoft, disponible pour une utilisation en output 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 application ASP.Web Core soit opérationnelle. ASP.Net Core 6 facilite un peu la création d’une nouvelle application Web à partir de zéro, par rapport à ASP.Web Core 5.

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

Pour travailler avec les exemples de code fournis dans cet posting, vous devez avoir installé Visual 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 World-wide-web ASP.Web Main dans Visible 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 Internet API 6 dans Visual 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 World-wide-web ASP.Net 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 situation « Placer la solution 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 situation à cocher indiquant « Utiliser des contrôleurs… » est cochée, automobile nous utiliserons des contrôleurs au lieu d’API minimales dans cet exemple. Laissez le “Kind d’authentification” défini sur “Aucun” (par défaut).
  9. Assurez-vous que les instances à 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 Main 6 pour illustrer les migrations du code ASP.Web Main 5 vers ASP.Internet Main 6 dans les sections suivantes de cet write-up.

La classe Program dans ASP.Internet Main 5

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

general public class Application

      community static void Main(string[] args)
            CreateHostBuilder(args).Build().Operate()
     
      community static IHostBuilder CreateHostBuilder(string[] args)
            return Host.CreateDefaultBuilder(args).
            ConfigureWebHostDefaults(x => x.UseStartup ())
     

La classe Plan dans ASP.Net Main 6

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

var builder = WebApplication.CreateBuilder(args)
// Insert providers to the container
builder.Providers.AddControllers()
var application = builder.Build()
// Configure the HTTP ask for pipeline
application.UseAuthorization()
app.MapControllers()
app.Operate()

Ajouter un middleware dans ASP.Net Main 5

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

community course Startup

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

Ajouter un middleware dans ASP.Internet Main 6

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

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

Ajouter le routage dans ASP.Internet Main 5

Pour ajouter un stage de terminaison dans ASP.Net Core 5, vous pouvez utiliser le code suivant.

general public class Startup

    public void Configure(IApplicationBuilder application)
   
        app.UseRouting()
        application.UseEndpoints(endpoints =>
       
            endpoints.MapGet("/check", () => "This is a exam message.")
        )
   

Ajouter le routage dans ASP.Net Core 6

Vous pouvez ajouter un issue de terminaison dans ASP.Web Main 6 à l’aide du code suivant.

var builder = WebApplication.CreateBuilder(args)
var app = builder.Make()
application.MapGet("/take a look at", () => "This is a examination information.")
application.Operate()

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

Ajouter des solutions dans ASP.Web Core 5

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

general public class Startup

    public void ConfigureServices(IServiceCollection expert services)
   
        // Incorporate constructed-in services
        providers.AddMemoryCache()
        providers.AddRazorPages()
        companies.AddControllersWithViews()
        // Insert a tailor made services
        solutions.AddScoped()
   

Ajouter des companies dans ASP.Net Core 6

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

var builder = WebApplication.CreateBuilder(args)
// Add created-in expert services
builder.Products and services.AddMemoryCache()
builder.Products and services.AddRazorPages()
builder.Expert services.AddControllersWithViews()
// Insert a custom made provider
builder.Companies.AddScoped()
var application = builder.Create()

Tester une application ASP.Web Main 5 ou ASP.Net Core 6

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

[Fact]
community async Activity GetProductsTest()

    making use of var host = Host.CreateDefaultBuilder()
        .ConfigureWebHostDefaults(builder =>
       
            builder.UseTestServer()
                    .UseStartup()
        )
        .ConfigureServices(companies =>
       
            companies.AddSingleton()
        )
        .Create()
    await host.StartAsync()
    var shopper = host.GetTestClient()
    var reaction = await consumer.GetStringAsync("/getproducts")
    Assert.Equal(HttpStatusCode.Ok, reaction.StatusCode)

L’extrait de code suivant montre remark vous pouvez tester votre software ASP.Internet Main 5 à l’aide de WebApplicationFactory.

[Fact]
community async Endeavor GetProductsTest()

    var application = new WebApplicationFactory()
        .WithWebHostBuilder(builder =>
       
            builder.ConfigureServices(solutions =>
           
                services.AddSingleton()
            )
        )
    var consumer = application.CreateClient()
    var reaction = await client.GetStringAsync("/getproducts")
    Assert.Equivalent(HttpStatusCode.Okay, reaction.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.Internet Main 5

Les fournisseurs de journalisation dans ASP.Net Core sont utilisés pour stocker les journaux. Les fournisseurs de journalisation par défaut inclus dans ASP.Web 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 comment vous pouvez supprimer toutes les circumstances ILoggerProvider et ajouter le fournisseur de journalisation de la console dans ASP.Internet 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.Internet Core 6

Dans ASP.Web 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.Net Main 6.

var builder = WebApplication.CreateBuilder(args)
//Obvious default logging suppliers
builder.Logging.ClearProviders()
//Code to include companies to the container
builder.Logging.AddConsole()
var app = builder.Make()

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

Copyright © 2022 IDG Communications, Inc.