Informationen zum Erstellen eines neuen .NET Aspire-Projekts

Abgeschlossen

Bei der cloudnativen Entwicklung können Entwickler verschiedene Mikrodienste wie Datenbanken, Messagingwarteschlangen und Caches verbinden. .NET Aspire vereinfacht diesen Prozess, indem Sie eine Reihe von Vorlagen bereitstellen, die Sie zum Erstellen und Verwalten der Verbindungen zwischen diesen Diensten verwenden können.

In dieser Lektion erfahren Sie, wie Sie ein neues .NET Aspire-Projekt erstellen, und Sie lernen die Unterschiede zwischen den beiden Startprojektvorlagen kennen. Untersuchen Sie dann die Struktur der generierten Lösung.

Voraussetzungen für .NET Aspire

Bevor Sie ein neues .NET Aspire-Projekt erstellen können, müssen Sie einige Voraussetzungen lokal installieren:

In der nächsten Übung werden Sie die Schritte zum Installieren dieser Voraussetzungen durchlaufen.

Wählen Sie die beste .NET Aspire-Vorlage für Ihr Projekt aus

Zurzeit sind zwei .NET Aspire Starter-Vorlagen verfügbar:

  • .NET Aspire-Anwendung: Diese Vorlage ist ein guter Ausgangspunkt für neue Projekte. Sie umfasst nur die Projekte AspireSample.AppHost und AspireSample.ServiceDefaults. Diese Vorlage ist nützlich, wenn Sie von Grund auf neu beginnen und eigene Komponenten und Dienste hinzufügen möchten.

  • .NET Aspire Starter Application: Diese Vorlage enthält die Projekte AspireSample.AppHost und AspireSample.ServiceDefaults, enthält aber auch ein Beispiel für eine Blazor App, nämlich AspireSample.Web, und eine API, die Daten für sie bereitstellt, nämlich AspireSample.ApiService. Diese Projekte sind vorkonfiguriert mit der Dienstermittlung und anderen grundlegenden Beispielen allgemeiner .NET Aspire-Funktionen.

Beide Aspire-Vorlagen bieten ein Dashboard, um die Integrität der Dienste und den Datenverkehr zwischen ihnen zu überwachen. Das Dashboard trägt zur Verbesserung ihrer lokalen Entwicklungserfahrung bei – auf einen Blick bietet es Ihnen einen Überblick über den Zustand und die Struktur Ihrer App.

Es stehen auch drei Projektvorlagen zur Verfügung:

  • .NET Aspire App Host: Eine Vorlage, die nur ein App-Hostprojekt (Orchestrator) enthält.
  • .NET Aspire Service Defaults: Eine Vorlage, die nur das Standardprojekt des Diensts enthält.
  • .NET Aspire Test Project: Eine Vorlage, die nur Komponententests für das App-Hostprojekts enthält.

Erstellen eines neuen .NET Aspire-Projekts mithilfe einer .NET Aspire-Vorlage

Sie können das Visual Studio-Startdialogfeld verwenden, um ein neues .NET Aspire-Projekt zu erstellen, oder Datei>Neu>Projekt. Sie können auch .NET CLI-Befehle verwenden. Um eine Lösung mit der .NET Aspire Application-Vorlage zu erstellen, verwenden Sie diesen Befehl:

dotnet new aspire 

Oder um die .NET Aspire Starter Application-Vorlage zu verwenden, würden Sie diesen Befehl verwenden:

dotnet new aspire-starter

Ein Vorteil der Verwendung von Visual Studio besteht darin, Ihre Konfigurationsoptionen über Dialogfelder auszuwählen. Die .NET CLI-Befehle sind nützlich, wenn Sie ein neues .NET Aspire-Projekt mit Standardeinstellungen erstellen möchten, aber Sie können die Standardwerte mit optionalen Flags ändern. In der nächsten Übung erfahren Sie, wie Sie ein neues .NET Aspire-Projekt mit beiden Methoden erstellen.

Erkunden Sie die Struktur von Lösungen, die von den .NET Aspire-Vorlagen generiert werden

Die .NET Aspire-Vorlagen generieren eine Lösung mit einer bestimmten Struktur. Diese Struktur ist ein vereinfachtes Diagramm für die Startanwendung, ohne dass die Zwischenspeicherungs- oder Testoptionen aktiviert sind:

────📂 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

Beide Vorlagen fügen die Projekte AppHost und ServiceDefaults hinzu. Diese Projekte sind der Kern einer Anwendung, die mit .NET Aspire erstellt wurde. Das AppHost-Projekt ist der Einstiegspunkt und ist für die Tätigkeit als Orchestrator verantwortlich.

Das ServiceDefaults-Projekt enthält die Standardkonfiguration für die Anwendung. Diese Konfigurationen werden in allen Projekten in Ihrer Lösung wiederverwendet.

Die oben genannte Lösung enthält auch Web- und ApiService-Projekte. Das Webprojekt ist eine Blazor WebAssembly-App mit einem Zähler und ruft den ApiService auf, um Prognosedaten abzurufen. ApiService ist eine einfache API, die Prognosedaten zurückgibt.

Exemplarische Vorgehensweise in der Codestruktur

Das Projekt AspireSample.AppHost hat den folgenden Code in 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();

Gehen Sie durch den obigen Code, Zeile für Zeile:

  • Erstellen Sie eine builder-Variable, die eine IDistributedApplicationBuilder ist.

  • Erstellen Sie eine cache-Variable, die eine IResourceBuilder<RedisResource> ist.

  • Rufen Sie AddProject mit einem generischen Parameter auf, der die IServiceMetadata-Details des Projekts enthält, und fügen Sie das AspireSample.ApiService-Projekt zum Anwendungsmodell hinzu.

    Dies ist ein grundlegender Baustein von .NET Aspire. Die AddProject-Konfiguration der Dienstermittlung und der Kommunikation zwischen den Projekten in Ihrer App. Das Namensargument apiservice wird verwendet, um das Projekt im Anwendungsmodell zu identifizieren und wird später von Projekten verwendet, die mit diesem kommunizieren möchten.

  • Ruft AddProject erneut auf, diesmal wird das AspireSample.Web-Projekt zum Anwendungsmodell hinzugefügt. Außerdem werden mehrere Aufrufe mit WithReference verbunden, welche die Variablen Cache und apiservice übergeben.

    Die WithReference-API ist eine weitere grundlegende API von .NET Aspire, die entweder Dienstermittlungsinformationen oder die Verbindungszeichenfolgenkonfiguration in das Projekt einfügt, das dem Anwendungsmodell hinzugefügt wird.

  • Schließlich rufen die builder-Aufrufe Build und Run das Starten der Anwendung auf.