Udostępnij za pomocą


Uaktualnianie aplikacji .NET przy użyciu modernizacji aplikacji GitHub Copilot

Modernizacja aplikacji GitHub Copilot to agent oparty na sztucznej inteligencji w programie Visual Studio, który ułatwia uaktualnianie projektów platformy .NET do nowszych wersji i migrowanie aplikacji na platformę Azure. Ten artykuł przeprowadzi Cię przez proces używania tego narzędzia do modernizacji aplikacji platformy .NET od wstępnej oceny do ostatecznej weryfikacji.

Agent modernizacji analizuje projekty i zależności, tworzy plan uaktualniania i pomaga w poprawkach kodu w całym procesie. Obsługuje uaktualnianie ze starszych wersji platformy .NET do najnowszych wersji, w tym migracje z programu .NET Framework do nowoczesnej platformy .NET.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że masz następujące wymagania:

Uruchamianie procesu uaktualniania

Pierwszym krokiem do uaktualnienia jest wygenerowanie planu przez interakcję z rozwiązaniem GitHub Copilot. Wykonaj następujące kroki, aby zainicjować uaktualnienie:

  1. Otwórz projekt lub rozwiązanie platformy .NET w programie Visual Studio.

  2. Uzyskaj dostęp do agenta modernizacji aplikacji GitHub Copilot przy użyciu jednej z następujących metod:

    Kliknij prawym przyciskiem myszy rozwiązanie lub projekt w Eksploratorze rozwiązań i wybierz polecenie Modernizuj.

    —lub —

    Otwórz okno GitHub Copilot Chat i wpisz @modernize żądanie aktualizacji lub migracji.

  3. Poinformuj agenta @modernize o tym, co chcesz zaktualizować lub zmigrować.

Generowanie planu uaktualniania

Po rozpoczęciu procesu Copilot analizuje twoje projekty i ich zależności. Następnie zadaje ci serię pytań dotyczących uaktualnienia. Po udzieleniu odpowiedzi na te pytania copilot zapisuje plan uaktualnienia jako plik Markdown.

Aby wygenerować i dostosować plan:

  1. Odpowiedz na pytania Copilota dotyczące Twoich wymagań i preferencji dotyczących aktualizacji.
  2. Przejrzyj wygenerowany plan uaktualnienia w pliku Markdown.
  3. Opcjonalnie zmodyfikuj plik Markdown, aby zmienić kroki uaktualniania lub dodać więcej kontekstu.
  4. Poinformuj Copilota, aby kontynuował aktualizację, gdy jesteś zadowolony z planu.

Ostrzeżenie

Plan jest generowany na podstawie współzależności projektów. Uaktualnienie nie powiedzie się, jeśli zmodyfikujesz plan w taki sposób, że nie można ukończyć ścieżki migracji. Jeśli na przykład program Project A zależy od projektu B i usuniesz program Project B z planu uaktualniania, uaktualnienie projektu A może zakończyć się niepowodzeniem.

Poniższy fragment kodu przedstawia strukturę planu:

# .NET 9.0 Upgrade Plan

## Execution Steps

1. Validate that an .NET 9.0 SDK required for this upgrade is installed on the machine and if not, help to get it installed.
2. Ensure that the SDK version specified in global.json files is compatible with the .NET 9.0 upgrade.
3. Upgrade projects to .NET 9.0.
  - 3.1. Upgrade RazorMovie.csproj
  - 3.2. Upgrade RazorMovie.Tests.csproj
4. Run unit tests to validate upgrade in the projects listed below:
  - RazorMovie.Tests.csproj

## Settings

This section contains settings and data used by execution steps.

### Aggregate NuGet packages modifications across all projects

NuGet packages used across all selected projects or their dependencies that need version update in projects that reference them.

| Package Name                                     | Current Version     | New Version | Description              |
|:-------------------------------------------------|:-------------------:|:-----------:|:-------------------------|
| HtmlSanitizer                                    | 7.1.542             | 9.0.884     | Security vulnerability   |
| Microsoft.Data.SqlClient                         | 4.0.5               | 6.0.2       | Deprecated               |
| Microsoft.EntityFrameworkCore.Design             | 6.0.0-rtm.21467.1   | 9.0.5       | Recommended for .NET 9.0 |
| Microsoft.EntityFrameworkCore.SqlServer          | 6.0.0-rc.1.21452.10 | 9.0.5       | Recommended for .NET 9.0 |
| Microsoft.EntityFrameworkCore.Tools              | 6.0.0-rc.1.21452.10 | 9.0.5       | Recommended for .NET 9.0 |
| Microsoft.VisualStudio.Web.CodeGeneration.Design | 6.0.0-rc.1.21464.1  | 9.0.0       | Recommended for .NET 9.0 |

...

Wykonaj uaktualnianie

Gdy plan uaktualnienia jest gotowy, poinformuj Copilot o rozpoczęciu uaktualniania. Po rozpoczęciu procesu uaktualniania copilot informuje o tym, co robi w oknie czatu. Zostanie otwarty dokument Szczegóły postępu uaktualniania , który zawiera listę stanu każdego kroku. Jeśli napotka problem, Copilot wstrzymuje się i prosi o kierunek lub pomoc w rozwiązywaniu tych problemów.

Każdy główny krok procesu uaktualniania jest zatwierdzany w lokalnym repozytorium Git.

Przegląd wyników aktualizacji

Po zakończeniu uaktualniania jest generowany raport opisujący każdy krok uaktualnienia. Narzędzie tworzy zatwierdzenie usługi Git dla każdej części procesu uaktualniania, dzięki czemu można łatwo wycofać zmiany lub uzyskać szczegółowe informacje o tym, co się zmieniło. Raport zawiera skróty zatwierdzeń usługi Git i zawiera sekcję Następne kroki opisujące kroki, które należy wykonać po zakończeniu uaktualniania.

W poniższym przykładzie przedstawiono raport ukończonego uaktualnienia, który zawierał błąd testu:

# .NET 9 Upgrade Report

## Project modifications

| Project name     | Old Target Framework | New Target Framework | Commits            |
|:-----------------|:--------------------:|:--------------------:|--------------------|
| RazorMovie       | net6.0               | net9.0               | af8cf633, aa61a18d |
| MvcMovie         | net6.0               | net9.0               | cc8c9015           |
| WpfMovie         | net6.0-windows       | net9.0-windows       | 9c4b13f9           |
| RazorMovie.Tests | net6.0               | net9.0               | b8d85e97           |
| MvcMovie.Tests   | net6.0               | net9.0               | b8d85e97           |
| WpfMovie.Tests   | net6.0-windows       | net9.0-windows7.0    | b8d85e97           |

## NuGet Packages

| Package Name                                     | Old Version         | New Version | Commit Id |
|:-------------------------------------------------|:-------------------:|:-----------:|-----------|
| HtmlSanitizer                                    | 7.1.542             | 9.0.884     | af8cf633  |
| Microsoft.Data.SqlClient                         | 4.0.5               | 6.0.2       | bf8deeac  |
| Microsoft.EntityFrameworkCore.Design             | 6.0.0-rtm.21467.1   | 9.0.5       | bf8deeac  |
| Microsoft.EntityFrameworkCore.SqlServer          | 6.0.0-rc.1.21452.10 | 9.0.5       | bf8deeac  |
| Microsoft.EntityFrameworkCore.Tools              | 6.0.0-rc.1.21452.10 | 9.0.5       | bf8deeac  |
| Microsoft.VisualStudio.Web.CodeGeneration.Design | 6.0.0-rc.1.21464.1  | 9.0.0       | bf8deeac  |

## All commits

| Commit ID | Description                                             |
|:----------|:--------------------------------------------------------|
| af8cf633  | Update HtmlSanitizer package in RazorMovie.csproj       |
| aa61a18d  | Upgrade target framework in RazorMovie.csproj           |
| cc8c9015  | Upgrade to .NET 9 and update dependencies               |
| bf8deeac  | Update package references in MvcMovie.csproj            |
| 9c4b13f9  | Update WpfMovie.csproj to target .NET 9.0               |
| b8d85e97  | Update test projects to .NET 9 and enhance dependencies |

## Test Results

| Project Name           | Passed | Failed | Skipped |
|:-----------------------|:------:|:------:|:-------:|
| RazorMovie.Tests       |   0    |   0    |    0    |
| MvcMovie.Tests         |   2    |   0    |    0    |
| WpfMovie.Tests         |   6    |   1    |    0    |

## Next steps

- Review the test results and address the single failing test in `WpfMovie.Tests`.
- Ensure all updated NuGet packages are compatible with your application.
- Leverage new features and improvements in .NET 9.0 for your projects.

Dalsze kroki

Po ukończeniu procesu uaktualniania:

  • Przejrzyj wygenerowany raport uaktualnienia i wszystkie wyniki testu.
  • 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 platformy .NET.