Découvrez comment créer un projet .NET Aspire

Effectué

Le développement cloud natif peut obliger les développeurs à se connecter à différents microservices tels que des bases de données, des files d’attente de messagerie et des caches. .NET Aspire simplifie ce processus en fournissant un ensemble de modèles que vous pouvez utiliser pour créer et gérer les connexions entre ces services.

Dans cette leçon, découvrez comment créer un projet .NET Aspire et les différences entre les deux modèles de projet de démarrage. Explorez ensuite la structure de la solution générée.

Conditions préalables pour .NET Aspire

Avant de pouvoir créer un projet .NET Aspire, il est nécessaire d’installer localement les éléments suivants :

Dans l’exercice suivant, vous allez suivre les étapes d’installation de ces prérequis.

Choisir le meilleur modèle .NET Aspire pour votre projet

Deux modèles de démarrage .NET Aspire sont actuellement disponibles :

  • Application .NET Aspire : Ce modèle est un bon point de départ pour les nouveaux projets. Il inclut uniquement les projets AspireSample.AppHost et AspireSample.ServiceDefaults. Ce modèle est utile lorsque vous souhaitez commencer à partir de zéro, puis ajouter vos propres composants et services.

  • Application de démarrage .NET Aspire : Ce modèle inclut les projets AspireSample.AppHost et AspireSample.ServiceDefaults, ainsi qu’un exemple d’application Blazor App AspireSample.Web et une API qui fournit des données à AspireSample.ApiService. Ces projets sont préconfigurés avec la découverte de service et d’autres exemples de base de fonctionnalités .NET Aspire courantes.

Les deux modèles Aspire fournissent un tableau de bord pour surveiller l’intégrité des services et le trafic entre eux. Le tableau de bord vous aide à améliorer votre expérience de développement local. En un clin d’œil, il vous donne une vue d’ensemble de l’état et de la structure de votre application.

Il existe également trois modèles de projet disponibles :

  • Hôte d’application .NET Aspire : Modèle qui contient uniquement un projet hôte d’application (orchestrateur).
  • Services par défaut .NET Aspire : Modèle qui contient uniquement le projet de services par défaut.
  • Projet de test .NET Aspire : Modèle qui contient uniquement des tests unitaires pour le projet hôte d’application.

Création d’un projet .NET Aspire à l’aide d’un modèle .NET Aspire

Vous pouvez utiliser la boîte de dialogue de lancement de Visual Studio pour créer un nouveau projet .NET Aspire ou accédez à Fichier>Nouveau>Projet. Vous pouvez également utiliser des commandes de l’interface CLI .NET. Pour créer une solution avec le modèle Application .NET Aspire, vous devez utiliser cette commande :

dotnet new aspire 

Ou pour utiliser le modèle Application de démarrage .NET Aspire, vous devez utiliser cette commande :

dotnet new aspire-starter

Un avantage de Visual Studio est qu’il vous permet de choisir vos options de configuration par le biais de boîtes de dialogue. Les commandes de l’interface CLI .NET sont utiles lorsque vous souhaitez créer un projet .NET Aspire avec des paramètres par défaut, mais vous pouvez modifier les valeurs par défaut avec des indicateurs facultatifs. Dans l’exercice suivant, vous allez voir comment créer un projet .NET Aspire à l’aide des deux méthodes.

Explorer la structure des solutions générées par les modèles .NET Aspire

Les modèles .NET Aspire génèrent une solution avec une structure spécifique. Cette structure est un diagramme simplifié pour l’application de démarrage, sans les options de mise en cache ou de test activées :

────📂 AspireSample
     ├───📂 AspireSample.ApiService
     │    ├───📂 Properties
     │    │    └─── launchSettings.json
     │    ├─── appsettings.json
     │    ├─── AspireSample.ApiService.csproj
     │    └─── Program.cs
     ├───📂 AspireSample.AppHost
     │    ├───📂 Properties
     │    │    └─── launchSettings.json
     │    ├─── appsettings.json
     │    ├─── AspireSample.AppHost.csproj
     │    └─── Program.cs
     ├───📂 AspireSample.ServiceDefaults
     │    ├─── AspireSample.ServiceDefaults.csproj
     │    └─── Extensions.cs
     ├───📂 AspireSample.Web
     │    ├───📂 Components
     │    │    ├───📂 Layout
     │    │    │    ├─── ...
     │    │    ├───📂 Pages
     │    │    │    ├─── ...
     │    │    ├─── ...
     │    ├───📂 Properties
     │    │    └─── launchSettings.json
     │    ├───📂 wwwroot
     │    │    ├───...
     │    ├─── appsettings.json
     │    ├─── AspireSample.Web.csproj
     │    ├─── Program.cs
     │    └─── WeatherApiClient.cs
     └─── AspireSample.sln

Les deux modèles ajoutent les projets AppHost et ServiceDefaults. Ces projets constituent le cœur d’une application créée à l’aide de .NET Aspire. Le projet AppHost est le point d’entrée chargé d’agir en tant qu’orchestrateur.

Le projet ServiceDefaults contient la configuration par défaut de l’application. Ces configurations sont réutilisées dans tous les projets de votre solution.

La solution ci-dessus inclut également les projets Web et ApiService. Le projet Web est une application Blazor WebAssembly qui a un compteur et appelle ApiService pour obtenir des données de prévision. ApiService est une API simple qui retourne des données de prévision.

Parcourir la structure de code

Le projet AspireSample.AppHost contient le code suivant dans Program.cs :

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");

var apiService = builder.AddProject<Projects.AspireStarterSample_ApiService>("apiservice");

builder.AddProject<Projects.AspireStarterSample_Web>("webfrontend")
    .WithReference(cache)
    .WithReference(apiService);

builder.Build().Run();

Parcourez le code ci-dessus, ligne par ligne :

  • Créez une variable builder qui est un IDistributedApplicationBuilder.

  • Créez une variable cache qui est un IResourceBuilder<RedisResource>.

  • Appelez AddProject avec un paramètre de type générique contenant les informations de IServiceMetadata du projet, en ajoutant le projet AspireSample.ApiService au modèle d’application.

    Il s’agit d’un bloc de construction fondamental de .NET Aspire. AddProject configure la découverte de service et la communication entre les projets de votre application. L’argument de nom apiservice sert à identifier le projet dans le modèle d’application. Il est utilisé ultérieurement par les projets qui souhaitent communiquer avec le projet.

  • Appelle AddProject à nouveau, cette fois-ci en ajoutant le projet AspireSample.Web au modèle d’application. Il chaîne également plusieurs appels de WithReference en passant les variables cache et apiservice.

    L’API WithReference est une autre API fondamentale de .NET Aspire, qui injecte des informations de découverte de service ou une configuration de chaîne de connexion dans le projet ajouté au modèle d’application.

  • Enfin, le builder appelle Build et Run pour démarrer l’application.