Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
GitHub Copilot modernisering maakt gebruik van een gestructureerde benadering om .NET projecten te upgraden. Als u begrijpt hoe de agent werkt, met inbegrip van de scenario's, vaardigheden, taken en werkstroom, kunt u effectief samenwerken met de agent en de beste resultaten krijgen.
Aanbeveling
Denk aan de agent als ervaren collega die .NET diep begrijpt, een gestructureerd plan volgt en zich aanpast aan uw feedback. Hoe meer context u geeft, hoe beter de agent presteert.
De agent als teamgenoot
De agent excelleert bij samenwerking, niet automatisering in een vacuüm:
- Diepe .NET kennis: De agent begrijpt projectbestanden, NuGet-afhankelijkheden, belangrijke wijzigingen en upgradepatronen in tientallen .NET-technologieën, zowel voor C# als voor Visual Basic projecten.
- Gestructureerde werkstroom: Elke upgrade doorloopt evaluatie, planning en uitvoering. Geen willekeurige wijzigingen, geen verrassingen.
-
Meer informatie over uw voorkeuren: Wanneer u 'altijd expliciete typen gebruiken in plaats van
var', schrijft de agent die voorkeur naarscenario-instructions.mden onthoudt deze over sessies. - Corrigeerbaar tijdens de vlucht: Heeft u een verkeerde beslissing genomen? Vertel het de agent. De correctie wordt in de toekomst aangepast en toegepast.
- Legt de redenering uit: Vraag 'Waarom hebt u die benadering gekozen?' en de agent begeleidt u bij de beslissing.
Scenariën
Een scenario is een beheerde, end-to-end moderniseringswerkstroom. Wanneer u tegen de agent zegt "upgradet mijn oplossing naar .NET 10", wordt het .NET version upgrade-scenario geactiveerd.
Hoe scenario's worden gedetecteerd
U hoeft geen scenarionamen te onthouden. De agent detecteert automatisch relevante scenario's:
- Analyseert uw codebasis om inzicht te krijgen in welke technologieën u gebruikt, waaronder taal, frameworkversie, bibliotheken en projecttypen.
- Identificeert welke scenario's relevant zijn voor uw projecten.
- Rangschikt scenario's op belang en gewicht. De meest relevante komen eerst voor.
U kunt ook rechtstreeks vragen: 'Welke scenario's zijn beschikbaar voor mijn oplossing?'
Scenariopersistentie
Elk actief scenario krijgt een eigen map op .github/upgrades/{scenarioId}/. De scenariomap bevat de planning, taakvoortgang, uw voorkeuren en uitvoeringslogboeken. De map maakt deel uit van uw Git-opslagplaats.
Zie scenario's en vaardigheden voor een volledige lijst met scenario's.
De levenscyclus van de werkstroom
Elk scenario volgt dezelfde levenscyclus: een werkstroom met drie fasen.
Fase 1: Evaluatie
De agent verzamelt alles wat hij/zij nodig heeft voordat hij/zij aan het werk begint.
- Doelframework: De versie waarnaar u een upgrade uitvoert.
- Git-strategie: De agent stelt vertakking voor en u bepaalt de details: vertakkingsnaam, of u vertakkingen per taak wilt gebruiken en tijdsinstellingen doorvoert.
- Stroommodus: Automatisch (agentgestuurd) of Handmatige goedkeuring (u keurt elke fase goed).
- Scenariospecifieke parameters: Afhankelijk van het scenario kan de agent meer vragen stellen.
De agent initialiseert de scenariowerkruimte op .github/upgrades/{scenarioId}/.
De agent analyseert vervolgens uw codebasis:
- Project-afhankelijkheidsgrafiek (topologische volgorde)
- NuGet-pakketcompatibiliteit met het doelframework
- Belangrijke API-wijzigingen
- Dekking testen
- Complexiteit en risicofactoren
De agent slaat een uitgebreid evaluatierapport op in assessment.md.
Op basis van de evaluatie evalueert de agent uw oplossing en bepaalt welke upgradebeslissingen relevant zijn. Het biedt verstandige standaardwaarden en kunt u elke keuze beoordelen en negeren.
De volgende opties kunnen zijn:
- Upgradestrategie: Onderaan, boven naar beneden of in één keer.
- Project upgradebenadering: In-place herschrijven of side-by-side voor webtoepassingen; in-place of multi-targeting voor bibliotheken.
- Modernisering van technologie: Opties voor Entity Framework-upgrade, afhankelijkheidsinjectie, logboekregistratie en configuratie.
- Pakketbeheer: Of en wanneer central package management moet worden gebruikt.
- Compatibiliteitsafhandeling: Niet-ondersteunde API's en pakketten aanpakken.
De agent slaat bevestigde beslissingen opupgrade-options.md.
In de begeleide modus pauzeert de agent hier voor uw beoordeling voordat hij verder gaat.
Fase 2: Planning
De agent maakt het taakplan op basis van de evaluatie en uw bevestigde opties. Planning produceert drie belangrijke bestanden:
-
plan.md: Het upgradeplan met strategie- en taakbeschrijvingen. -
scenario-instructions.md: Uw voorkeuren, beslissingen en het geheugen van de agent. -
tasks.md— De geordende lijst met taken die de agent uitvoert.
Fase 3: Uitvoering
De agent werkt taken achtereenvolgens af. Voor elke taak in tasks.mdvolgt de agent een cyclus: starten, uitvoeren, valideren (bouwen en testen) en voltooien. U bepaalt wanneer en hoe de agent wijzigingen doorvoert: per taak, per groep taken of aan het einde. Terwijl de agent werkt, werkt het tasks.md bij met livestatusindicatoren, zodat u de voortgang kunt bijhouden.
Upgradestrategieën
Tijdens de evaluatiefase evalueert de agent uw oplossing en wordt een van de volgende strategieën aanbevolen:
| Strategie | Ideaal voor | Hoe werkt het? |
|---|---|---|
| Bottom-up | Grote oplossingen met diepe afhankelijkheidsgrafieken | Begin met bladprojecten (geen afhankelijkheden), werk omhoog. |
| Van boven naar beneden | Snelle feedback over de hoofdtoepassing | Begin met het toepassingsproject en los afhankelijkheden zo nodig op. |
| Alles tegelijk | Kleine, eenvoudige oplossingen | Upgrade alles in één pas. |
Aanbeveling
De agent geeft alleen beslissingen weer die relevant zijn voor uw project. Een eenvoudige console-app ziet geen opties voor webframework en een project zonder Entity Framework ziet geen upgradeopties voor de database.
Vaardigheden
Skills zijn kleinere, gerichte modernisatiemogelijkheden. Wanneer de agent EF6-code tegenkomt tijdens een upgrade, laadt het de EF6-naar-EF-Core-vaardigheid met gedetailleerde, stapsgewijze upgrade-instructies. Roep een vaardigheid rechtstreeks aan tijdens een upgrade: 'upgrade de WCF-services in mijn project naar CoreWCF'.
De agent wordt geleverd met 30+ ingebouwde vaardigheden die zijn georganiseerd op domein:
- Gegevenstoegang: EF6 naar EF Core (code-first en EDMX), LINQ naar SQL en SqlClient-upgrade
- Web/ASP.NET: Identity, Global.asax, OWIN, MVC routing/filters/bundling en WCF naar CoreWCF
- Serialization: Newtonsoft.Json naar System.Text.Json
- Cloud: Azure Functions in-process naar geïsoleerd werkrolmodel
- Bibliotheken: ADAL naar MSAL, SignalR, PowerShell SDK en meer
Vaardigheden worden automatisch geladen op basis van wat de agent detecteert in uw codebasis. U hoeft het laden van vaardigheden niet te beheren. Beschrijf gewoon wat je nodig hebt.
Zie Referentie voor scenario's en vaardigheden voor de volledige lijst.
Opdrachten
Taken zijn de atomaire werkeenheden binnen een scenario. Elke taak vertegenwoordigt een specifiek, gebonden deel van de upgrade, zoals 'Upgrade CommonLib from .NET 6 to .NET 10' of 'Upgrade EF6 usage in DataLayer to EF Core'.
Levenscyclus van taken
Taken doorlopen deze statussen:
- Beschikbaar: Klaar om te beginnen, aan alle afhankelijkheden is voldaan.
- Wordt uitgevoerd: De agent werkt actief aan de taak.
- Voltooid: Codewijzigingen toegepast, build-geslaagden, tests geslaagd.
Voor elke taak voert de agent uit:
- Laadt gerelateerde vaardigheden en context.
- Evalueert complexiteit en bepaalt of de taak subtaken nodig heeft.
- Schrijft een samenvatting van het bereik naar
tasks/{taskId}/task.md. - Hiermee worden codewijzigingen uitgevoerd.
- Valideert door build en tests uit te voeren.
- Registreert resultaten in
tasks/{taskId}/progress-details.md. - Wijzigingen doorvoeren en naar de volgende taak gaan.
Toestandbeheer
De agent behoudt de permanente status, zodat u op elk gewenst moment kunt stoppen en hervatten. Alles bevindt zich in uw opslagplaats onder .github/upgrades/{scenarioId}/.
| Bestand | Purpose |
|---|---|
scenario-instructions.md |
Uw voorkeuren, beslissingen en aangepaste instructies. Het permanente geheugen van de agent. |
upgrade-options.md |
Bevestigde beslissingen voor upgrades |
plan.md |
Het upgradeplan met strategie- en taakbeschrijvingen |
tasks.md |
Dashboard voor visuele voortgang met taakstatus |
execution-log.md |
Gedetailleerd logboek van alle wijzigingen en beslissingen |
tasks/{taskId}/task.md |
Bereik en context per taak |
tasks/{taskId}/progress-details.md |
Notities en resultaten per taakuitvoering |
Hervatbaarheid
Sluit de chat, sluit uw IDE of kom de volgende dag terug. De agent gaat verder waar hij gebleven is.
- Bij de volgende interactie controleert de agent automatisch de huidige status van uw werkruimte.
- De agent detecteert het bestaande scenario en toont de huidige voortgang, zoals '3 van 8 voltooide taken'.
- De agent detecteert verlopen taken (vastgelopen in uitvoering van een vorige onderbroken sessie) en biedt aan om ze te hervatten of opnieuw te starten.
- De agent laadt uw voorkeuren opnieuw van
scenario-instructions.md.
Continuïteit tussen IDE's
Omdat de status zich in Git bevindt, kunt u schakelen tussen VS Code, Visual Studio en Copilot CLI mid-upgrade. De .github/upgrades/ map vertegenwoordigt de gedeelde toestand die beide IDE's begrijpen.
Aanbeveling
Voer de map door naar uw .github/upgrades/ vertakking. Push de branch naar een remote repository zodat teamleden de voortgang kunnen bekijken of de upgrade op een andere computer kunnen voortzetten.
Stroommodi
De agent ondersteunt twee stroommodi die bepalen hoeveel toezicht u hebt: automatische modus en begeleide modus.
Automatische modus
De agent werkt door alle fasen (evaluatie, planning en uitvoering) zonder te onderbreken voor goedkeuring. Het geeft belangrijke bevindingen en voortgangsupdates weer, maar blijft vooruitgaan.
Het meest geschikt voor ervaren gebruikers, eenvoudige upgrades en kleine oplossingen.
Begeleide modus
De agent pauzeert bij elke fasegrens voor uw feedback.
- Na evaluatie: "Dit is wat ik heb gevonden. Ga ik verder met upgradeopties?"
- Na de planning: 'Dit is het taakplan. Wil je dat ik de uitvoering start?"
- Voordat complexe taak wordt uitgesplitst: 'Deze taak is complex. Zo zou ik het opsplitsen.
Het beste voor gebruikers voor het eerst, complexe oplossingen en wanneer u het proces wilt leren.
Schakelen tussen modi op elk gewenst moment
- Zeg 'onderbreken' of 'overschakelen naar begeleide' om over te schakelen naar de begeleide modus.
- Zeg 'doorgaan' of 'ga door' om over te schakelen naar de automatische modus.
Aanbeveling
Begin met de begeleide modus voor uw eerste upgrade om inzicht te hebben in de werkstroom en schakel over naar Automatisch zodra u vertrouwd bent.