Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Modernizacja z użyciem GitHub Copilot to agent oparty na sztucznej inteligencji, który uaktualnia projekty .NET do nowszych wersji i migruje aplikacje na platformę Azure. W tym artykule przedstawiono proces uaktualniania aplikacji .NET za pomocą ustrukturyzowanego przepływu pracy trzyetapowego: oceny, planowania i wykonywania.
Agent modernizacji analizuje projekty i zależności, tworzy szczegółową dokumentację uaktualniania na każdym etapie i pomaga w poprawkach kodu w całym procesie. Agent obsługuje uaktualnianie ze starszych wersji .NET do najnowszej wersji, w tym uaktualnienia z platformy .NET Framework do nowoczesnych .NET.
Wymagania wstępne
Skonfiguruj modernizację GitHub Copilot w środowisku deweloperskim przed rozpoczęciem aktualizacji. Aby uzyskać instrukcje instalacji, zobacz Instalacja GitHub Copilot Modernization.
Inicjowanie uaktualnienia
Aby rozpocząć uaktualnianie, użyj agenta modernize-dotnet w Copilot:
Otwórz projekt lub rozwiązanie .NET w środowisku projektowym.
Uruchom agenta przy użyciu jednej z następujących metod:
-
Visual Studio: kliknij prawym przyciskiem myszy rozwiązanie lub projekt w Eksplorator rozwiązań i wybierz Modernize. Możesz też otworzyć okno GitHub Copilot Chat i wpisz
@Modernize. -
Visual Studio Code: Otwórz GitHub Copilot Chat panelu i wpisz
@modernize-dotnet. - interfejs wiersza polecenia GitHub Copilot: wpisz
@modernize-dotnet, a następnie żądanie uaktualnienia lub migracji. -
GitHub.com: użyj agenta kodowania
modernize-dotnetw repozytorium.
-
Visual Studio: kliknij prawym przyciskiem myszy rozwiązanie lub projekt w Eksplorator rozwiązań i wybierz Modernize. Możesz też otworzyć okno GitHub Copilot Chat i wpisz
Poinformuj agenta, co należy uaktualnić lub zmigrować.
Po rozpoczęciu uaktualniania Copilot zbiera informacje wstępne: docelową wersję platformy, strategię rozgałęziania Git i tryb przepływu pracy (automatyczny lub kierowany przez Ciebie). Copilot następnie ocenia twój projekt i uruchamia trzyetapowy proces, pisząc pliki Markdown dla każdego etapu w obszarze .github/upgrades/{scenarioId} w twoim repozytorium. Wartość {scenarioId} jest unikatowym identyfikatorem typu uaktualnienia, takim jak dotnet-version-upgrade. Jeśli .github/upgrades/{scenarioId} już istnieje z wcześniejszej próby, Copilot pyta, czy kontynuować, czy rozpocząć od nowa.
Trzy etapy to:
- Etap oceny. Copilot analizuje twój projekt, przedstawia decyzje strategiczne do przeglądu i zapisuje potwierdzone decyzje. Dostosuj ocenę przed kontynuowaniem.
- Etap planowania. Copilot tworzy szczegółową specyfikację z krokami umożliwiającymi osiągnięcie docelowego uaktualnienia.
- Etap wykonywania. Copilot dzieli plan na zadania sekwencyjne i wykonuje uaktualnienie.
Przegląd oceny
Ocena sprawdza strukturę projektu, zależności i wzorce kodu, aby zidentyfikować, co należy zmienić. Copilot automatycznie uruchamia ocenę i generuje plik assessment.md w .github/upgrades/{scenarioId}.
Ocena zawiera listę zmian niezgodnych, problemy ze zgodnością interfejsu API, przestarzałe wzorce i zakres aktualizacji. Poniższy przykład przedstawia część oceny projektu ASP.NET Core uaktualnianego z wersji .NET 6.0 do .NET 10.0.
# Projects and dependencies analysis
This document provides a comprehensive overview of the projects and their dependencies in the context of upgrading to .NETCoreApp,Version=v10.0.
## Table of Contents
- [Executive Summary](#executive-Summary)
- [Highlevel Metrics](#highlevel-metrics)
- [Projects Compatibility](#projects-compatibility)
- [Package Compatibility](#package-compatibility)
- [API Compatibility](#api-compatibility)
- [Aggregate NuGet packages details](#aggregate-nuget-packages-details)
- [Top API Migration Challenges](#top-api-migration-challenges)
- [Technologies and Features](#technologies-and-features)
- [Most Frequent API Issues](#most-frequent-api-issues)
- [Projects Relationship Graph](#projects-relationship-graph)
- [Project Details](#project-details)
- [MvcMovie.Tests\MvcMovie.Tests.csproj](#mvcmovietestsmvcmovietestscsproj)
- [MvcMovie\MvcMovie.csproj](#mvcmoviemvcmoviecsproj)
- [RazorMovie.Tests\RazorMovie.Tests.csproj](#razormovietestsrazormovietestscsproj)
- [RazorMovie\RazorMovie.csproj](#razormovierazormoviecsproj)
- [WpfMovie.Tests\WpfMovie.Tests.csproj](#wpfmovietestswpfmovietestscsproj)
- [WpfMovie\WpfMovie.csproj](#wpfmoviewpfmoviecsproj)
...
Aby przejrzeć i dostosować ocenę:
- Otwórz plik
assessment.mdw.github/upgrades/{scenarioId}. - Przejrzyj zidentyfikowane zmiany powodujące niezgodność i problemy zgodności.
- Dodaj kontekst lub obawy specyficzne dla projektu do dokumentu.
- Poinformuj Copilot, aby przeszedł do etapu planowania.
Przejrzyj opcje uaktualniania
Po przeprowadzeniu oceny Copilot ocenia rozwiązanie i przedstawia do przeglądu decyzje dotyczące strategii uaktualnienia. Agent zaleca podejście bazujące na strukturze twojego projektu i zapisuje potwierdzone decyzje w upgrade-options.md w .github/upgrades/{scenarioId}.
Opcje zazwyczaj obejmują:
- Strategia aktualizacji. Oddolne (najpierw projekty szczegółowe), odgórne (najpierw aplikacja) lub wszystkie naraz (wszystkie projekty w jednym etapie).
- Podejście do modernizacji projektu. Ponowne zapisywanie w miejscu lub uaktualnianie równoległe.
- Modernizacja technologii. Czy uaktualnić technologie, takie jak Entity Framework (EF6 do EF Core), iniekcja zależności, rejestrowanie i konfiguracja.
- Zarządzanie pakietami. Czy wdrożyć centralne zarządzanie pakietami.
- Obsługa zgodności. Jak radzić sobie z nieobsługiwanymi interfejsami API, niezgodnymi pakietami i funkcjonalnościami specyficznymi dla platformy.
Przejrzyj proponowane opcje i potwierdź lub przesłoń je. Poinformuj Copilot, aby przeszedł do etapu planowania.
Rozpoczynanie planowania i przeglądanie planu
Etap planowania konwertuje ocenę i potwierdzone opcje uaktualniania na szczegółową specyfikację, która wyjaśnia, jak rozwiązać każdy problem. Gdy poinformujesz Copilot o kontynuowaniu planowania, generuje on plik plan.md w .github/upgrades/{scenarioId}. Agent również tworzy plik scenario-instructions.md, który przechowuje preferencje, decyzje i niestandardowe instrukcje dotyczące aktualizacji.
Plan dokumentuje strategie uaktualniania, metody refaktoryzacji, ścieżki uaktualniania zależności i środki zaradcze ryzyka. Poniższy przykład przedstawia część planu dla projektu ASP.NET Core:
# .NET 10 Upgrade Plan
## Table of Contents
- [Executive Summary](#executive-summary)
- [Migration Strategy](#migration-strategy)
- [Detailed Dependency Analysis](#detailed-dependency-analysis)
- [Project-by-Project Plans](#project-by-project-plans)
- ... <removed to save space> ...
- ...
---
## Executive Summary
### Scenario Description
Upgrade all projects in the MvcMovieNet6 solution from .NET 6 to .NET 10 (Long Term Support). The solution contains:
- **RazorMovie**: ASP.NET Core Razor Pages application (primary focus)
- **MvcMovie**: ASP.NET Core MVC application
- **WpfMovie**: Windows Presentation Foundation desktop application
- **3 Test Projects**: Unit test projects for each application
### Scope & Current State
- **6 projects** requiring framework upgrade (net6.0 → net10.0)
- **1,862 total lines of code** across 54 files
- **16 NuGet packages** (6 require updates, 10 compatible)
- **65 identified issues** (1 security vulnerability, 1 deprecated package, 51 WPF API issues, minor behavioral changes)
- **All projects are SDK-style** (modern project format)
...
Aby przejrzeć i dostosować plan:
Otwórz plik
plan.mdw.github/upgrades/{scenarioId}.Przejrzyj strategie uaktualniania i aktualizacje zależności.
Edytuj plan, aby dostosować kroki uaktualniania lub dodać kontekst zgodnie z potrzebami.
Ostrzeżenie
Plan zależy od współzależności projektu. Uaktualnienie nie powiedzie się, jeśli zmodyfikujesz plan w sposób uniemożliwiający ukończenie ścieżki uaktualnienia. Jeśli na przykład
Project A zależy odProject B i usunieszProject B z planu uaktualniania, uaktualnienieProject A3 może zakończyć się niepowodzeniem. Poinformuj Copilota, aby przeszedł do fazy wykonawczej.
Rozpocznij wykonanie i przeprowadź uaktualnienie
Etap wykonywania dzieli plan na sekwencyjne, konkretne zadania z kryteriami weryfikacji. Gdy poinformujesz Copilot o kontynuowaniu wykonywania, generuje on plik tasks.md w .github/upgrades/{scenarioId}.
Lista zadań opisuje każde zadanie i sposób, w jaki Copilot weryfikuje powodzenie. W poniższym przykładzie przedstawiono listę zadań dla rozwiązania zawierającego projekty ASP.NET Core i WPF:
# MvcMovieNet6 .NET 10 Upgrade Tasks
## Overview
This document tracks the execution of the MvcMovieNet6 solution upgrade from .NET 6 to .NET 10. All projects will be upgraded simultaneously in a single atomic operation.
**Progress**: 0/3 tasks complete (0%) 
---
## Tasks
### [ ] TASK-001: Verify prerequisites
**References**: Plan §Phase 0
- [ ] (1) Verify .NET 10 SDK installed per Plan §Phase 0
- [ ] (2) .NET 10 SDK meets minimum requirements (**Verify**)
---
### [ ] TASK-002: Atomic framework and package upgrade with compilation fixes
**References**: Plan §Phase 1, Plan §Package Update Reference, Plan §Breaking Changes Catalog, Plan §Project-by-Project Plans
- [ ] (1) Update TargetFramework to net10.0 in MvcMovie.csproj, MvcMovie.Tests.csproj, RazorMovie.csproj, RazorMovie.Tests.csproj per Plan §Phase 1
- [ ] (2) Update TargetFramework to net10.0-windows in WpfMovie.csproj, WpfMovie.Tests.csproj per Plan §Phase 1
- [ ] (3) All project files updated to target framework (**Verify**)
- [ ] (4) Update package references per Plan §Package Update Reference (MvcMovie: EF Core 10.0.1, Code Generation 10.0.0; RazorMovie: HtmlSanitizer 9.0.889 security fix)
- [ ] (5) All package references updated (**Verify**)
- [ ] (6) Restore all dependencies across solution
- [ ] (7) All dependencies restored successfully (**Verify**)
- [ ] (8) Build solution and fix all compilation errors per Plan §Breaking Changes Catalog (focus: BinaryFormatter removal in WpfMovie, WPF control API binary incompatibilities, UseExceptionHandler behavioral changes, HtmlSanitizer API changes)
- [ ] (9) Solution builds with 0 errors (**Verify**)
- [ ] (10) Commit changes with message: "TASK-002: Complete atomic upgrade to .NET 10 (all projects, packages, and compilation fixes)"
---
### [ ] TASK-003: Run full test suite and validate upgrade
**References**: Plan §Phase 2, Plan §Testing & Validation Strategy
- [ ] (1) Run tests in MvcMovie.Tests, RazorMovie.Tests, and WpfMovie.Tests projects
- [ ] (2) Fix any test failures (reference Plan §Breaking Changes Catalog for common issues: HtmlSanitizer behavior, BinaryFormatter replacement, framework behavioral changes)
- [ ] (3) Re-run all tests after fixes
- [ ] (4) All tests pass with 0 failures (**Verify**)
- [ ] (5) Commit test fixes with message: "TASK-003: Complete testing and validation for .NET 10 upgrade"
Aby uruchomić uaktualnienie:
- Poinformuj Copilot, aby rozpoczął aktualizację.
- Monitoruj postęp, przeglądając plik
tasks.mdw miarę jak Copilot aktualizuje stany zadań. - Jeśli Copilot napotka problem, którego nie można rozwiązać, podaj żądaną pomoc.
- Na podstawie Twoich decyzji i zmian Copilot dostosowuje swoją strategię do pozostałych zadań i kontynuuje uaktualnianie.
Copilot zatwierdza zmiany zgodnie ze strategią Git skonfigurowaną podczas wstępnej inicjalizacji: na zadanie, na grupę zadań lub na końcu.
Weryfikowanie uaktualnienia
Po zakończeniu uaktualniania Copilot pokazuje zalecane następne kroki w odpowiedzi na czat. Przejrzyj plik w pliku tasks.md , .github/upgrades/{scenarioId} aby uzyskać stan każdego kroku.
W poniższym przykładzie przedstawiono ukończone zadania uaktualniania projektu ASP.NET Core:
# MvcMovieNet6 .NET 10 Upgrade Tasks
## Overview
This document tracks the execution of the MvcMovieNet6 solution upgrade from .NET 6 to .NET 10. All projects will be upgraded simultaneously in a single atomic operation.
**Progress**: 3/3 tasks complete (100%) 
---
## Tasks
### [✓] TASK-001: Verify prerequisites *(Completed: 2025-12-12 21:09)*
**References**: Plan §Phase 0
- [✓] (1) Verify .NET 10 SDK installed per Plan §Phase 0
- [✓] (2) .NET 10 SDK meets minimum requirements (**Verify**)
...
Aby zweryfikować uaktualnienie:
- Przejrzyj stan ostatniego zadania w pliku
tasks.md. - Rozwiąż wszelkie nieudane testy lub błędy kompilacji.
- Upewnij się, że wszystkie zaktualizowane pakiety NuGet są zgodne z aplikacją.
- Dokładnie przetestuj aplikację, aby sprawdzić, czy uaktualnienie zakończyło się pomyślnie.
- Zastosuj nowe funkcje i ulepszenia dostępne w uaktualnionej wersji .NET.