Aracılığıyla paylaş


GitHub Copilot uygulaması modernleştirmesi ile bir .NET uygulamasını yükseltme

GitHub Copilot uygulama modernleştirmesi, Visual Studio'da .NET projelerini daha yeni sürümlere yükseltmenize ve uygulamaları Azure'a geçirmenize yardımcı olan yapay zeka destekli bir aracıdır. Bu makale, ilk değerlendirmeden son doğrulamaya kadar .NET uygulamalarınızı modernleştirmek için bu aracı kullanma işleminde size yol gösterir.

Modernleştirme aracısı projelerinizi ve bağımlılıklarınızı analiz eder, bir yükseltme planı oluşturur ve işlem boyunca kod düzeltmelerine yardımcı olabilir. .NET Framework'ten modern .NET'e geçişler de dahil olmak üzere eski .NET sürümlerinden en son sürümlere yükseltmeyi destekler.

Önkoşullar

Başlamadan önce aşağıdaki gereksinimlere sahip olduğunuzdan emin olun:

Yükseltme işlemini başlatma

Yükseltmenin ilk adımı, GitHub Copilot ile etkileşim kurarak bir plan oluşturmaktır. Yükseltmeyi başlatmak için şu adımları izleyin:

  1. .NET projenizi veya çözümünüzü Visual Studio'da açın.

  2. Aşağıdaki yöntemlerden birini kullanarak GitHub Copilot uygulama modernleştirme aracısı'na erişin:

    Çözüm Gezgini'nde çözüme veya projeye sağ tıklayın ve Modernleştir'i seçin.

    —veya—

    GitHub Copilot Sohbet penceresini açın ve ardından yükseltme veya geçiş isteğinizi yazın@modernize.

  3. Aracıya @modernize neleri yükseltmek veya geçirmek istediğinizi söyleyin.

Yükseltme planı oluşturma

İşlemi başlattığınızda, Copilot projelerinizi ve bunların bağımlılıklarını analiz eder. Ardından yükseltme hakkında bir dizi soru sorar. Bu soruları yanıtladıktan sonra, Copilot bir yükseltme planını Markdown dosyası olarak yazar.

Planınızı oluşturmak ve özelleştirmek için:

  1. Yükseltme gereksinimleriniz ve tercihleriniz hakkında Copilot'un sorularını yanıtlayın.
  2. Markdown dosyasında oluşturulan yükseltme planını gözden geçirin.
  3. İsteğe bağlı olarak, yükseltme adımlarını değiştirmek veya daha fazla bağlam eklemek için Markdown dosyasını düzenleyin.
  4. Plandan memnun olduğunuzda Copilot'a yükseltmeye devam etmelerini söyleyin.

Dikkat

Plan, projelerinizin bağımlılıkları temelinde oluşturulur. Planı geçiş yolunu tamamlayamayacak şekilde değiştirirseniz yükseltme başarılı olmaz. Örneğin, A ProjesiB Projesine bağımlıysa ve B Projesini yükseltme planından kaldırırsanız, Proje A'yı yükseltme başarısız olabilir.

Aşağıdaki kod parçacığı bir planın yapısını gösterir:

# .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 |

...

Yükseltmeyi gerçekleştirme

Yükseltme planınız hazır olduğunda Copilot'a yükseltmeyi başlatmasını söyleyin. Yükseltme işlemi başladıktan sonra Copilot, sohbet penceresinde ne yaptığını size bildirir. Her adımın durumunu listeleyen Yükseltme İlerleme Ayrıntıları belgesini açar. Bir sorunla karşılaşırsa, Copilot duraklar ve bu sorunları çözmek için yönünüzü veya yardımınızı ister.

Yükseltme işlemindeki her önemli adım yerel Git deposuna işlenir.

Yükseltme sonuçlarını gözden geçirme

Yükseltme tamamlandığında, yükseltmenin her adımını açıklayan bir rapor oluşturulur. Araç, yükseltme işleminin her bölümü için bir Git işlemesi oluşturur, böylece değişiklikleri kolayca geri alabilir veya değişenler hakkında ayrıntılı bilgi alabilirsiniz. Rapor Git işleme karmalarını içerir ve yükseltme tamamlandıktan sonra gerçekleştirmeniz gereken adımları açıklayan bir Sonraki adımlar bölümü sağlar.

Aşağıdaki örnekte, test hatası içeren tamamlanmış bir yükseltmenin raporu gösterilmektedir:

# .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.

Sonraki Adımlar

Yükseltme işlemini tamamladıktan sonra:

  • Oluşturulan yükseltme raporunu ve test sonuçlarını gözden geçirin.
  • Başarısız olan tüm testleri veya derleme hatalarını giderin.
  • Güncelleştirilmiş tüm NuGet paketlerinin uygulamanızla uyumlu olduğundan emin olun.
  • Yükseltmenin başarılı olduğunu doğrulamak için uygulamanızı kapsamlı bir şekilde test edin.
  • Yükseltilen .NET sürümünde sağlanan yeni özellikleri ve geliştirmeleri uygulayın.