Freigeben über


.NET .NET Aspire Übersicht

.NET Aspire ist eine Reihe leistungsstarker Tools, Vorlagen und Pakete zum Erstellen von feststellbaren, produktionsbereiten Apps. .NET Aspire wird über eine Sammlung von NuGet-Paketen bereitgestellt, die bestimmte cloudeigene Bedenken behandeln. Cloud-native Apps bestehen häufig aus kleinen, miteinander verbundenen Teilen oder Microservices und nicht aus einer einzigen, monolithischen Codebasis. Cloudeigene Apps nutzen in der Regel eine große Anzahl von Diensten, z. B. Datenbanken, Messaging und Zwischenspeichern. Weitere Informationen zu Support finden Sie in der .NET.NET Aspire Support-Richtlinie.

Eine verteilte Anwendung ist eine, die Rechenressourcen über mehrere Knoten hinweg verwendet, z. B. Container, die auf verschiedenen Hosts ausgeführt werden. Solche Knoten müssen über Netzwerkgrenzen kommunizieren, um Antworten an Benutzer zu liefern. Eine cloudeigene App ist eine bestimmte Art verteilter Apps, die die Skalierbarkeit, Resilienz und Verwaltbarkeit von Cloudinfrastrukturen voll ausnutzen.

Warum .NET.NET Aspire?

.NET Aspire wurde entwickelt, um die Erfahrung beim Erstellen von .NET cloudeigenen Apps zu verbessern. Sie bietet einen konsistenten, vorgefertigten Satz von Tools und Mustern, mit denen Sie verteilte Anwendungen erstellen und ausführen können. .NET .NET Aspire soll Ihnen bei Folgendem helfen:

  • Orchestration: .NET.NET Aspire bietet Features zum Ausführen und Verbinden von Multiprojektanwendungen und deren Abhängigkeiten für lokalen Entwicklungsumgebungen.
  • Integrationen: .NET Aspire Integrationen sind NuGet-Pakete für häufig verwendete Dienste, z. B. Redis oder Postgres, mit standardisierten Schnittstellen, die sicherstellen, dass sie sich konsistent und nahtlos mit Ihrer App verbinden.
  • Tooling: .NET Aspire enthält Projektvorlagen und Toolfunktionen für Visual Studio, Visual Studio Codeund die .NET CLI-, die Ihnen beim Erstellen und Interagieren mit .NET.NET Aspire Projekten helfen.

Orchestrierung

In .NET.NET Aspirekonzentriert sich die Orchestrierung in erster Linie auf die Verbesserung der lokalen Entwicklungserfahrung, indem die Verwaltung der Konfiguration und Verbindungen Ihrer Cloud-nativen App vereinfacht wird. Es ist wichtig zu beachten, dass die Orchestrierung von .NET.NET Aspirenicht dazu gedacht ist, die robusten Systeme zu ersetzen, die in Produktionsumgebungen verwendet werden (wie Kubernetes). Stattdessen stellt es eine Reihe von Abstraktionen bereit, die das Einrichten von Dienstentdeckung, von Umgebungsvariablen und von Containerkonfigurationen optimieren und die Notwendigkeit eliminieren, sich mit Details zur Implementierung auf niedriger Ebene zu befassen. Diese Abstraktionen sorgen für ein einheitliches Setupmuster für Apps mit zahlreichen Integrationen und Diensten, wodurch die Verwaltung komplexer Anwendungen während der Entwicklungsphase erleichtert wird.

.NET .NET Aspire Orchestrierung unterstützt folgende Anliegen:

  • App-Komposition: Geben Sie die .NET Projekte, Container, ausführbare Dateien und Cloudressourcen an, aus denen die Anwendung besteht.
  • Verwaltung von Dienstermittlungs- und Verbindungszeichenfolgen: Der App-Host verwaltet die richtigen Verbindungszeichenfolgen oder Netzwerkkonfigurationen und Dienstermittlungsinformationen, um die Entwicklerfreundlichkeit zu vereinfachen.

Beispielsweise erstellt der folgende Code mit .NET Aspireeine lokale Redis-Containerressource, wartet bis sie verfügbar ist und konfiguriert anschließend die entsprechende Verbindungszeichenfolge im "frontend"-Projekt mit ein paar Aufrufen von Hilfsmethoden.

// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);

// Add a Redis server to the application.
var cache = builder.AddRedis("cache");

// Add the frontend project to the application and configure it to use the 
// Redis server, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
       .WithReference(cache)
       .WaitFor(cache);

Weitere Informationen finden Sie unter .NET.NET Aspire Orchestrierungsübersicht.

Wichtig

Der Aufruf von AddRedis erstellt einen neuen Redis Container in Ihrer lokalen Entwicklungsumgebung. Wenn Sie lieber eine vorhandene Redis Instanz verwenden möchten, können Sie die AddConnectionString-Methode verwenden, um auf eine vorhandene Verbindungszeichenfolge zu verweisen. Weitere Informationen finden Sie unter Referenzieren vorhandener Ressourcen.

.NET .NET Aspire Integrationen

.NET .NET Aspire Integrationen sind NuGet-Pakete, die so konzipiert sind, dass Verbindungen zu beliebten Diensten und Plattformen wie Redis oder PostgreSQLvereinfacht werden. .NET .NET Aspire Integrationen bewältigen viele cloud-native Herausforderungen für Sie durch standardisierte Konfigurationsmuster, wie das Hinzufügen von Gesundheitsprüfungen und Telemetrie. Integrationen sind zweifach, indem eine Seite den Dienst darstellt, mit dem Sie eine Verbindung herstellen, und die andere Seite den client oder Nutzer dieses Dienstes darstellt. Anders ausgedrückt: Für jedes Hostingpaket gibt es ein entsprechendes client Paket, das die Dienstverbindung behandelt.

Jede Integration ist für die Arbeit mit .NET.NET Aspire Orchestrierung konzipiert, und ihre Konfigurationen werden automatisch eingefügt, indem benannte Ressourcenverweisen. Anders ausgedrückt: Wenn Example.ServiceFoo auf Example.ServiceBarverweist, erbt Example.ServiceFoo die erforderlichen Konfigurationen der Integration, damit sie automatisch miteinander kommunizieren können.

Betrachten Sie zum Beispiel den folgenden Code unter Verwendung der .NET.NET Aspire Service Bus-Integration:

builder.AddAzureServiceBusClient("servicebus");

Die AddAzureServiceBusClient Methode behandelt die folgenden Bedenken:

  • Registriert eine ServiceBusClient als Singleton im DI-Container, um eine Verbindung mit Azure Service Busherzustellen.
  • Wendet ServiceBusClient-Konfigurationseinstellungen entweder inline im Code oder über die Konfiguration an.
  • Aktiviert entsprechende Integritätsprüfungen, Protokollierung und Telemetrie, die für die Azure Service Bus Verwendung spezifisch sind.

Eine vollständige Liste der verfügbaren Integrationen finden Sie auf der Seite .NET.NET Aspire Integrationen Übersicht.

Projektvorlagen und Tools

.NET Aspire bietet eine Reihe von Projektvorlagen und Tool-Erfahrungen für Visual Studio, Visual Studio Codeund die .NET-CLI. Diese Vorlagen sind dafür konzipiert, Ihnen zu helfen, .NET.NET Aspire Projekte zu erstellen und mit ihnen zu interagieren. Die Vorlagen sind meinungsvermerkt und enthalten eine Reihe von Standardwerten, die Ihnen helfen, schnell zu beginnen. Sie umfassen Codebausteine und Konfigurationen, die für cloud-native Apps üblich sind, z. B. Telemetrie, Gesundheitschecks und Dienstentdeckung. Weitere Informationen finden Sie unter den .NET.NET Aspire Vorlagen.

.NET .NET Aspire Vorlagen enthalten auch Boilerplate-Erweiterungsmethoden, die allgemeine Dienstkonfigurationen für Sie übernehmen:

builder.AddServiceDefaults();

Weitere Informationen dazu, was AddServiceDefaults tut, finden Sie unter .NET.NET Aspire Dienststandardeinstellungen.

Wenn der vorangehende Code Ihrer Program.cs-Datei hinzugefügt wird, behandelt er die folgenden Anliegen:

  • OpenTelemetry: Richtet formatierte Protokollierung, Laufzeitmetriken, integrierte Meter und Ablaufverfolgung für ASP.NET Core, gRPC und HTTP ein. Weitere Informationen finden Sie unter .NET.NET Aspire Telemetrie.
  • Standard-Integritätsprüfungen: Fügt Standard-Integritätsprüfungs-Endpunkte hinzu, die von Tools abgefragt werden können, um Ihre App zu überwachen. Weitere Informationen finden Sie unter App-Gesundheitsprüfungen .NET in C#.
  • Diensterkennung: Ermöglicht die Diensterkennung für die App und konfiguriert sie HttpClient entsprechend.

Nächste Schritte