Informationen zum Erstellen eines neuen .NET Aspire-Projekts
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:
- .NET 8
- Visual Studio 2022 – Vorschau
- Docker Desktop oder Podman
- .NET Aspire-Workload in Visual Studio
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 eineIDistributedApplicationBuilder
ist.Erstellen Sie eine
cache
-Variable, die eineIResourceBuilder<RedisResource>
ist.Rufen Sie
AddProject
mit einem generischen Parameter auf, der dieIServiceMetadata
-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 mitWithReference
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
-AufrufeBuild
undRun
das Starten der Anwendung auf.