Olvasás angol nyelven

Megosztás a következőn keresztül:


Oktatóanyag: .NET Aspire hozzáadása meglévő .NET-alkalmazáshoz

Fejlesztési környezet kiválasztása

Ha rendelkezik meglévő mikroszolgáltatásokkal és .NET webalkalmazással, hozzáadhat hozzá .NET Aspire, és minden további funkciót és előnyt megkaphat. Ebben a cikkben .NET Aspire orkesztációt ad hozzá egy egyszerű, már meglévő .NET 9 projekthez. Megtudhatja, hogyan:

  • A meglévő mikroszolgáltatás-alkalmazás szerkezetének megismerése.
  • Meglévő projektek bevonása .NET.NET Aspire orchestrationbe.
  • Ismerje meg, hogy a regisztráció milyen módosításokat hajt végre a projektekben.
  • Indítsa el a .NET.NET Aspire projektet.

Előfeltételek

A .NET.NET Aspirehasználatához a következő helyi telepítésre van szükség:

További információ: .NET.NET Aspire beállítási és eszközök, valamint .NET.NET Aspire SDK.

Kezdje el

Először szerezzük be a megoldás kódját:

  1. Nyisson meg egy parancssort, és módosítsa a könyvtárakat arra a helyre, ahol a kódot tárolni szeretné.

  2. A .NET 9 példamegoldás klónozásához használja a következő git clone parancsot:

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

A mintaalkalmazás felfedezése

Ez a cikk egy .NET 9-megoldást használ három projekttel:

  • Adatobjektumok: Ez a projekt egy példakönyvtár. Meghatározza a webalkalmazásban és a Web API-ban használt Product osztályt.
  • termékek: Ez a példa webes API a katalógusban szereplő termékek listáját és tulajdonságait adja vissza.
  • Áruház: Ez a példa Blazor Webalkalmazás megjeleníti a termékkatalógust a webhely látogatóinak.

Nyissa meg és kezdje el a projekt hibakeresését az alapértelmezett viselkedés vizsgálatához:

  1. Indítsa el Visual Studio, majd válassza Fájl>>Projekt/megoldás megnyitása.

  2. Keresse meg a klónozott megoldás legfelső szintű mappáját, válassza a eShopLite.sln, majd a Megnyitáslehetőséget.

  3. A Megoldáskezelőkattintson a jobb gombbal az eShopLite megoldásra, majd válassza az Indítási projektek konfigurálásalehetőséget.

  4. Válassza Több indítási projektlehetőséget.

  5. A Művelet oszlopban válassza a Indítás lehetőséget mind a Termékek, mind az Áruház projektekhez.

  6. Válassza OKlehetőséget.

  7. A megoldás hibakereséséhez nyomja le F5 vagy válassza a Startlehetőséget.

  8. Két oldal nyílik meg a böngészőben:

    • Egy oldal JSON formátumban jeleníti meg a termékeket egy hívás eredményeként a Termékek Web API-ból.
    • Egy oldal megjeleníti a webhely kezdőlapját. A bal oldali menüben válassza a Termékek lehetőséget a Webes API-ból beszerzett katalógus megtekintéséhez.
  9. A hibakeresés leállításához zárja be a böngészőt.

  1. Indítsa el Visual Studio Code, és nyissa meg a klónozott mappát. A terminálon, ahol klónozta az adattárat, futtassa a következő parancsot:

    Bash
    code .
    
  2. Válassza a Futtatás és hibakeresés menüelemet, vagy nyomja le Ctrl+Shift+Dbillentyűkombinációt.

  3. Válassza ki a hozzon létre egy launch.json fájlt hivatkozást.

    Visual Studio Code: Futtatás és hibakeresés hozzák létre a launch.json fájlt.

  4. Másolja és illessze be a következőt ebbe a fájlba: JSON, majd mentse el.

    JSON
    {
        "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. A megoldás hibakereséséhez nyomja le F5 vagy válassza a Startlehetőséget.

  6. Két oldal nyílik meg a böngészőben:

    • Egy oldal JSON formátumban jeleníti meg a termékeket egy hívás eredményeként a Termékek Web API-ból.
    • Egy oldal megjeleníti a webhely kezdőlapját. A bal oldali menüben válassza a Termékek lehetőséget a Webes API-ból beszerzett katalógus megtekintéséhez.
  7. A hibakeresés leállításához zárja be a böngészőt, majd válassza a leállítása gombot kétszer (minden futó hibakeresési példány esetében egyszer).


  1. Nyisson meg egy terminálablakot, és módosítsa a könyvtárakat az újonnan klónozott adattárba.

  2. A Termékek alkalmazás elindításához futtassa a következő parancsot:

    .NET CLI
    dotnet run --project ./Products/Products.csproj
    
  3. Megnyílik egy böngészőlap, amely a termékek JSON értékét jeleníti meg.

  4. Egy külön terminálablakban módosítsa ismét a könyvtárakat klónozott adattárra.

  5. Indítsa el a Store alkalmazást az alábbi parancs futtatásával:

    .NET CLI
    dotnet run --project ./Store/Store.csproj
    
  6. A böngésző megnyit egy lapot, amely megjeleníti a webhely kezdőlapját. A bal oldali menüben válassza a Termékek lehetőséget a Webes API-ból beszerzett katalógus megtekintéséhez.

  7. A hibakeresés leállításához zárja be a böngészőt, és nyomja le a Ctrl+C mindkét terminálon.

.NET .NET Aspire hozzáadása a Store webalkalmazáshoz

Regisztráljuk most az Store projektet, amely a webes felhasználói felületet valósítja meg, az .NET.NET Aspire orchestráció keretében.

  1. A Visual StudioMegoldáskezelő területén kattintson jobb gombbal a Store projektre, válassza a Hozzáadás, majd a .NET.NET Aspire Vezénylő Támogatás lehetőséget.

  2. Az Add .NET.NET Aspire Orchestrator támogatási párbeszédpanelben kattintson az OKgombra.

    Képernyőkép az Orchestrator-támogatás hozzáadásának párbeszédpaneléről.

Most két új projektnek kell lennie, mindkettőt hozzá kell adni a megoldáshoz:

  • eShopLite.AppHost: Az alkalmazás különböző projektjeinek és szolgáltatásainak összekapcsolására és konfigurálására tervezett vezénylőprojekt. Az orchestrator van beállítva Kezdő projektként, és függ a eShopLite.Store projekttől.
  • eShopLite.ServiceDefaults: Egy .NET.NET Aspire megosztott projekt, amely kezeli a projektekben újrahasznosított konfigurációkat az ön megoldásában, a rugalmasság, szolgáltatásfelderítés és telemetria terén.

Az eShopLite.AppHost projektben nyissa meg a Program.cs fájlt. Figyelje meg ezt a kódsort, amely regisztrálja a Store projektet a .NET.NET Aspire vezénylésben:

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

További információ: AddProject.

Add hozzá a Termékek projektet a .NET.NET Aspire-hoz/-hez/-höz:

  1. A Visual StudioMegoldáskezelőterületén kattintson a jobb gombbal a Termékek projektre, válassza a hozzáadása, majd a .NET.NET Aspire Orchestrator támogatásilehetőséget.

  2. Egy párbeszédpanel, amely jelzi, hogy .NET.NET Aspire Orchestrator-projekt már létezik, válassza az OK, lehetőséget.

    Képernyőkép arról, hogy a.NET.NET Aspire Orchestrator már hozzá lett adva.

Az eShopLite.AppHost projektben nyissa meg a Program.cs fájlt. Figyelje meg ezt a kódsort, amely regisztrálja a Termékek projektet a .NET.NET Aspire koordinációban:

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

Azt is megfigyelheti, hogy az eShopLite.AppHost projekt mostantól a Store és Termékek projektektől is függ.

Alkalmazásgazdaprojekt létrehozása

A meglévő projektek vezényléséhez létre kell hoznia egy új alkalmazásgazda projektet. Ha új alkalmazásgazda projektet szeretne létrehozni az elérhető .NET Aspire sablonokból, használja a következő .NET CLI-parancsot:

.NET CLI
dotnet new aspire-apphost -o eShopLite.AppHost

Adja hozzá a alkalmazásgazda projektet a meglévő megoldáshoz:

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

Adja hozzá a Store projektet projekthivatkozásként az alkalmazásgazda projekthez az alábbi .NET PARANCSSOR-paranccsal:

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

Alapértelmezett szolgáltatásprojekt létrehozása

Az alkalmazásgazdaprojekt létrehozása után létre kell hoznia egy új szolgáltatás alapértelmezett projektet. Új szolgáltatás alapértelmezési projekt létrehozásához az elérhető .NET Aspire sablonokból használja a következő .NET CLI parancsot:

.NET CLI
dotnet new aspire-servicedefaults -o eShopLite.ServiceDefaults

A projekt megoldáshoz való hozzáadásához használja a következő .NET parancssori felület parancsot:

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

Frissítse a alkalmazásgazda projektet, hogy projekthivatkozást adjon hozzá a Termékek projekthez:

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

A Store és a Termékek projekt projekteknek is hivatkozniuk kell a szolgáltatás alapértelmezettjeinek projektjére, hogy könnyen belefoglalhassák a szolgáltatás felfedezését. Ha az szolgáltatás alapértelmezett-projektre szeretne hivatkozni a Store projektben, használja a következő .NET parancssori felület parancsot:

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

A Termékek projektben az alapértelmezett szolgáltatásra mutató hivatkozás hozzáadásához ugyanazt a parancsot kell használni, amely kissé eltérő elérési utakat tartalmaz:

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

A Store és Termékek projektekben frissítse a Program.cs fájlokat, és közvetlenül a var builder = WebApplication.CreateBuilder(args); sor után adja hozzá a következő sort:

C#
builder.AddServiceDefaults();

Az alkalmazásgazdaprojekt frissítése

Nyissa meg a Program.cs projekt fájlját, és cserélje le a tartalmát a következő C#-kódra:

C#
var builder = DistributedApplication.CreateBuilder(args);

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

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

builder.Build().Run();

Az előző kód:

  • Létrehoz egy új DistributedApplicationBuilder-példányt.
  • Hozzáadja a Store projektet az orchestratorhoz.
  • Hozzáadja a Termékek projektet az orchestrátorhoz.
  • Létrehozza és futtatja az orchestrátort.

Szolgáltatásfelderítés

Ezen a ponton mindkét projekt .NET.NET Aspire vezénylés része, de a Store projektnek a Termékek háttércímre kell támaszkodnia .NET.NET Aspireszolgáltatásfelderítésikeresztül. A szolgáltatásfelderítés engedélyezéséhez nyissa meg a Program.cs fájlt az eShopLite.AppHost projektben, és frissítse a kódot, hogy a builder a Termékek projektre mutató hivatkozást adjon hozzá:

C#
var builder = DistributedApplication.CreateBuilder(args);

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

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

builder.Build().Run();

Az előző kód azt fejezi ki, hogy a Store projekt a Termékek projekttől függ. További információ: .NET.NET Aspire alkalmazásgazda: Referenciaerőforrások. Ez a hivatkozás a Termékek projekt futásidejű címének felderítésére szolgál. Emellett a Store projekt külső HTTP-végpontok használatára van konfigurálva. Ha később úgy dönt, hogy telepíti ezt az alkalmazást, szüksége lesz a WithExternalHttpEndpoints hívására annak biztosításához, hogy az nyilvános legyen a külvilág számára.

Ezután frissítse a appsettings.json a Store projektjében a következő JSON-re:

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

A két végpont címei mostantól a „products” nevet használják, amelyet hozzáadtak a vezérlőhöz az alkalmazásgazda. Ezek a nevek a Termékek projekt címének felderítésére szolgálnak.

A regisztrált alkalmazás felfedezése

Kezdjük el a megoldást, és vizsgáljuk meg a .NET.NET Aspire által biztosított új viselkedést.

Megjegyzés

Vegye észre, hogy az eShopLite.AppHost projekt az új indítási projekt.

  1. A Visual Studiohibakeresés indításához és a projektek építéséhez nyomja le az F5Visual Studio billentyűt.
  2. Ha megjelenik az Indítás Docker Asztal párbeszédpanel, válassza Igenlehetőséget. Visual Studio elindítja a Docker motort, és létrehozza a szükséges tárolókat. Amikor az üzembe helyezés befejeződött, megjelenik a .NET.NET Aspire irányítópult.
  3. Az irányítópulton válassza ki a projekt számára a típusú termékek végpontját. Megjelenik egy új böngészőlap, amely JSON formátumban jeleníti meg a termékkatalógust.
  4. Az irányítópulton válassza ki a tároló projekt végpontját. Megjelenik egy új böngészőlap, amely megjeleníti a webalkalmazás kezdőlapját.
  5. A bal oldali menüben válassza a Termékeklehetőséget. Megjelenik a termékkatalógus.
  6. A hibakeresés leállításához zárja be a böngészőt.

Törölje a korábban létrehozott launch.json fájlt, az már nem szolgál célként. Ehelyett indítsa el a alkalmazásgazda projektet, amely a többi projektet vezényli:

  1. Indítsa el a app host projektet jobb kattintással az eShopLite.AppHost projekten a Megoldáskezelőben, és válassza a Hibakeresés>Új példány indítása:

    Visual Studio Code: A Megoldáskezelő a Hibakeresés > Új példány indítása lehetőséget választja.

    Megjegyzés

    Ha Docker Desktop (vagy Podman) nem fut, hibaüzenet jelenik meg. Indítsa el az OCI-kompatibilis tárolómotort, és próbálkozzon újra.

  1. Indítsa el a alkalmazásgazda projektet az alábbi parancs futtatásával:

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

    Megjegyzés

    Ha Docker Desktop (vagy Podman) nem fut, hibaüzenet jelenik meg. Indítsa el az OCI-kompatibilis tárolómotort, és próbálkozzon újra.

  1. Az irányítópulton válassza ki a projekt számára a típusú termékek végpontját. Megjelenik egy új böngészőlap, amely JSON formátumban jeleníti meg a termékkatalógust.
  2. Az irányítópulton válassza ki a tároló projekt végpontját. Megjelenik egy új böngészőlap, amely megjeleníti a webalkalmazás kezdőlapját.
  3. A bal oldali menüben válassza a Termékeklehetőséget. Megjelenik a termékkatalógus.
  4. A hibakeresés leállításához zárja be a böngészőt.

Gratulálunk, .NET.NET Aspire orkestrációt adott hozzá a már meglévő webalkalmazásához. Mostantól hozzáadhat .NET Aspire integrációkat, és a .NET Aspire eszközzel egyszerűsítheti a natív felhőbeli webalkalmazás-fejlesztést.