.NET .NET Aspire Übersicht
.NET Aspire ist eine Reihe von Tools, Vorlagen und Paketen zum Erstellen von feststellbaren, produktionsbereiten Apps. .NET Aspire wird über eine Sammlung von NuGet-Paketen bereitgestellt, die bootstrap oder bestimmte Herausforderungen bei der modernen App-Entwicklung verbessern. Die heutigen Apps nutzen in der Regel eine große Anzahl von Diensten, z. B. Datenbanken, Nachrichten und Zwischenspeichern, von denen viele über .NET.NET Aspire Integrationenunterstützt werden. Weitere Informationen zu Support finden Sie in der .NET.NET Aspire Support-Richtlinie.
Warum .NET.NET Aspire?
.NET .NET Aspire verbessert die Erfahrung beim Erstellen von Apps mit einer Vielzahl von Projekten und Ressourcen. Mit Entwicklungszeit-Produktivitätsverbesserungen, die bereitgestellte Szenarien emulieren, können Sie schnell miteinander verbundene Apps entwickeln. Auf Flexibilität ausgelegt, können Sie mit .NET.NET Aspire Teile durch Ihre bevorzugten Tools und Workflows ersetzen oder erweitern. Zu den wichtigsten Features gehören:
- Dev-Time Orchestration: .NET.NET Aspire bietet Features zum Ausführen und Verbinden von Multi-Projekt-Anwendungen, Containerressourcen und anderen Abhängigkeiten für lokale 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 während der Entwicklungsphase
In .NET.NET Aspirekonzentriert sich die "Orchestrierung" in erster Linie auf die Verbesserung der lokalen Entwicklung Erfahrung, indem die Verwaltung der Konfiguration und Verknüpfungen Ihrer 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 ist es eine Reihe von Abstraktionen, die das Einrichten von Dienstermittlungen, den Umgebungsvariablen und den Containerkonfigurationen vereinfachen und die Notwendigkeit eliminieren, sich mit Details zur Implementierung auf niedriger Ebene befassen zu müssen. Mit .NET.NET Aspireverfügt Ihr Code über eine konsistente Bootstrapping-Erfahrung auf jedem Entwicklercomputer, ohne dass komplexe manuelle Schritte erforderlich sind, wodurch die Verwaltung während der Entwicklungsphase vereinfacht 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.
- Dienstermittlungs- und Verbindungszeichenfolgenverwaltung: Der App-Host fügt die richtigen Verbindungszeichenfolgen, Netzwerkkonfigurationen und Dienstermittlungsinformationen ein, 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 Integrationstools verarbeiten die Einrichtung und Interaktion von Cloud-Ressourcen für Sie über standardisierte Muster, z. B. durch das Hinzufügen von Gesundheitsprüfungen und Telemetrie. Integrationen sind zweifach: "Hosting"-Integrationen stehen für den Dienst, zu dem Sie eine Verbindung herstellen, und "Client"-Integrationen repräsentieren den Client oder Nutzer dieses Dienstes. Anders ausgedrückt: Für viele Hostingpakete gibt es ein entsprechendes Clientpaket, das die Dienstverbindung in Ihrem Code verarbeitet.
Jede Integration ist darauf ausgelegt, mit dem App-Host .NET.NET Aspire zu arbeiten, und ihre Konfigurationen werden automatisch durch den Verweis von auf benannte Ressourceneingespeist. 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 sollen Ihnen beim Erstellen und Interagieren mit .NET Aspire Projekten helfen oder .NET Aspire zu Ihrer vorhandenen Codebasis hinzufügen. Die Vorlagen enthalten eine Reihe von vordefinierten Standardwerten, die Ihnen beim schnellen Einstieg helfen sollen – z. B. mit Boilerplate-Code zum Aktivieren von Health Checks und zur Anmeldung in .NET-Apps. Diese Standardwerte sind vollständig anpassbar, sodass Sie sie an Ihre Anforderungen anpassen können.
.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.