koncepty modernizace GitHub Copilot

GitHub Copilot modernizace používá strukturovaný přístup k upgradu .NET projektů. Když pochopíte, jak agent funguje, včetně jeho scénářů, dovedností, úloh a pracovního postupu, pomůže efektivně spolupracovat s agentem a získat nejlepší výsledky.

Návod

Agenta si můžete představit jako zkušený kolega, který rozumí .NET hluboko, řídí se strukturovaným plánem a přizpůsobuje se vašim názorům. Čím více informací poskytnete, tím lépe agent pracuje.

Agent jako člen týmu

Agent exceluje při spolupráci, nikoli automatizaci ve vakuu:

  • Deep .NET knowledge: Agent rozumí souborům projektu, závislostem NuGet, zásadním změnám a vzorům upgradu napříč desítkami technologií .NET pro projekty C# i Visual Basic.
  • Strukturovaný pracovní postup: Každý upgrade prochází posouzením, plánováním a prováděním. Žádné náhodné změny, žádné překvapení.
  • Naučí se vaše předvolby: Když řeknete "vždy používat explicitní typy místo var", agent zapíše tuto předvolbu scenario-instructions.md a pamatuje si ji napříč relacemi.
  • Opravitelný během procesu: Udělali jste špatné rozhodnutí? Řekněte agentovi. Provádí úpravu a aplikuje opravu do budoucna.
  • Vysvětluje jeho odůvodnění: Zeptejte se "proč jste zvolili tento přístup?" a agent vás provede rozhodováním.

Scénáře

Scénář je komplexním spravovaným pracovním postupem modernizace od začátku do konce. Když agentovi řeknete, že se jedná o upgrade řešení na .NET 10, aktivujete scénář .NET version upgrade.

Zjištění scénářů

Nemusíte si pamatovat názvy scénářů. Agent automaticky zjistí relevantní scénáře:

  1. Analyzuje základ kódu, abyste pochopili, jaké technologie používáte, včetně jazyka, verze architektury, knihoven a typů projektů.
  2. Určuje, které scénáře jsou relevantní pro vaše projekty.
  3. Seřadí scénáře podle důležitosti a váhy. Nejrelevantnější se zobrazují jako první.

Můžete se také zeptat přímo: "Jaké scénáře jsou pro moje řešení k dispozici?".

Trvalost scénáře

Každý aktivní scénář získá svou vlastní složku na .github/upgrades/{scenarioId}/adrese . Složka scénáře obsahuje plán, průběh úkolu, předvolby a protokoly spuštění. Složka je součástí vašeho úložiště Git.

Úplný seznam scénářů najdete v tématu Scénáře a referenční informace o dovednostech.

Životní cyklus pracovního postupu

Každý scénář se řídí stejným životním cyklem: třífázový pracovní postup.

Fáze 1: Posouzení

Agent před zahájením práce shromažďuje vše, co potřebuje:

  • Cílová architektura: Verze, na kterou upgradujete.
  • Strategie Gitu: Agent navrhuje větvení a řídíte podrobnosti: název větve, jestli se mají používat větve pro jednotlivé úlohy a časování potvrzení.
  • Režim toku: Automatický (agent řídí) nebo Průvodce (schvalujete každou fázi).
  • Parametry specifické pro scénář: V závislosti na scénáři může agent klást další otázky.

Agent inicializuje pracovní prostor scénáře na adrese .github/upgrades/{scenarioId}/.

Agent pak analyzuje základ kódu:

  • graf závislostí projektu (topologické pořadí)
  • Kompatibilita balíčků NuGet s cílovou architekturou
  • Zásadní změny rozhraní API
  • Pokrytí testů
  • Složitost a rizikové faktory

Agent uloží komplexní zprávu o posouzení do assessment.md.

Na základě posouzení agent vyhodnocuje vaše řešení a identifikuje, která rozhodnutí o upgradu jsou relevantní. Představuje rozumné výchozí hodnoty a umožňuje zkontrolovat a přepsat jakoukoli volbu.

Mezi možnosti může patřit:

  • Strategie upgradu: Zdola nahoru, shora dolů nebo najednou.
  • Přístup k upgradu projektu: Místní přepsání nebo paralelní instalace pro webové aplikace; místní instalace nebo více cílů pro knihovny.
  • Modernizace technologií: Volby pro upgrade entity Framework, injektáž závislostí, protokolování a konfiguraci
  • Správa balíčků: Zda a kdy přijmout centrální správu balíčků.
  • Zpracování kompatibility: Jak řešit nepodporovaná rozhraní API a balíčky

Agent ukládá potvrzená rozhodnutí do upgrade-options.md.

V režimu s asistencí se agent před pokračováním pozastaví pro vaši kontrolu.

Fáze 2: Plánování

Agent vytvoří plán úloh na základě posouzení a potvrzených možností. Plánování vytvoří tři klíčové soubory:

  • plan.md: Plán upgradu s popisy strategií a úkolů.
  • scenario-instructions.md: Vaše preference, rozhodnutí a paměť agenta.
  • tasks.md – Seřazený seznam úkolů, které agent provede.

Fáze 3: Provádění

Agent pracuje postupně mezi úlohami. Pro každou úlohu v tasks.md, agent následuje cyklus: spuštění, provedení, ověření (sestavení a testování) a dokončení. Řídíte, kdy a jak agent potvrdí změny: na každou úlohu, na skupinu úloh nebo na konci. Agent během své činnosti aktualizuje tasks.md pomocí indikátorů aktuálního stavu, abyste mohli sledovat průběh.

Strategie upgradu

Během fáze posouzení agent vyhodnotí vaše řešení a doporučí jednu z těchto strategií:

Strategie Nejvhodnější pro Jak to funguje
Zdola nahoru Rozsáhlá řešení s hlubokými grafy závislostí Začněte s projekty typu list (bez závislostí) a pokračujte vzhůru.
Shora dolů Rychlá zpětná vazba k hlavní aplikaci Začněte projektem aplikace a podle potřeby opravte závislosti.
Vše najednou Malá, jednoduchá řešení Upgradujte všechno v jednom kroku.

Návod

Agent zobrazí pouze rozhodnutí, která jsou pro váš projekt relevantní. Jednoduchá konzolová aplikace nevidí volby webové architektury a projekt bez entity Framework nevidí možnosti upgradu databáze.

Kvalifikace

Dovednosti jsou menší, cílené možnosti modernizace. Když agent během upgradu narazí na kód EF6, načte dovednost EF6-to-EF-Core s podrobnými pokyny pro upgrade krok za krokem. Vyvolání dovednosti přímo během upgradu: "Upgrade služeb WCF v mém projektu na CoreWCF"

Agent se dodává s 30 a více integrovanými dovednostmi uspořádanými podle domény:

  • Přístup k datům: upgrade EF6 na EF Core (code-first a EDMX), LINQ to SQL a SqlClient
  • Web/ASP.NET: Identity, Global.asax, OWIN, směrování/filtry MVC/sdružování a WCF do CoreWCF
  • Serializace: Newtonsoft.Json na System.Text.Json
  • Cloud: Azure Functions ve vlastním procesu k izolovanému modelu pracovníka
  • Knihovny: ADAL pro MSAL, SignalR, PowerShell SDK a další

Dovednosti se načítají automaticky na základě toho, co agent zjistí ve vašem základu kódu. Nemusíte řídit načítání schopností. Popište, co potřebujete.

Úplný seznam najdete v referenčních informacích ke scénářům a dovednostem.

Úlohy

Úkoly jsou atomické jednotky práce v rámci scénáře. Každý úkol představuje konkrétní, ohraničenou část upgradu, například „Upgradovat CommonLib z .NET 6 na .NET 10“ nebo „Upgradovat využití EF6 v datové vrstvě na EF Core“.

Životní cyklus úkolů

Úkoly přecházejí mezi těmito stavy:

  • K dispozici: Připraveno ke spuštění, všechny závislosti byly splněny.
  • Probíhá: Agent aktivně pracuje na úloze.
  • Dokončeno: Změny kódu aplikovány, sestavení prošlo, testy prošly.

Pro každou úlohu agent:

  1. Načte související dovednosti a kontext.
  2. Posuzuje složitost a rozhoduje, jestli úkol potřebuje dílčí úkoly.
  3. Zapíše souhrn oboru do tasks/{taskId}/task.md.
  4. Provede změny kódu.
  5. Spustí sestavení a testy k ověření.
  6. Zaznamenává výsledky v tasks/{taskId}/progress-details.md.
  7. Potvrdí změny a přesune se na další úkol.

Správa stavu

Agent udržuje trvalý stav, abyste ho mohli kdykoli zastavit a obnovit. Všechno se nachází v úložišti pod .github/upgrades/{scenarioId}/.

Soubor Purpose
scenario-instructions.md Vaše preference, rozhodnutí a vlastní pokyny. Trvalá paměť agenta.
upgrade-options.md Potvrzená rozhodnutí o upgradu
plan.md Plán upgradu s popisy strategií a úkolů
tasks.md Řídicí panel vizuálního průběhu zobrazující stav úkolu
execution-log.md Podrobný protokol všech změn a rozhodnutí
tasks/{taskId}/task.md Rozsah a kontext pro jednotlivé úkoly
tasks/{taskId}/progress-details.md Poznámky ke spuštění jednotlivých úkolů a výsledky

Obnovitelnost

Zavřete chat, zavřete integrované vývojové prostředí nebo se vraťte další den. Agent pokračuje tam, kde skončil.

  1. Při další interakci agent automaticky zkontroluje aktuální stav vašeho pracovního prostoru.
  2. Agent zjistí existující scénář a zobrazuje aktuální průběh, například 3 z 8 dokončených úloh.
  3. Agent detekuje zaseknuté úlohy (zaseklé během předchozí přerušené relace) a nabízí jejich obnovení nebo restartování.
  4. Agent znovu načte vaše předvolby z scenario-instructions.md.

Kontinuita napříč integrovanými vývojovými prostředími

Jelikož je stav uložený v Gitu, můžete přepínat mezi VS Code, Visual Studio a Copilot CLI během aktualizace. Složka .github/upgrades/ je sdílený stav, kterému obě prostředí IDE rozumí.

Návod

Potvrďte složku .github/upgrades/ do své větve. Odešlete větev do vzdáleného úložiště, aby členové týmu mohli sledovat průběh nebo pokračovat v upgradu na jiném počítači.

Režimy toku

Agent podporuje dva režimy toku, které řídí, kolik dohledu máte: automatický režim a režim s asistencí.

Automatický režim

Agent pracuje ve všech fázích (posouzení, plánování a provádění) bez přerušení kvůli schválení. Zobrazuje klíčová zjištění a pokrokové aktualizace, ale pokračuje dál.

Nejvhodnější pro zkušené uživatele, jednoduché upgrady a malá řešení.

Režim s asistencí

Agent se zastaví na každé hranici fáze pro vaši kontrolu.

  • Po posouzení: "Tady je to, co jsem našel. Mám pokračovat v možnostech upgradu?"
  • Po naplánování: "Tady je plán úkolu. Chcete, abych začal spouštět?"
  • Před rozdělením složitých úkolů: "Tento úkol je složitý. Takhle bych to rozložil."

Nejlepší pro nové uživatele, složitá řešení a pokud se chcete naučit proces.

Přepnout režimy kdykoli

  • Pokud chcete přepnout do režimu s asistencí, řekněte "pause" nebo "switch to guided".
  • Pokud chcete přepnout do automatického režimu, řekněte "continue" nebo "go ahead" (pokračovat ).

Návod

Začněte s režimem s asistencí pro první upgrade, abyste porozuměli pracovnímu postupu, a až budete spokojení, přepněte na automatické.