So fügen Sie einer vorhandenen .NET-App Orchestrierung hinzu

Abgeschlossen

.NET Aspire kann in Lösungen für drei Probleme unterteilt werden, mit denen moderne cloudnative Apps konfrontiert sind. Dies sind:

  1. Verwalten der Komplexität der Orchestrierung zwischen Microservices.
  2. Vereinfachen der Verwendung von Komponenten für Ihre Microservices über NuGet-Pakete.
  3. Unterstützung der Entwicklergeschwindigkeit durch Tools und Vorlagen.

In dieser Lektion erfahren Sie, wie die Verwendung von .NET Aspire-Orchestrierung Vorteile für Ihre vorhandenen cloudnativen Apps bietet. Sehen Sie sich dann an, wie Sie Ihre App bei .NET Aspire-Orchestrierung registrieren, und untersuchen Sie die an Ihrer Lösung vorgenommenen Änderungen.

Vorteile der .NET Aspire-Orchestrierung

Die Orchestrierung ist die Koordination und Verwaltung der verschiedenen Dienste innerhalb einer cloudnativen App. .NET Aspire bietet Abstraktionen zum Verwalten der Dienstermittlung, Umgebungsvariablen und Containerkonfigurationen Ihrer Lösung. Diese Abstraktionen bieten auch einheitliche Setupmuster für Apps mit vielen Komponenten und Diensten.

Ein Diagramm, das die Beziehung zwischen dem .NET Aspire AppHost-Projekt und den anderen Diensten in einer App zeigt.

.NET Aspire verfügt über drei Basisberechnungstypen, die mit Orchestrierung unterstützt werden:

  • ProjectResource: Ein .NET-Projekt, z. B. ASP.NET Core Web-Apps.
  • ContainerResource: Ein Containerimage, z. B. ein Docker-Image mit Redis.
  • ExecutableResource: Eine ausführbare Datei.

Vergleichen Sie .NET Aspire mit der Verwaltung der Dienstermittlung mithilfe von Docker Compose. Docker Compose ist hervorragend, beginnt jedoch unproduktiv zu werden, wenn Sie mehrere Projekte oder ausführbare Dateien ausführen müssen. Sie müssen Containerimages und die YAML erstellen, um sie zu verbinden, und dann Apps innerhalb von Containern ausführen. Außerdem gibt es Ersetzungen (und Inkludierungen) für Umgebungsvariablen und nicht IntelliSense, und es ist schwierig zu bestimmen, was genau ausgeführt wird und warum. Das Debuggen kann auch schwierig sein.

Die Konfiguration über deklarativen Code ist besser. Mit .NET Aspire müssen Sie nichts weiter lernen, als das, was Sie bereits wissen. .NET Aspire ist eine bessere Benutzererfahrung, die einfach zu beginn mit einem Orchestrator wie Docker Compose mit einer echten Programmiersprache skaliert werden kann.

.NET Aspire-Orchestrierung unterstützt Ihre Entwicklung auch auf folgende Weise:

  • App-Komposition: .NET Aspire gibt die .NET-Projekte, Container, ausführbare Dateien und Cloudressourcen an, aus denen die Anwendung besteht.
  • Dienstermittlung und Verbindungszeichenfolgenverwaltung: Der App-Host verwaltet das Einfügen der richtigen Verbindungszeichenfolgen und Dienstermittlungsinformationen, um die Entwicklerumgebung zu vereinfachen.

Eintragen einer vorhandenen App in .NET Aspire Orchestration

Visual Studio bietet Menüs zum Eintragen eines vorhandenen Projekts in .NET Aspire-Orchestrierung.

Screenshot des Menüs „Hinzufügen“ mit hervorgehobenem .NET Aspire Orchestrator-Support.

Wenn Sie Ihrer Lösung zum ersten Mal Orchestrierung hinzufügen, fragt ein Dialogfeld nach dem Projektnamenpräfix und erläutert, dass die .NET Aspire-Projekte AppHost und ServiceDefaults hinzugefügt werden. Wenn Sie einer bereits koordinierten Lösung weitere Projekte hinzufügen, benachrichtigt Sie das Dialogfeld, dass das AppHost-Projekt aktualisiert wird, um diese Projekte einzubinden.

Wenn Sie ein neues Projekt erstellen, fragt Visual Studio während des neuen Projektworkflows, ob Sie es in .NET Aspire-Orchestrierung eintragen möchten.

Screenshot des neuen Projektworkflows mit hervorgehobener Option „In Aspire-Orchestrierung eintragen“.

Änderungen von Aspire an einer vorhandenen Lösung

Wenn Sie Ihrer Lösung .NET Aspire-Orchestrierung hinzufügen, treten die folgenden Änderungen auf:

  • Ein AppHost-Projekt wird hinzugefügt. Das Projekt enthält den Orchestrierungscode. Es wird zum Einstiegspunkt für Ihre App und ist dafür verantwortlich, Ihre App zu starten und zu beenden. Es verwaltet außerdem wird die Dienstermittlung und die Verbindungszeichenfolge.
  • Ein ServiceDefaults-Projekt wird hinzugefügt. Das Projekt konfiguriert OpenTelemetry, fügt Endpunkte für die Standardintegritätsprüfung hinzu und ermöglicht die Dienstermittlung über HttpClient.
  • Das Standardstartprojekt der Lösung wird in AppHost geändert.
  • Abhängigkeiten zu den Projekten, die bei der Orchestrierung registriert sind, werden dem AppHost-Projekt hinzugefügt.
  • Das .NET Aspire Dashboard wird Ihrer Lösung hinzugefügt, wodurch Verknüpfungen für den Zugriff auf alle Projektendpunkte in Ihrer Lösung ermöglicht werden.
  • Das Dashboard fügt Protokolle, Ablaufverfolgungen und Metriken für die Projekte in Ihrer Lösung hinzu.

Wenn Sie einem Web-App-Projekt Orchestrierung hinzufügen, fügt .NET Aspire automatisch einen Verweis auf das ServiceDefaults-Projekt hinzu. Anschließend werden die folgenden Änderungen am Code in Program.cs vorgenommen:

  • Fügt einen Aufruf zu AddServiceDefaults hinzu, der die standardmäßige OpenTelemetry-, Meter- und Dienstermittlung ermöglicht.
  • Fügt einen Aufruf zu MapDefaultEndpoints hinzu, der die Standardendpunkte wie /health und /alive aktiviert.