GitHub Copilot modernizációs fogalmak

GitHub Copilot modernizálás strukturált megközelítést alkalmaz .NET projektek frissítéséhez. Az ügynök működésének megértése, beleértve a forgatókönyveket, a készségeket, a feladatokat és a munkafolyamatokat, segít hatékonyan együttműködni az ügynökkel, és a legjobb eredményeket elérni.

Jótanács

Képzelje el az ügynököt olyan képzett munkatársként, aki mélységesen megérti .NET, egy strukturált tervet követ, és alkalmazkodik a visszajelzéséhez. Minél több kontextust ad, annál jobban teljesít az ügynök.

Az ügynök csapattagként

Az ügynök az együttműködésben jeleskedik, nem pedig az automatizálásban a vákuumban:

  • Deep .NET tudás: Az ügynök átfogó ismeretekkel rendelkezik a projektfájlok, a NuGet-függőségek, a kompatibilitástörő változtatások és a frissítési minták terén több tucat .NET technológia esetében, mind C# és Visual Basic projekteknél.
  • Strukturált munkafolyamat: Minden frissítés az értékelésen, a tervezésen és a végrehajtáson megy keresztül. Nincsenek véletlenszerű változások, nincsenek meglepetések.
  • Megismeri a beállításokat: Amikor azt mondja, hogy "mindig explicit típusokat használjon ahelyett var," az ügynök ezt a beállítást scenario-instructions.md írja, és a munkamenetek során megjegyzi.
  • Repülés közben javítható: Rossz döntést hozott? Mondja el az ügynöknek. Ezután alkalmazkodik és alkalmazza a korrekciót.
  • A magyarázat magyarázata: Kérdezze meg , hogy "miért választotta ezt a megközelítést?" , és az ügynök végigvezeti a döntésen.

Lehetséges helyzetek

A forgatókönyv egy felügyelt, végpontok közötti modernizálási munkafolyamat. Amikor azt mondja az ügynöknek, hogy "frissítsem a megoldásomat .NET 10-re", a .NET version upgrade forgatókönyvet aktiválja.

A forgatókönyvek felderítésének menete

Nem kell megjegyeznie a forgatókönyvek nevét. Az ügynök automatikusan felderíti a releváns forgatókönyveket:

  1. Elemzi a kódbázist, hogy megértse, milyen technológiákat használ, beleértve a nyelvet, a keretrendszer verzióját, a kódtárakat és a projekttípusokat.
  2. Azonosítja a projektek szempontjából releváns forgatókönyveket.
  3. Fontosság és súly szerint rangsorolja a forgatókönyveket. A legrelevánsabbak először tűnnek fel.

Közvetlenül is felteheti a kérdést: "Milyen forgatókönyvek érhetők el a megoldásomhoz?"

Forgatókönyv-perzisztencia

Minden aktív forgatókönyv saját mappát kap a következő helyen .github/upgrades/{scenarioId}/: . A forgatókönyv mappája tartalmazza a tervet, a tevékenység előrehaladását, a beállításokat és a végrehajtási naplókat. A mappa a Git-adattár része.

A forgatókönyvek teljes listáját a Forgatókönyvek és a készségek referenciája című témakörben találja.

A munkafolyamat életciklusa

Minden forgatókönyv ugyanazt az életciklust követi: egy háromfázisú munkafolyamatot.

1. szakasz: Értékelés

Az ügynök mindent összegyűjt, amire szüksége van a munka megkezdése előtt:

  • Cél keretrendszer: Az a verzió, amelyre frissít.
  • Git-stratégia: Az ügynök elágaztatást javasol, és Ön szabályozza a részleteket: az ág nevét, a tevékenységenkénti ágak használatát és a véglegesítés időzítését.
  • Folyamat mód: Automatikus (az ügynök irányítja) vagy irányított (Ön minden szakaszt jóváhagy).
  • Forgatókönyvspecifikus paraméterek: A forgatókönyvtől függően az ügynök további kérdéseket tehet fel.

Az ügynök inicializálja a forgatókönyv-munkaterületet a következő helyen .github/upgrades/{scenarioId}/: .

Az ügynök ezután elemzi a kódbázist:

  • Project függőségi gráf (topológiai sorrend)
  • NuGet-csomag kompatibilitása a cél-keretrendszerrel
  • Kompatibilitástörő API-módosítások
  • Tesztlefedettség
  • Összetettség és kockázati tényezők

Az ügynök egy átfogó értékelési jelentést menti a következő helyre assessment.md.

Az értékelés alapján az ügynök kiértékeli a megoldást, és azonosítja, hogy mely frissítési döntések relevánsak. Ésszerű alapértelmezett értékeket jelenít meg, és lehetővé teszi a választási lehetőségek áttekintését és felülbírálását.

A lehetőségek közé tartozhatnak a következők:

  • Frissítési stratégia: Alulról felfelé, felülről lefelé vagy mind egyszerre.
  • Projektfrissítési megközelítés: Webalkalmazások helybeni átírása vagy párhuzamos használata; kódtárak helybeni vagy több célpontú célzása.
  • Technológia korszerűsítése: Az Entity Framework frissítésére, a függőséginjektálásra, a naplózásra és a konfigurációra vonatkozó lehetőségek.
  • Csomagkezelés: A központi csomagkezelés bevezetésének és időpontjának megadása.
  • Kompatibilitás kezelése: Nem támogatott API-k és csomagok kezelése.

Az ügynök a megerősített döntéseket a következőre upgrade-options.mdmenti: .

Irányított módban az ügynök itt megáll, hogy Ön áttekintse, mielőtt továbblép.

2. szakasz: Tervezés

Az ügynök az értékelés és a megerősített lehetőségek alapján hozza létre a feladattervet. A tervezés három fő fájlt hoz létre:

  • plan.md: A frissítési terv stratégiával és tevékenységleírásokkal.
  • scenario-instructions.md: Az Ön preferenciái, döntései és az ügynök memóriája.
  • tasks.md — Az ügynök által végrehajtandó feladatok rendezett listája.

3. szakasz: Végrehajtás

Az ügynök egymás után hajtja végre a feladatokat. Az ügynök minden tevékenységhez tasks.mdegy ciklust követ: indítás, végrehajtás, ellenőrzés (létrehozás és tesztelés) és befejezés. Szabályozhatja, hogy az ügynök mikor és hogyan véglegesítse a módosításokat: tevékenységenként, tevékenységcsoportonként vagy a végén. Az ügynök munkája közben a tasks.md élő állapotjelzőkkel frissül, így nyomon követheti az előrehaladást.

Frissítési stratégiák

Az értékelési szakaszban az ügynök kiértékeli a megoldást, és az alábbi stratégiák egyikét javasolja:

Stratégia A következőkre alkalmas Hogyan működik?
Alulról felfelé Nagy megoldások mély függőségi gráfokkal Kezdje a levélprojektekkel (függőségek nélkül), dolgozzon felfelé.
Felülről lefelé Gyors visszajelzés a fő alkalmazásról Kezdje az alkalmazásprojekttel, és szükség szerint javítsa ki a függőségeket.
Egyszerre Kicsi, egyszerű megoldások Frissítsen mindent egy lépésben.

Jótanács

Az ügynök csak a projekt szempontjából releváns döntéseket jeleníti meg. Az egyszerű konzolalkalmazások nem látják a webes keretrendszer választási lehetőségeit, és az Entity Framework nélküli projektek nem látják az adatbázis-frissítési lehetőségeket.

Készségek

A készségek kisebb, célzott modernizációs képességek. Amikor az ügynök EF6-kóddal találkozik a frissítés során, betölti az EF6-EF-Core készséget részletes, lépésről lépésre frissítési utasításokkal. Egy képesség meghívása közvetlenül a frissítés során: "a projekt WCF-szolgáltatásainak frissítése a CoreWCF-re".

Az ügynök több mint 30 beépített képességgel rendelkezik, melyek domainek szerint vannak szervezve.

  • Adathozzáférés: EF6-ról EF Core-ra (kódelső és EDMX), LINQ-ról SQL-re és SqlClient-frissítésre
  • Web/ASP.NET: Identity, Global.asax, OWIN, MVC routing/szűrők/csomagolás és WCF átalakítása CoreWCF-re
  • Szerializációs: Newtonsoft.Json to System.Text.Json
  • Cloud: Átmenet az Azure Functions in-process modellből az izolált feldolgozói modellbe
  • Könyvtárak: ADAL–MSAL, SignalR, PowerShell SDK és egyebek

A képességek automatikusan betöltődnek, amikor egy program észleli azokat a kódbázisban. Nem kell kezelnie a képességbetöltést. Csak írja le, hogy mire van szüksége.

A teljes listát a Forgatókönyvek és a készségek referenciája című témakörben találja.

Tevékenységek

A feladatok atomi munkaegységei egy forgatókönyvben. Minden feladat a frissítés egy meghatározott, határolt részét jelöli, például a "CommonLib frissítése .NET 6-ról .NET 10-re" vagy "Ef6-használat frissítése a DataLayerben EF Core-ra".

Tevékenység életciklusa

A feladatok az alábbi állapotokon haladnak át:

  • Elérhető: Készen áll a kezdésre, minden függőség teljesült.
  • Folyamatban: Az ügynök aktívan dolgozik a feladaton.
  • Befejezett: Kódmódosítások alkalmazva, build sikeres, tesztelések sikeresek.

Minden tevékenységhez az ügynök:

  1. Betölti a kapcsolódó készségeket és kontextust.
  2. Az összetettség felmérése és annak eldöntése, hogy a tevékenységnek altevékenységekre van-e szüksége.
  3. Hatókör-összegzést ír a fájlba tasks/{taskId}/task.md.
  4. Kódmódosításokat hajt végre.
  5. Ellenőrzi a folyamatot építések és tesztek futtatásával.
  6. Az eredményeket rögzíti: tasks/{taskId}/progress-details.md.
  7. Véglegesíti a módosításokat, és a következő tevékenységre lép.

Állapotkezelés

Az ügynök állandó állapotot tart fenn, így bármikor megszakíthatja és folytathatja a munkát. Minden az adattárban .github/upgrades/{scenarioId}/ alatt él.

fájl Alkalmazás célja
scenario-instructions.md Az Ön beállításai, döntései és egyéni utasításai. Az ügynök állandó memóriája.
upgrade-options.md Megerősített frissítési döntések
plan.md A frissítési terv stratégiával és tevékenységleírásokkal
tasks.md Feladatállapotokat mutató vizuális irányítópult
execution-log.md Az összes változás és döntés részletes naplója
tasks/{taskId}/task.md Tevékenységenkénti hatókör és környezet
tasks/{taskId}/progress-details.md Feladatonkénti végrehajtási jegyzetek és eredmények

Resumálhatóság

Zárja be a csevegést, zárja be az IDE-t, vagy térjen vissza másnap. Az ügynök ott veszi fel, ahol abbahagyta:

  1. A következő interakció során az ügynök automatikusan ellenőrzi a munkaterület aktuális állapotát.
  2. Az ügynök észleli a meglévő forgatókönyvet, és megjeleníti az aktuális előrehaladást, például "8 elvégzett tevékenységből 3".
  3. Az ügynök észleli az elavult feladatokat (egy korábbi megszakított munkamenet során elakadt), és felajánlja azok folytatását vagy újraindítását.
  4. Az ügynök újra betölti a preferenciákat a következőből: scenario-instructions.md.

Több IDE-t átfogó folytonosság

Mivel az állapot a Gitben található, válthat a VS Code, Visual Studio és Copilot parancssori felület között a frissítés közepén. A .github/upgrades/ mappa az a megosztott állapot, amelyet mindkét IDE-k megértenek.

Jótanács

Véglegesítse a .github/upgrades/ mappát az ágon. Az ág távoli adattárba való leküldésével a csapattagok megtekinthetik az előrehaladást, vagy folytathatják a frissítést egy másik gépen.

Folyamatmódok

Az ügynök két olyan folyamatmódot támogat, amelyek szabályozzák, hogy mennyi felügyelete van: automatikus mód és irányított mód.

Automatikus mód

Az ügynök az összes fázison (értékelés, tervezés és végrehajtás) végig dolgozik anélkül, hogy a jóváhagyást szünetelteti. Felfedi a legfontosabb megállapításokat és az előrehaladási frissítéseket, de folyamatosan halad előre.

Tapasztalt felhasználók, egyszerű frissítések és kis megoldások esetén a legjobb.

Irányított mód

Az ügynök a felülvizsgálat egyes fázishatárainál szünetel:

  • Értékelés után: "Itt van, amit találtam. Folytassam a frissítési lehetőségeket?"
  • Tervezés után: "Itt a feladatterv. Szeretné, ha elkezdenem a végrehajtást?"
  • Összetett tevékenységlebontások előtt: "Ez a tevékenység összetett. Így bontanám le."

Az első felhasználók, az összetett megoldások és a folyamat megismerése esetén a legjobb.

Üzemmódok váltása bármikor

  • Mondja ki a "szünet" vagy a "váltás irányított üzemmódra" szöveget az Irányított módra való váltáshoz.
  • A "folytatás" vagy a "tovább" gombra való váltáshoz váltson automatikus módra.

Jótanács

A munkafolyamat megismeréséhez kezdje az irányított üzemmódot az első frissítéshez, majd váltson automatikusra, ha már jól érzi magát.