Den här artikeln innehåller vanliga frågor och svar om .NET Aspire. En mer omfattande översikt finns i .NET Aspire-översikt.
Varför ska du välja .NET Aspire framför Docker Compose för orkestrering?
Docker Compose är utmärkt men är improduktiv när allt du vill göra är att köra flera projekt eller körbara filer. Docker Compose kräver att utvecklare skapar containeravbildningar och kör appar i containrar. Det är en barriär när du bara vill köra klientdelen, serverdelen, arbetare och en databas. Med .NET Aspire behöver du inte lära dig något utöver det du redan vet.
Konfiguration via deklarativ kod är bättre än via YAML. Docker Compose blir komplex när du försöker göra någon form av abstraktion eller sammansättning (till exempel se den gamla eshopOnContainers-appen). Dessutom finns det miljövariabelersättningar (och inkluderar) och inga typer eller IntelliSense, och det är svårt att resonera om exakt vad som körs. Felsökning är också svårt. .NET Aspire ger en bättre upplevelse som är enkel att komma igång med och som skalar upp till en orkestrerare som Compose med ett riktigt programmeringsspråk.
Hur lägger jag till projekt i .NET Aspire?
Du kan lägga till projekt i .NET Aspire-lösningen manuellt med hjälp av builder.AddProject("<name>", "<path/to/project.csproj>")
-API:et.
Hur distribuerar du .NET Aspire utan målverktyg för molnleverantörer?
.NET Aspire begränsar inte distributionen av ett befintligt projekt eller en befintlig lösning. .NET Aspire exponerar ett distributionsmanifest som används av verktygsförfattare för att skapa artefakter för distribution till alla molnleverantörer. Men tyvärr erbjuder inte alla molnleverantörer verktyg för distributioner baserat på det här manifestet. Manifestet är en enkel JSON-fil som beskriver resurserna i din app och beroendena mellan dem. Manifestet används av Azure Developer CLI för att distribuera till Azure. På samma sätt använder Aspir8 manifestet för att distribuera till Kubernetes. Du kan använda manifestet för att distribuera till alla molnleverantörer som stöder de resurser du använder.
Kan .NET Aspire-appar skapas utan Azure-beroenden och distribueras någon annanstans?
Ja, du kan skapa .NET Aspire-appar utan att använda några Azure-proprietära beroenden. Även om .NET Aspire erbjuder en förstapartslösning för distribution till Azure är det inte ett krav. .NET Aspire är en molnbaserad stack som kan användas för att skapa program som körs var som helst. Alla Azure-specifika erbjudanden framhävs uttryckligen som sådana.
Varför ska du använda .NET Aspire-tjänstidentifiering via Docker Compose med Kubernetes?
.NET Aspire-tjänstidentifierings-API:er är en abstraktion som fungerar med olika leverantörer (till exempel Kubernetes och Consul). En av de stora fördelarna är att det fungerar lokalt och backas upp av . NET:s IConfiguration
abstraktion. Det innebär att du kan implementera tjänstidentifiering i beräkningsinfrastrukturen på ett sätt som inte resulterar i kodändringar. Om du har flera Kubernetes-kluster eller -tjänster i Azure App Service eller Azure Functions behöver du inte ändra programkoden i grunden så att den fungerar lokalt, antingen i ett enda kluster eller i flera kluster. Det är fördelen med abstraktionen.
Varför ska du använda .NET Aspire om OpenTelemetry är tillgängligt i .NET?
.NET Aspire satsar stort på . NET:s integrering med OpenTelemetry. .NET Aspire-instrumentpanelen är en OTLP-standardserver som visualiserar olika telemetridata. Att luta sig mot dessa öppna standarder gör det enkelt att bygga dessa saker utan att bryta kompatibiliteten med det bredare ekosystemet.
Varför ska du använda .NET Aspire om Grafana, Jaeger och Prometheus fungerar med .NET?
.NET Aspire är inte en ersättning för dessa verktyg, utan snarare en kompletterande teknik. .NET Aspire är en uppsättning bibliotek och verktyg som gör det enkelt att skapa program som är observerbara. Mer information finns i exemplet Metrics i .NET Aspire-exempellagringsplatsen som visar Grafana och Prometheus.
Varför skapa ett annat ramverk när befintliga fungerar bra?
.NET Aspire är inte ett ramverk, det är en åsiktsstacken. Kanske är de mest kontroversiella delarna av det de DistributedApplication
API:er som du kan använda för att bygga upp orkestreringsmodellen i valfri . NET-baserat språk. Även om allt är möjligt idag, är det inte lätt. Med Unix-filosofin bygger hela det molnbaserade ekosystemet på att binda ihop olika delar av CNCF-programvara för att bygga en stack. .NET Aspire försöker göra samma sak med hjälp av lärdomar från det molnbaserade utrymmet och väljer vissa åsikter (på sätt som använder samma byggstenar). En ny sak om hur .NET Aspire bygger olika delar av stacken är att den inte begränsar åtkomsten eller kompatibiliteten för andra program, ramverk eller tjänster. När folk leker med det mer inser de hur komposterbart och utökningsbart det är.
Hur skiljer sig .NET Aspire från Microsoft Orleans?
Microsoft Orleans och .NET Aspire är kompletterande tekniker.
Orleans är ett distribuerat aktörsbaserat ramverk. .NET Aspire är en molnklar stack för att skapa observerbara, produktionsklara, distribuerade program. Den innehåller lokala orkestreringsfunktioner för att förenkla utvecklarens inre loop och återanvändbara åsiktskomponenter för integrering med vanliga programberoenden. En Orleans-baserad lösning har fortfarande externa beroenden, till exempel datalager och cacheminnen som .NET Aspire kan användas för orkestrering.
Mer information finns i
Hur skiljer sig .NET Aspire från Dapr?
Dapr och .NET Aspire är kompletterande tekniker.
Där Dapr abstraherar en del av den underliggande molnplattformen tillhandahåller .NET Aspire en åsiktsbaserad konfiguration kring de underliggande molnteknikerna utan att abstrahera dem. A . NET-baserade program som använder Dapr kan använda .NET Aspire för att orkestrera den lokala utvecklarens inre loop och effektivisera distributionen. .NET Aspire innehåller tillägg som stöder lanseringen av Dapr-sidobilsprocesser under den inre slingan.
Mer information finns i Använda Dapr med .NET Aspire och motsvarande Dapr-exempelapp i .NET Aspire-exempellagringsplatsen.
Hur skiljer sig .NET Aspire från Project Tye?
Project Tye var ett experiment som utforskade lanseringen och orkestreringen av mikrotjänster och stöddistribution till orkestratorer som Kubernetes. .NET Aspire är en supermängd av Tye som innehåller orkestrerings- och distributionsfunktionerna tillsammans med åsiktskomponenter för integrering av vanliga molnbaserade beroenden. .NET Aspire kan betraktas som utvecklingen av Project Tye-experimentet.
Hur är .NET Aspire och Azure SDK för .NET relaterade?
.NET Aspire tillhandahåller komponenter som förlitar sig på Azure SDK för .NET, för att exponera vanliga funktioner för lagring (Azure Blob Storage, Azure Storage Queuesoch Azure Table Storage), databaser (Azure Cosmos DB och Azure Cosmos DB med Entity Framework Core), meddelandeoch säkerhet.
Hur är .NET Aspire och Kubernetes relaterade?
.NET Aspire gör det enkelt att utveckla distribuerade program som kan samordnas i din lokala utvecklingsmiljö som körbara filer och containrar. Kubernetes är en teknik som samordnar och hanterar containrar på flera datorer. .NET Aspire-projekt kan skapa ett manifest som verktygsförfattare kan använda för att skapa artefakter för distribution till Kubernetes. Kubernetes är i huvudsak ett distributionsmål för .NET Aspire-projekt.
Stöds arbetstjänster i .NET Aspire?
Ja, arbetstjänster stöds fullt ut och det finns dokument och exempel som hjälper dig att komma igång. Arbetstjänster är ett bra sätt att köra bakgrundsaktiviteter, schemalagda uppgifter eller långvariga uppgifter i .NET Aspire. Mer information finns i Database-migreringar med Entity Framework Core-exempelappen.
Stöds Azure Functions i .NET Aspire?
Ja, .NET Aspire har förhandsversionsstöd för integrering av Azure Functions i din app.
Har .NET Aspire stöd för att köra webbappar lokalt på IIS eller IIS Express?
Nej. .NET Aspire stöder inte körning av webbappar på IIS eller IIS Express.
Stöder .NET Aspire distribution av appar till IIS?
Nej. .NET Aspire stöder inte distribution av appar till IIS. Men det hindrar dig inte från att distribuera dina appar till IIS på samma sätt som du alltid har gjort.
Så här åtgärdar du integreringar och serviceidentifieringsproblem när du distribuerar .NET Aspire-appar till IIS?
.NET Aspire-integreringar kräver en specifik konfiguration som måste anges manuellt. Detsamma gäller för Service Discovery, helst bör du distribuera till något annat än IIS.
Vad är syftet med projektet Community Toolkit?
Målet med projektet är att vara ett centraliserat hem för tillägg och integreringar för .NET Aspire, vilket hjälper till att ge konsekvens i hur integreringar skapas och underhålls, samt enklare identifiering för användare.
Hur skiljer sig Community Toolkit-projektet från det officiella .NET Aspire-projektet?
.NET Aspire Community Toolkit är ett communitydrivet projekt som underhålls av communityn och som inte stöds officiellt av .NET Aspire-teamet. Verktygslådan är en samling integreringar och tillägg som bygger på .NET Aspire-projektet.
Hur kan jag bidra till projektet Community Toolkit?
Vem som helst kan bidra till .NET Aspire Community Toolkit och innan du kommer igång bör du läsa bidragsguide för att lära dig hur du bidrar till projektet.
Bör jag föreslå en ny integrering av Community Toolkit eller lagringsplatsen "dotnet/aspire"?
Om du har en idé om en ny integrering bör du föreslå den på den .NET Aspire Community Toolkit-lagringsplatsen, i stället för dotnet/aspire
, eftersom det officiella .NET Aspire-projektet fokuserar på kärnfunktionerna i .NET Aspire-projektet.
Om du har föreslagit en integrering på den dotnet/aspire
lagringsplatsen kan du fortfarande föreslå den i Community Toolkit, men länka till det befintliga problemet på dotnet/aspire
-lagringsplatsen för att tillhandahålla kontext.
Hur hittar jag Community Toolkit-integreringar?
Integreringar från .NET Aspire Community Toolkit visas i dialogrutan Lägg till Aspire Integration i Visual Studio under namnområdet CommunityToolkit.Aspire.*
.
Nästa steg
Om du vill veta mer om nätverk och funktioner: