Szerkesztés

Share via


Gridwich-projekt elnevezése és névterei

Azure Functions

A Gridwich egy több projektből álló .NET 6-os megoldás. Fontos, hogy a kódprojektek elnevezési konvencióval rendelkezzenek az alkalmazás szerkezetének megértéséhez, a megfelelő kód gyors megtalálásához és a projektelnevezésben a kerékpárelnevezés csökkentéséhez.

A Gridwich rendszer három fő összetevőből áll, CoreHost.FunctionAppés SagaParticipants.

  • A Core projekt rendszerszintű interfészekkel, modellekkel, adatátviteli objektumokkal (DTO-kkal) és alaposztályokkal rendelkezik.

    Core.{Technology} a projektek rendelkeznek a különböző képesség-implementációk által használt ügyfélosztályokkal és alapfunkciókkal.

  • A Host.FunctionApp projekt a teljes rendszer nyilvános felülete.

  • SagaParticipants a projektek olyan külső funkciókkal rendelkeznek, mint az elemzés, a kódolás, a közzététel és a tárolás.

    SagaParticipants.{Capability} a projektek ismertetik azokat a felületeket, kivételeket és eseményeket, amelyeket egy képesség létrehoz.

    SagaParticipants.{Capability}.{Technology} a projektek tényleges képesség-implementációt, eseményfigyelőket és képességspecifikus funkciókat biztosítanak.

A Gridwich Technology egy képesség vagy alapfüggvény tényleges megvalósítása. A {Technology} projektek a használattól függően névtér és SagaParticipants.{Capability} projektnév alatt Core is lehetnek.

Projekt létrehozása

Az új Gridwich-projekt elnevezéséhez a következő döntési fát használhatja:

A kód szerződés, például alaposztályok, interfészek, modellek vagy DTO-k vagy szolgáltatásbővítmény?

  • Igen: A kód egy adott kapacitáshoz vagy szolgáltatáshoz kapcsolódik?

    • Igen: Gridwich.SagaParticipants.{Capability}
    • Nem: Gridwich.Core
  • Nem: A kód egy eseményfigyelőhöz vagy egy adott technológia implementálásához kapcsolódik?

    • Igen: Több szolgáltatás is használja a kódot?

      • Igen, például egy SDK-burkoló: Gridwich.Core.{Technology}
      • Nem: Gridwich.SagaParticipants.{Capability}.{Technology}
    • Nem: A kód egy adott képességhez kapcsolódik?

      • Igen: Gridwich.SagaParticipants.{Capability}

      • Nem: A kód Egy Azure-függvényalkalmazás végpontja?

        • Igen: Gridwich.Host.FunctionApp
        • Nem: Gridwich.Core

Projektstruktúra

Mindegyik csomagnak két gyermek alkönyvtára van:

  • src a nem tesztelési éles kódot tartalmazza.
  • tests egységteszteket tartalmaz.

Minden projekt rendelkezik alkönyvtárral tests , de ha nincs egységteszt egy csomaghoz, a könyvtár üres lehet.

A két alkönyvtár mindegyike tartalmazza a kód létrehozásához szükséges C# vagy más fájlokat, valamint egy .csproj fájlt. A .csproj fájlnév a csomag nevét követi, például:

  • Gridwich.Host.FunctionApp/src/Gridwich.Host.FunctionApp.csproj
  • Gridwich.Host.FunctionApp/tests/Gridwich.Host.FunctionAppTests.csproj

A csomagok által használt kódnévterek szintén ezt az egyezményt követik, például:

  • Gridwich.Host.FunctionApp
  • Gridwich.Host.FunctionAppTests

A buildelési és tesztelési ciklusok során az olyan átmeneti könyvtárak, mint a bin, objés TestResults megjelennek, amelyek nem tartalmaznak git-jogosult összetevőket. A dotnet clean feldolgozás törli ezeket az átmeneti könyvtárakat.

Projektnevek és névterek

A Gridwich-projektnevek és -névterek a következő jellemzőkkel rendelkeznek.

Core és SagaParticipants Technológiai névterek

Gridwich.Core.{Technology}névterek nem tartalmazzák a technológia célját, főként a kerékpár-fásítás elkerülése érdekében. Core A névterek olyan belső projektek, amelyeket SagaParticipants vagy Host.FunctionApp projektek használnak, és nem igényelnek jól definiált neveket.

A projekt Gridwich.Core.Events.EventGridGridwich.Core.Messaging.EventGridlehet például vagy Gridwich.Core.EventGrid . A Core projektnevek azonban már arra utalnak, hogy a technológiák hozzájárulnak az alaprendszerhez.

Egy technológia több módon is hozzájárulhat a rendszerhez. Meghívhatja például a Redist egy adattárnak vagy egy üzenettovábbításnak a használattól függően, de mindig ugyanazt az SDK-burkolót használja.

Gridwich.SagaParticipants.Encode.Flip A Gridwich.SagaParticipants.Encode.CloudPort technológiai névterek a névtér összetevőit Gridwich.SagaParticipants.Encode használják. Ez a kód nem szerepel a névtérben Gridwich.Core.Encode , mert a kódolási feladatokra vonatkozik, és nem lép át más képességekre, például a közzétételre.

SagaParticipants-csomagok

Nem minden Gridwich.SagaParticipants csomag dolgozza fel a külső eseményeket. Egyes csomagok Gridwich.SagaParticipants funkcióval szolgálnak a külső kéréseket feldolgozó többi saga-résztvevő számára.

Gridwich.SagaParticipants.Encode A kódokat több kódolási technológiai csomagban megosztó csomagolás mellett léteznek speciális csomagok is, példáulGridwich.SagaParticipants.Encode.TelestreamCloud. A Telestream csomag hozzáférést biztosít a Gridwich számára egy külső Vantage Telestream rendszerhez. A Flip és a CloudPort saga résztvevői a Telestream csomag használatával biztosítják a saját kérésfeldolgozást.

Csomagnevek és egyéb névterek

Az utasítások minimálisra állítása using érdekében a Gridwich nem korlátozza a csomag tartalmát arra a névtérre, amelyet a csomag neve jelez. Egyes csomagok entitásokat adnak hozzá más névterekhez. A csomag Gridwich.Core.Tests például hozzájárul az osztályhoz Gridwich.Core.Helpers.TestHelpers .

Az egyes csomagok azonban létrehoznak egy DLL-t, amely megfelel az éles kód srccsomagnevének, és ha vannak ilyenek, az egységtesztek DLL-jei.tests A teszt DLL neve megegyezik a csomag nevével, de utótaggal Tests .

Következő lépések

Termékdokumentáció:

Microsoft Learn-modulok: