Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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ástscenario-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:
- 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.
- Azonosítja a projektek szempontjából releváns forgatókönyveket.
- 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:
- Betölti a kapcsolódó készségeket és kontextust.
- Az összetettség felmérése és annak eldöntése, hogy a tevékenységnek altevékenységekre van-e szüksége.
- Hatókör-összegzést ír a fájlba
tasks/{taskId}/task.md. - Kódmódosításokat hajt végre.
- Ellenőrzi a folyamatot építések és tesztek futtatásával.
- Az eredményeket rögzíti:
tasks/{taskId}/progress-details.md. - 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:
- A következő interakció során az ügynök automatikusan ellenőrzi a munkaterület aktuális állapotát.
- 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".
- 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.
- 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.