Övning – Använda .NET Aspire eShop
Vi kan använda det senaste eShop-referensprogrammet, som innehåller .NET Aspire-stacken, för att illustrera en komplett och komplex molnbaserad app.
Tänk dig att du arbetar för ett kläd- och utrustningsföretag utomhus. Ditt utvecklingsteam har arbetat med .NET Aspire för att skapa en ny eShop-webbapp för den huvudsakliga kundinriktade webbplatsen. Du vill förstå arkitekturen för den här appen och testa dess funktioner innan du distribuerar den.
I den här lektionen installerar du .NET Aspire och dess förutsättningar och använder sedan eShop-appen för att undersöka och köra .NET Aspire.
Installationskrav
Förutsättningarna för den här .NET Aspire-övningen är:
- .NET 8
- Förhandsversion av Visual Studio 2022
- Docker Desktop
- .NET Aspire-arbetsbelastning i Visual Studio
Om du redan har installerat dessa kan du gå vidare och utforska eShop-programmet.
Installera .NET 8
Följ den här .NET 8-länken och välj rätt installationsprogram för operativsystemet. Om du till exempel använder Windows 11 och en modern processor väljer du X64 .NET 8 SDK för Windows.
När nedladdningen är klar kör du installationsprogrammet och följer anvisningarna. I ett terminalfönster kör du följande kommando för att kontrollera att installationen lyckades:
dotnet --version
Du bör se versionsnumret för .NET SDK som du har installerat. Till exempel:
8.0.300-preview.24203.14
Installera Visual Studio 2022 Preview
Följ den här Visual Studio 2022 Preview-länken och välj Ladda ned förhandsversion. När nedladdningen är klar kör du installationsprogrammet och följer anvisningarna.
Installera Docker Desktop
Följ den här Docker Desktop-länken och välj rätt installationsprogram för operativsystemet. När nedladdningen är klar kör du installationsprogrammet och följer anvisningarna. Använd WSL 2-serverdelen för bästa prestanda och kompatibilitet.
Öppna Docker Desktop-programmet och godkänn tjänstavtalet.
Installera .NET Aspire-arbetsbelastningen i Visual Studio
Installera .NET Aspire-arbetsbelastningen med .NET CLI:
Öppna en terminal.
Uppdatera .NET-arbetsbelastningar med det här kommandot:
dotnet workload update
Du bör se ett meddelande om att arbetsbelastningarna har uppdaterats.
No workloads installed for this feature band. To update workloads installed with earlier SDK versions, include the --from-previous-sdk option. Updated advertising manifest microsoft.net.sdk.ios. Updated advertising manifest microsoft.net.workload.mono.toolchain.net6. Updated advertising manifest microsoft.net.sdk.android. Updated advertising manifest microsoft.net.workload.emscripten.net7. Updated advertising manifest microsoft.net.workload.emscripten.net6. Updated advertising manifest microsoft.net.sdk.macos. Updated advertising manifest microsoft.net.workload.emscripten.current. Updated advertising manifest microsoft.net.workload.mono.toolchain.current. Updated advertising manifest microsoft.net.sdk.maui. Updated advertising manifest microsoft.net.workload.mono.toolchain.net7. Updated advertising manifest microsoft.net.sdk.maccatalyst. Updated advertising manifest microsoft.net.sdk.tvos. Updated advertising manifest microsoft.net.sdk.aspire. No workloads installed for this feature band. To update workloads installed with earlier SDK versions, include the --from-previous-sdk option. Successfully updated workload(s): .
Installera .NET Aspire-arbetsbelastningen med det här kommandot:
dotnet workload install aspire
Du bör se ett meddelande om att .NET Aspire-arbetsbelastningen har installerats.
Installing Aspire.Hosting.Sdk.Msi.x64 ...... Done Installing Aspire.ProjectTemplates.Msi.x64 ..... Done Installing Aspire.Hosting.Orchestration.win-x64.Msi.x64 ............. Done Installing Aspire.Hosting.Msi.x64 ..... Done Installing Aspire.Dashboard.Sdk.win-x64.Msi.x64 ....... Done Successfully installed workload(s) aspire.
Kontrollera att .NET Aspire-arbetsbelastningen är installerad med det här kommandot:
dotnet workload list
Du bör se information om arbetsbelastningen aspire.
Installed Workload Id Manifest Version Installation Source --------------------------------------------------------------------------------------------- aspire 8.0.0/8.0.100 SDK 8.0.300-preview.24203, VS 17.10.34902.84 Use `dotnet workload search` to find additional workloads to install.
Utforska .NET Aspire eShop-koden
Nu ska vi använda eShop-referensprogrammet för att demonstrera .NET Aspire-stacken. Vi klonar koden från GitHub och undersöker den i Visual Studio:
På kommandoraden bläddrar du till en mapp där du kan arbeta med kod.
Kör följande kommando för att klona eShop-exempelprogrammet:
git clone https://github.com/dotnet/eShop.git
Starta Visual Studio och välj sedan Öppna ett projekt eller en lösning.
Bläddra till mappen där du klonade eShop, välj filen eShop.Web.snlf och välj sedan Öppna.
Granska lösningsstrukturen i Solution Explorer. På den översta nivån innehåller eShop-koden mappar för tester, GitHub-åtgärder och lösningsobjekt. Expandera mappen src, som innehåller källkod för mikrotjänsterna:
Observera att:
- Mappen src innehåller projekten .NET Aspire AppHost och ServiceDefaults .
- AppHost-projektet anges som startprojekt för lösningen.
Expandera AppHost-projektet och välj sedan filen eShop.AppHost/Program.cs.
Observera följande i filen Program.cs :
- Komponenter i programmet läggs till i ett
DistributedApplicationBuilder
objekt med namnetbuilder
. - Stödtjänster, till exempel en Redis-cache, en RabbitMQ-meddelandetjänst och en PostgreSQL-databas, läggs till i byggaren. Var och en etableras i en Docker-container.
- Varje mikrotjänst läggs till i byggaren med hjälp
builder.AddProject()
av metoden . - Referenser till säkerhetskopieringstjänsterna matas in i varje mikrotjänst med hjälp
.WithReference()
av metoden .
- Komponenter i programmet läggs till i ett
Redigera kod i .NET Aspire eShop
Vi gör en enkel ändring i källkoden som ska testas när vi kör appen:
Expandera mappen src/WebApp/Components/Pages/Catalog i Solution Explorer och välj sedan sidan Catalog.razor.
Leta upp den här kodraden:
<SectionContent SectionName="page-header-subtitle">Start the season with the latest in clothing and equipment.</SectionContent>
Ersätt raden med den här texten eller skapa en egen underrubrik för sidan:
<SectionContent SectionName="page-header-subtitle">Bringing you the latest in clothing and equipment.</SectionContent>
Kör .NET Aspire eShop
Vi kör appen och använder instrumentpanelen .NET Aspire för att undersöka en begäran:
Tryck på F5 i Visual Studio eller välj Starta felsökning på felsökningsmenyn. Visual Studio bygger containrarna för eShop.
Om dialogrutan Starta Docker Desktop visas väljer du Ja.
När eShop skapas och distribueras till Docker visas .NET Aspire-instrumentpanelen i standardwebbläsaren.
Om du vill bläddra till startsidan går du till raden för webbappprojektet och väljer portlänken>https://localhost:<:
Startsidan för eShop visas på en ny webbläsarflik. Observera att underrubriken visas.
Välj produkten Adventurer GPS Watch:
Växla till webbläsarfliken som visar instrumentpanelen .NET Aspire och välj sedan Spårningar i den vänstra menyn.
Rulla längst ned på sidan och leta upp en spårning med namnet webapp: GET /item/{itemId:int}.
I kolumnen Information väljer du Visa:
Instrumentpanelen visar spårningen för Adventurer GPS Watch, som innehåller ett anrop till katalogens mikrotjänst:
Om du vill stoppa felsökningssessionen trycker du på Skift + F5 i Visual Studio eller på felsökningsmenyn och väljer Stoppa felsökning.
Stäng Visual Studio.