Freigeben über


GitHub Copilot Konzepte zur Modernisierung

GitHub Copilot Modernisierungsprozess verwendet einen strukturierten Ansatz, um .NET-Projekte aufzuwerten. Wenn Sie wissen, wie der Agent funktioniert, einschließlich seiner Szenarien, Fähigkeiten, Aufgaben und Workflows, hilft Ihnen, effektiv mit dem Agent zusammenzuarbeiten und die besten Ergebnisse zu erzielen.

Tipp

Stellen Sie sich den Agenten als qualifizierter Kollege vor, der .NET tief versteht, folgt einem strukturierten Plan und passt sich An Ihr Feedback an. Je mehr Kontext Sie geben, desto besser ist die Leistung des Agents.

Der Agent als Teamkollege

Der Agent zeichnet sich für die Zusammenarbeit aus, nicht automatisierung in einem Vakuum:

  • Tiefgehendes .NET-Wissen: Der Agent versteht Projektdateien, NuGet-Abhängigkeiten, Breaking Changes und Upgrademuster in Dutzenden .NET-Technologien für C#- und Visual Basic-Projekte.
  • Strukturierter Workflow: Jedes Upgrade durchläuft Bewertung, Planung und Ausführung. Keine zufälligen Änderungen, keine Überraschungen.
  • Lernt Ihre Vorlieben kennen: Wenn Sie "immer explizite Typen anstelle von var verwenden" sagen, schreibt der Agent diese Einstellung auf scenario-instructions.md und merkt sich diese Präferenz über mehrere Sitzungen hinweg.
  • Korrigierbar während des Flugs: Eine falsche Entscheidung getroffen? Informieren Sie den Agenten. Es passt sich an und wendet die Korrektur in Zukunft an.
  • Erläutert seine Begründung: Fragen Sie "Warum haben Sie diesen Ansatz gewählt?" und der Agent führt Sie durch die Entscheidung.

Szenarien

Ein Szenario ist ein verwalteter End-to-End-Modernisierungsworkflow. Wenn Sie dem Agent mitteilen, "aktualisieren Sie meine Lösung auf .NET 10", wird das Szenario .NET version upgrade ausgelöst.

Wie Szenarien ermittelt werden

Sie müssen sich keine Szenarionamen merken. Der Agent ermittelt relevante Szenarien automatisch:

  1. Analysiert Ihre Codebasis, um zu verstehen, welche Technologien Sie verwenden, einschließlich Sprache, Frameworkversion, Bibliotheken und Projekttypen.
  2. Identifiziert, welche Szenarien für Ihre Projekte relevant sind.
  3. Bewertet Szenarien nach Wichtigkeit und Gewichtung. Die relevantesten werden zuerst angezeigt.

Sie können auch direkt fragen: "Welche Szenarien stehen für meine Lösung zur Verfügung?"

Szenariopersistenz

Jedes aktive Szenario erhält einen eigenen Ordner unter .github/upgrades/{scenarioId}/. Der Szenarioordner enthält den Plan, den Vorgangsfortschritt, Ihre Einstellungen und Ausführungsprotokolle. Der Ordner ist Teil Ihres Git-Repositorys.

Eine vollständige Liste der Szenarien finden Sie unter "Szenarien und Fähigkeiten".

Der Workflowlebenszyklus

Jedes Szenario folgt demselben Lebenszyklus: ein dreistufiger Workflow.

Phase 1: Bewertung

Der Agent sammelt alles, was er benötigt, bevor er mit der Arbeit beginnt:

  • Zielframework: Die Version, auf die Sie aktualisieren.
  • Git-Strategie: Der Agent schlägt die Verzweigung vor, und Sie steuern die Details: Verzweigungsname, ob pro Aufgabe Verzweigungen verwendet werden sollen, und zeitgesteuertes Commit.
  • Ablaufmodus: Automatisch (Agentgesteuert) oder Geführt (Sie genehmigen jede Phase).
  • Szenariospezifische Parameter: Je nach Szenario stellt der Agent möglicherweise weitere Fragen.

Der Agent initialisiert den Szenarioarbeitsbereich bei .github/upgrades/{scenarioId}/.

Der Agent analysiert dann Ihre Codebasis:

  • Projekt-Abhängigkeitsdiagramm (topologische Reihenfolge)
  • NuGet-Paketkompatibilität mit dem Zielframework
  • Unterbrechen von API-Änderungen
  • Testabdeckung
  • Komplexität und Risikofaktoren

Der Agent speichert einen umfassenden Bewertungsbericht in assessment.md.

Basierend auf der Bewertung bewertet der Agent Ihre Lösung und identifiziert, welche Upgradeentscheidungen relevant sind. Es stellt vernünftige Standardwerte dar und ermöglicht es Ihnen, jede Auswahl zu überprüfen und außer Kraft zu setzen.

Mögliche Optionen:

  • Upgradestrategie: Bottom-up, Top-down oder alles auf einmal.
  • Projekt-Upgrade-Ansatz: Direkte Neuimplementierung oder parallel für Webanwendungen; dynamische oder Multitargeting für Bibliotheken.
  • Technologiemodernisierung: Auswahlmöglichkeiten für Entity Framework-Upgrade, Abhängigkeitseinfügung, Protokollierung und Konfiguration.
  • Paketverwaltung: Gibt an, ob und wann die zentrale Paketverwaltung verwendet werden soll.
  • Kompatibilitätsbehandlung: So behandeln Sie nicht unterstützte APIs und Pakete.

Der Agent speichert bestätigte Entscheidungen in upgrade-options.md.

Im geführten Modus hält der Agent hier für Ihre Überprüfung an, bevor er fortfahren kann.

Phase 2: Planung

Der Agent erstellt den Aufgabenplan basierend auf der Bewertung und Ihren bestätigten Optionen. Die Planung erzeugt drei Schlüsseldateien:

  • plan.md: Der Upgradeplan mit Strategie- und Aufgabenbeschreibungen.
  • scenario-instructions.md: Ihre Einstellungen, Entscheidungen und das Gedächtnis des Agents.
  • tasks.md — Die sortierte Liste der Aufgaben, die der Agent ausführt.

Phase 3: Ausführung

Der Agent bearbeitet die Aufgaben nacheinander. Für jede Aufgabe in tasks.mdfolgt der Agent einem Zyklus: Starten, Ausführen, Überprüfen (Build und Test) und Abschließen. Sie steuern, wann und wie der Agent Änderungen ausführt: pro Aufgabe, pro Gruppe von Aufgaben oder am Ende. Wenn der Agent arbeitet, aktualisiert er die Echtzeitstatus tasks.md, damit Sie den Fortschritt nachverfolgen können.

Upgrade-Strategien

Während der Bewertungsphase bewertet der Agent Ihre Lösung und empfiehlt eine der folgenden Strategien:

Strategie Am besten geeignet für: So funktioniert es
Unten nach oben Große Lösungen mit tiefen Abhängigkeitsdiagrammen Beginnen Sie mit Blattprojekten (keine Abhängigkeiten), arbeiten Sie nach oben.
Oben unten Schnelles Feedback zur Haupt-App Beginnen Sie mit dem Anwendungsprojekt, beheben Sie abhängigkeiten nach Bedarf.
Alle gleichzeitig Kleine, einfache Lösungen Aktualisieren Sie sämtliche Komponenten in einem Durchgang.

Tipp

Der Agent zeigt nur Entscheidungen an, die für Ihr Projekt relevant sind. Eine einfache Konsolen-App sieht keine Webframework-Optionen, und ein Projekt ohne Entity Framework sieht keine Datenbankupgradeoptionen.

Fähigkeiten

Skills sind kleinere, gezielte Modernisierungsfähigkeiten. Wenn der Agent während eines Upgrades auf EF6-Code trifft, lädt er den EF6-zu-EF-Core-Skill mit detaillierten, schrittweisen Upgrade-Anweisungen. Rufen Sie eine Fähigkeit direkt während eines Upgrades auf: "Aktualisieren Sie die WCF-Dienste in meinem Projekt auf CoreWCF."

Der Agent wird mit über 30 integrierten Fähigkeiten, die in Domänen organisiert sind, ausgeliefert.

  • Datenzugriff: EF6 auf EF Core (Code-first und EDMX), LINQ to SQL und SqlClient-Upgrade
  • Web/ASP.NET: Identity, Global.asax, OWIN, MVC routing/filters/bundling und von WCF zu CoreWCF
  • Serialisierung: Newtonsoft.Json zu System.Text.Json
  • Cloud: Azure Functions vom In-Process- zum isolierten Worker-Modell
  • Bibliotheken: ADAL zu MSAL, SignalR, PowerShell SDK und mehr

Fähigkeiten werden automatisch geladen, basierend auf dem, was der Agent in Ihrer Codebasis erkennt. Sie müssen das Laden von Skills nicht verwalten. Beschreiben Sie einfach, was Sie benötigen.

Die vollständige Liste finden Sie unter "Szenarien und Fähigkeiten".

Aufgaben

Aufgaben sind die Atomeinheiten der Arbeit innerhalb eines Szenarios. Jede Aufgabe stellt einen bestimmten, begrenzten Teil des Upgrades dar, z. B. "Upgrade CommonLib von .NET 6 auf .NET 10" oder "Upgrade EF6-Verwendung in DataLayer auf EF Core".

Aufgabenlebenszyklus

Aufgaben durchlaufen diese Zustände:

  • Verfügbar: Bereit zum Starten, alle Abhängigkeiten erfüllt.
  • In Bearbeitung: Der Agent arbeitet aktiv an der Aufgabe.
  • Abgeschlossen: Codeänderungen angewendet, Build erfolgreich, Tests erfolgreich.

Für jede Aufgabe, der Agent:

  1. Lädt verwandte Fähigkeiten und Kontext.
  2. Bewertet die Komplexität und entscheidet, ob der Vorgang Teilvorgänge benötigt.
  3. Schreibt eine Geltungsbereichszusammenfassung zu tasks/{taskId}/task.md.
  4. Führt Codeänderungen aus.
  5. Validiert durch Ausführen von Build und Tests.
  6. Erfasst Ergebnisse in tasks/{taskId}/progress-details.md.
  7. Führt Änderungen durch und wechselt zur nächsten Aufgabe.

Zustandsverwaltung

Der Agent verwaltet den persistenten Status, damit Sie jederzeit anhalten und fortsetzen können. Alles lebt in Ihrem Repository unter .github/upgrades/{scenarioId}/.

Datei Purpose
scenario-instructions.md Ihre Vorlieben, Entscheidungen und benutzerdefinierten Anweisungen. Der persistente Speicher des Agents.
upgrade-options.md Bestätigte Upgradeentscheidungen
plan.md Der Upgradeplan mit Strategie- und Aufgabenbeschreibungen
tasks.md Visuelles Statusdashboard mit Aufgabenstatus
execution-log.md Detailliertes Protokoll aller Änderungen und Entscheidungen
tasks/{taskId}/task.md Aufgabenbereich und Kontext
tasks/{taskId}/progress-details.md Ausführungsnotizen und -ergebnisse pro Aufgabe

Fortsetzbarkeit

Schließen Sie den Chat, schließen Sie Ihre IDE, oder kehren Sie am nächsten Tag zurück. Der Agent setzt genau dort an, wo er aufgehört hat.

  1. Bei Ihrer nächsten Interaktion überprüft der Agent automatisch den aktuellen Status Ihres Arbeitsbereichs.
  2. Der Agent erkennt das vorhandene Szenario und zeigt den aktuellen Fortschritt an, z. B. "3 von 8 abgeschlossenen Aufgaben".
  3. Der Agent erkennt veraltete Aufgaben (hängen geblieben von einer vorherigen unterbrochenen Sitzung) und bietet an, sie fortzusetzen oder neu zu starten.
  4. Der Agent lädt Ihre Einstellungen von scenario-instructions.md.

IDE-Übergreifende Kontinuität

Da sich der Zustand in Git befindet, können Sie während des Upgrades nahtlos zwischen VS Code, Visual Studio und Copilot CLI wechseln. Der .github/upgrades/ Ordner ist der freigegebene Zustand, den beide IDEs verstehen.

Tipp

Übertragen Sie den .github/upgrades/ Ordner in Ihren Branch. Übertragen Sie die Verzweigung an ein Remote-Repository, damit Teammitglieder den Fortschritt anzeigen oder das Upgrade auf einem anderen Computer fortsetzen können.

Flussmodus

Der Agent unterstützt zwei Flussmodi, die steuern, wie viel Aufsicht Sie haben: Automatischer Modus und geführter Modus.

Automatischer Modus

Der Agent arbeitet durch alle Phasen (Bewertung, Planung und Ausführung) ohne auf eine Genehmigung zu warten. Es zeigt wichtige Erkenntnisse und Fortschrittsaktualisierungen an, bewegt sich jedoch weiter.

Am besten geeignet für erfahrene Benutzer, einfache Upgrades und kleine Lösungen.

Geführter Modus

Der Agent hält an jeder Phasengrenze für Ihre Überprüfung an:

  • Nach der Bewertung: "Hier ist das, was ich gefunden habe. Soll ich mit den Upgradeoptionen fortfahren?"
  • Nach der Planung: "Hier ist der Aufgabenplan. Soll ich mit der Ausführung beginnen?"
  • Vor komplexen Aufgabenaufschlüsselungen: "Diese Aufgabe ist komplex. Hier ist, wie ich sie aufteilen würde."

Am besten für Erstmalige Benutzer, komplexe Lösungen und wann Sie den Prozess erlernen möchten.

Modi jederzeit wechseln

  • Sagen Sie "Anhalten" oder "Zum geführten Modus wechseln", um in den geführten Modus zu wechseln.
  • Sagen Sie "Weiter" oder "Weiter" , um zum automatischen Modus zu wechseln.

Tipp

Beginnen Sie mit dem geführten Modus für Ihr erstes Upgrade, um den Workflow zu verstehen, und wechseln Sie dann zu "Automatisch", sobald Sie sich wohl fühlen.