Sdílet prostřednictvím


Kurz: Přidání .NET Aspire do existující aplikace .NET

Pokud máte existující mikroslužby a .NET webovou aplikaci, můžete do ní přidat .NET Aspire a získat všechny zahrnuté funkce a výhody. V tomto článku přidáte .NET Aspire orchestraci do jednoduchého, již existujícího projektu .NET 9. Naučíte se:

  • Seznamte se se strukturou existující aplikace mikroslužeb.
  • Zaregistrujte existující projekty do orchestrace .NET.NET Aspire.
  • Pochopte změny, které zápis způsobuje v projektech.
  • Spusťte projekt .NET.NET Aspire.

Požadavky

Pokud chcete pracovat s .NET.NET Aspire, potřebujete místně nainstalovat následující:

Další informace najdete v tématu .NET.NET Aspire nastavení a nástrojea .NET.NET Aspire SDK.

Začít

Začněme získáním kódu pro řešení:

  1. Otevřete příkazový řádek a změňte adresáře na místo, kam chcete kód uložit.

  2. Pokud chcete klonovat do ukázkového řešení .NET 9, použijte následující příkaz git clone:

    git clone https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative-devops.git eShopLite
    

Prozkoumání ukázkové aplikace

Tento článek používá řešení .NET 9 se třemi projekty:

  • Data Entities: Tento projekt je ukázkovou knihovnou tříd. Definuje Product třídu použitou ve webové aplikaci a webovém rozhraní API.
  • Produkty: Toto ukázkové webové rozhraní API vrátí seznam produktů v katalogu a jejich vlastnosti.
  • store: Tento příklad Blazor Web App zobrazí katalog produktů návštěvníkům webu.

Otevřete a spusťte ladění projektu, abyste prozkoumali jeho výchozí chování:

  1. Spusťte Visual Studio a pak vyberte Soubor>Otevřít>Projekt/Řešení.

  2. Přejděte do složky nejvyšší úrovně naklonovaného řešení, vyberte eShopLite.slna pak vyberte Otevřít.

  3. V Průzkumníku řešeníklikněte pravým tlačítkem na řešení eShopLite a pak vyberte Konfigurovat spouštěcí projekty.

  4. Zvolte více startovacích projektů.

  5. Ve sloupci Akce vyberte Spustit pro projekty Products i Store.

  6. Vyberte OK.

  7. Pokud chcete spustit ladění řešení, stiskněte F5 nebo vyberte Spustit.

  8. V prohlížeči se otevřou dvě stránky:

    • Na stránce se zobrazují produkty ve formátu JSON z volání Web API Produktů.
    • Na stránce se zobrazí domovská stránka webu. V nabídce vlevo vyberte Products a zobrazte katalog získaný z webového rozhraní API.
  9. Pokud chcete ladění zastavit, zavřete prohlížeč.

  1. Spusťte Visual Studio Code a otevřete složku, kterou jste naklonovali. V terminálu, kde jste naklonovali úložiště, spusťte následující příkaz:

    code .
    
  2. Vyberte položku nabídky Spustit a ladit nebo stiskněte Ctrl+Shift+D.

  3. Vyberte vytvořit spuštění.json soubor odkaz.

    Visual Studio Code: Spustit a ladit, vytvořit spuštění.json soubor.

  4. Zkopírujte a vložte následující JSON do tohoto souboru a uložte:

    {
        "version": "0.2.0",
        "compounds": [
            {
                "name": "Run all",
                "configurations": [
                    "Run products",
                    "Run store",
                ]
            }
        ],
        "configurations": [
            {
                "name": "Run products",
                "type": "dotnet",
                "request": "launch",
                "projectPath": "${workspaceFolder}/Products/Products.csproj"
            },
            {
                "name": "Run store",
                "type": "dotnet",
                "request": "launch",
                "projectPath": "${workspaceFolder}/Store/Store.csproj"
            }
        ]
    }
    
  5. Pokud chcete spustit ladění řešení, stiskněte F5 nebo vyberte Spustit.

  6. V prohlížeči se otevřou dvě stránky:

    • Na stránce se zobrazují produkty ve formátu JSON z volání Web API Produktů.
    • Na stránce se zobrazí domovská stránka webu. V nabídce vlevo vyberte Products a zobrazte katalog získaný z webového rozhraní API.
  7. Pokud chcete ladění zastavit, zavřete prohlížeč a pak dvakrát vyberte tlačítko Zastavit (jednou pro každou spuštěnou instanci ladění).


  1. Otevřete okno terminálu a změňte adresáře do nově naklonovaného úložiště.

  2. Spuštěním následujícího příkazu spusťte aplikaci Products:

    dotnet run --project ./Products/Products.csproj
    
  3. Otevře se stránka prohlížeče zobrazující JSON pro produkty.

  4. V samostatném okně terminálu znovu změňte adresáře na klonované úložiště.

  5. Spusťte aplikaci Store spuštěním následujícího příkazu:

    dotnet run --project ./Store/Store.csproj
    
  6. Prohlížeč otevře stránku, která zobrazuje domovskou stránku webu. V nabídce vlevo vyberte Products a zobrazte katalog získaný z webového rozhraní API.

  7. Ladění zastavíte tak, že zavřete prohlížeč a v obou terminálech stisknete Ctrl+C.

Přidej .NET.NET Aspire do webové aplikace pro Store

Teď zaregistrujeme projekt Store, který implementuje webové uživatelské rozhraní v orchestraci .NET.NET Aspire:

  1. V Visual Studiov Průzkumníku řešeníklikněte pravým tlačítkem myši na projekt Store, vyberte Přidata poté vyberte .NET.NET Aspire Podpora orchestrátoru.

  2. V dialogovém okně Přidat .NET.NET Aspire Podpora nástroje Orchestrator vyberte OK.

    snímek obrazovky dialogového okna Přidat podporu orchestrátoru .NET.NET Aspire

Teď byste měli mít dva nové projekty, oba přidané do řešení:

  • eShopLite.AppHost: Projekt orchestrátoru navržený pro připojení a konfiguraci různých projektů a služeb vaší aplikace. Orchestrátor je nastavený jako spouštěcí projekta závisí na projektu eShopLite.Store.
  • eShopLite.ServiceDefaults: Sdílený projekt .NET.NET Aspire ke správě konfigurací, které se znovu používají napříč projekty ve vašem řešení související s odolností, zjišťováním služeba telemetrií.

V projektu eShopLite.AppHost otevřete soubor Program.cs. Všimněte si tohoto řádku kódu, který zaregistruje projekt Store v orchestraci :

builder.AddProject<Projects.Store>("store");

Další informace najdete v tématu AddProject.

Přidání projektu Products do .NET.NET Aspire:

  1. V vPrůzkumníka řešení klikněte pravým tlačítkem na projekt Products, vyberte Přidata pak vyberte Podpora orchestrátoru .

  2. Dialogové okno označující, že projekt nástroje Orchestrator .NET.NET Aspire již existuje, vyberte OK.

    snímek obrazovky označující, že.NET.NET Aspire Orchestrator už byl přidán.

V projektu eShopLite.AppHost otevřete soubor Program.cs. Všimněte si tohoto řádku kódu, který zaregistruje projekt Products v orchestraci .NET.NET Aspire:

builder.AddProject<Projects.Products>("products");

Všimněte si také, že projekt eShopLite.AppHost teď závisí na projektech Store i Products.

Vytvoření hostitelského projektu aplikace

Pokud chcete orchestrovat existující projekty, musíte vytvořit nový projekt hostitele aplikací . Pokud chcete vytvořit nového hostitele aplikace projektu z dostupných šablon .NET Aspire, použijte následující příkaz rozhraní příkazového řádku .NET:

dotnet new aspire-apphost -o eShopLite.AppHost

Přidejte projekt hostitele aplikace do stávajícího řešení:

dotnet sln ./eShopLite.sln add ./eShopLite.AppHost/eShopLite.AppHost.csproj

Přidejte projekt Store jako odkaz na projekt hostitele aplikace pomocí následujícího příkazu CLI:

dotnet add ./eShopLite.AppHost/eShopLite.AppHost.csproj reference ./Store/Store.csproj

Vytvoření výchozího projektu služby

Po vytvoření hostitelského projektu aplikace je potřeba vytvořit nový projekt výchozích služeb. Pokud chcete vytvořit nové výchozí nastavení služby pro projekt z dostupných šablon .NET Aspire, použijte následující příkaz v příkazovém řádku .NET:

dotnet new aspire-servicedefaults -o eShopLite.ServiceDefaults

Pokud chcete přidat projekt do řešení, použijte následující příkaz .NET rozhraní příkazového řádku:

dotnet sln ./eShopLite.sln add ./eShopLite.ServiceDefaults/eShopLite.ServiceDefaults.csproj

Aktualizujte projekt hostitele aplikace a přidejte odkaz na projekt Products:

dotnet add ./eShopLite.AppHost/eShopLite.AppHost.csproj reference ./Products/Products.csproj

Projekty Store a Products musí odkazovat na projekt výchozích služeb , aby mohly snadno zahrnovat zjišťování služeb . Pokud chcete přidat odkaz na projekt výchozí hodnoty služby v projektu Store , použijte následující příkaz CLI .NET:

dotnet add ./Store/Store.csproj reference ./eShopLite.ServiceDefaults/eShopLite.ServiceDefaults.csproj

Stejný příkaz se stejnými mírně odlišnými cestami by se měl použít k přidání odkazu na projekt výchozích služeb do projektu Products.

dotnet add ./Products/Products.csproj reference ./eShopLite.ServiceDefaults/eShopLite.ServiceDefaults.csproj

V projektech Store i Products aktualizujte soubory Program.cs a hned za řádek var builder = WebApplication.CreateBuilder(args); přidejte následující řádek:

builder.AddServiceDefaults();

Aktualizace hostitelského projektu aplikace

Otevřete soubor Program.cs projektu hostitele aplikace a nahraďte jeho obsah následujícím kódem jazyka C#:

var builder = DistributedApplication.CreateBuilder(args);

builder.AddProject<Projects.Store>("store");

builder.AddProject<Projects.Products>("products");

builder.Build().Run();

Předchozí kód:

  • Vytvoří novou instanci DistributedApplicationBuilder.
  • Přidá projekt Store do orchestrátoru.
  • Přidá projekt Products do orchestrátoru.
  • Sestaví a spustí orchestrátor.

Zjišťování služeb

V tuto chvíli jsou oba projekty součástí orchestrace , ale Store musí být schopná zjistit Produkty back-endovou adresu prostřednictvímzjišťování služby . Pro povolení zjišťování služeb otevřete soubor Program.cs v eShopLite.AppHost a aktualizujte kód tak, aby Store přidal odkaz na projekt Products:

var builder = DistributedApplication.CreateBuilder(args);

var products = builder.AddProject<Projects.Products>("products");

builder.AddProject<Projects.Store>("store")
       .WithExternalHttpEndpoints()
       .WithReference(products);

builder.Build().Run();

Předchozí kód vyjadřuje, že projekt Store závisí na projektu Products. Další informace najdete v tématu .NET.NET Aspire hostitel aplikace : Referenční materiály. Tento odkaz slouží ke zjištění adresy projektu Products. Kromě toho je projekt Store nakonfigurovaný tak, aby používal externí koncové body HTTP. Pokud se později rozhodnete tuto aplikaci nasadit, budete potřebovat volání WithExternalHttpEndpoints, abyste zajistili, že bude veřejná pro vnější svět.

Dále aktualizujte v projektu Store následujícím :

{
  "DetailedErrors": true,
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ProductEndpoint": "http://products",
  "ProductEndpointHttps": "https://products"
}

Adresy obou koncových bodů nyní používají název "products", který byl přidán do orchestrátoru v hostiteli aplikace . Tyto názvy slouží ke zjištění adresy projektu Products.

Prozkoumejte zapsanou aplikaci

Začněme řešení a prozkoumáme nové chování, které .NET.NET Aspire poskytuje.

Poznámka

Všimněte si, že projekt eShopLite.AppHost je nový spouštěný projekt.

  1. V Visual Studiospustíte ladění stisknutím klávesy F5Visual Studio sestaví projekty.
  2. Pokud se zobrazí dialogové okno Start Docker Desktop, vyberte Ano. Visual Studio spustí modul Docker a vytvoří potřebné kontejnery. Po dokončení nasazení se zobrazí řídicí panel .NET.NET Aspire.
  3. Na řídicím panelu vyberte koncový bod pro produkty projektu. Zobrazí se nová karta prohlížeče a zobrazí katalog produktů ve formátu JSON.
  4. Na řídicím panelu vyberte koncový bod obchodu projektu. Zobrazí se nová karta prohlížeče a zobrazí domovskou stránku webové aplikace.
  5. V nabídce vlevo vyberte Produkty. Zobrazí se katalog produktů.
  6. Pokud chcete ladění zastavit, zavřete prohlížeč.

Odstraňte spuštění .jsonOdstraňte také soubor, který jste vytvořili dříve, už nemá žádný účel. Místo toho spusťte aplikaci hostující projekt, který orchestruje ostatní projekty:

  1. Spusťte projekt hostitele aplikace kliknutím pravým tlačítkem na projekt eShopLite.AppHost v Průzkumníku řešení a výběrem možnosti Ladit>Spustit novou instanci:

    Visual Studio Code: Výběr Debug v Průzkumníku řešení, > Spustit novou instanci.

    Poznámka

    Pokud Docker Desktop (nebo Podman) není spuštěný, dojde k chybě. Spusťte modul kontejneru kompatibilní s OCI a zkuste to znovu.

  1. Spuštěním následujícího příkazu spusťte projekt hostitele aplikace :

    dotnet run --project ./eShopLite.AppHost/eShopLite.AppHost.csproj
    

    Poznámka

    Pokud Docker Desktop (nebo Podman) není spuštěný, dojde k chybě. Spusťte modul kontejneru kompatibilní s OCI a zkuste to znovu.

  1. Na řídicím panelu vyberte koncový bod pro produkty projektu. Zobrazí se nová karta prohlížeče a zobrazí katalog produktů ve formátu JSON.
  2. Na řídicím panelu vyberte koncový bod obchodu projektu. Zobrazí se nová karta prohlížeče a zobrazí domovskou stránku webové aplikace.
  3. V nabídce vlevo vyberte Produkty. Zobrazí se katalog produktů.
  4. Pokud chcete ladění zastavit, zavřete prohlížeč.

Blahopřejeme, přidali jste orchestraci .NET.NET Aspire ke své stávající webové aplikaci. Teď můžete přidat .NET Aspire integrace a pomocí nástrojů .NET Aspire zjednodušit vývoj nativních cloudových webových aplikací.