Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
GitHub Copilot yükseltme, .NET projeleri daha yeni sürümlere yükselten yapay zeka destekli bir aracıdır. Bu makalede, .NET uygulamalarınızı yapılandırılmış üç aşamalı bir iş akışıyla yükseltme işleminde size yol gösterilir: değerlendirme, planlama ve yürütme.
Aracı projelerinizi ve bağımlılıklarınızı analiz eder, her aşamada ayrıntılı yükseltme belgeleri oluşturur ve işlem boyunca kod düzeltmelerine yardımcı olur. Aracı, .NET Framework'ten modern .NET yükseltmeleri de dahil olmak üzere eski .NET sürümlerinden en son sürümlere yükseltmeyi destekler.
Prerequisites
Yükseltmeye başlamadan önce geliştirme ortamınızda GitHub Copilot yükseltmeyi ayarlayın. Yükleme adımları için bkz. Yükleme GitHub Copilot yükseltme.
Yükseltmeyi başlatma
Yükseltmeyi başlatmak için şu adımları izleyin:
Aracıyı şu yöntemlerden birini kullanarak başlatın:
-
Visual Studio: Çözüm Gezgini'da çözüme veya projeye sağ tıklayın ve Modernize öğesini seçin. Alternatif olarak GitHub Copilot Chat penceresini açın ve yazın
@Modernize. -
Visual Studio Code: GitHub Copilot Chat panelini açın ve
@upgradeyazın. -
GitHub Copilot CLI:
@upgradeyazın ve ardından yükseltme veya geçiş isteğinizi yazın. -
GitHub Copilot uygulaması: Agent seçicisinde
Upgradeöğesini seçin.
-
Visual Studio: Çözüm Gezgini'da çözüme veya projeye sağ tıklayın ve Modernize öğesini seçin. Alternatif olarak GitHub Copilot Chat penceresini açın ve yazın
Aracıya neyi yükselteceğini veya neyi taşıyacağını söyleyin.
Yükseltmeyi başlattığınızda, Copilot ön başlatma bilgilerini toplar: hedef çerçeve sürümü, Git dallanma stratejisi ve iş akışı modu (otomatik veya sizin tarafınızdan yönlendirilen). Copilot projenizi değerlendirir ve deponuzdaki .github/upgrades/{scenarioId} altında her aşama için Markdown dosyaları yazarak üç aşamalı bir iş akışı çalıştırır.
{scenarioId} değer, yükseltme türü için benzersiz bir tanımlayıcıdır, örneğindotnet-version-upgrade.
.github/upgrades/{scenarioId} önceki bir denemeden zaten varsa, Copilot devam etmek mi yoksa yeni bir başlangıç mı başlatmak isteyip istemediğinizi sorar.
Üç aşama şunlardır:
- Değerlendirme aşaması. Copilot projenizi inceler, gözden geçirmeniz için strateji kararları sunar ve doğrulanmış kararları kaydeder. Devam etmeden önce değerlendirmeyi özelleştirin.
- Planlama aşaması. Copilot, hedef yükseltmeye ulaşma adımlarını içeren ayrıntılı bir belirtim oluşturur.
- Yürütme aşaması. Copilot planı sıralı görevlere böler ve yükseltmeyi gerçekleştirir.
Değerlendirmeyi gözden geçirme
Değerlendirme, değiştirilmesi gerekenleri belirlemek için proje yapınızı, bağımlılıklarınızı ve kod desenlerinizi inceler. Copilot değerlendirmeyi otomatik olarak başlatır ve assessment.md içinde bir .github/upgrades/{scenarioId} dosyası oluşturur.
Değerlendirmede hataya neden olan değişiklikler, API uyumluluk sorunları, kullanım dışı desenler ve yükseltme kapsamı listelenir. Aşağıdaki örnek, .NET 6.0'dan .NET 10.0'a yükselten bir ASP.NET Core projesi için değerlendirmenin bir bölümünü gösterir:
# 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)
...
Değerlendirmeyi gözden geçirmek ve özelleştirmek için:
-
assessment.mddosyasını.github/upgrades/{scenarioId}içinde açın. - Tanımlanan önemli değişiklikleri ve uyumluluk problemlerini gözden geçirin.
- Belgeye projeye özgü bağlam veya endişeler ekleyin.
- Copilot'a planlama aşamasına geçmesini söyle.
Yükseltme seçeneklerini gözden geçirme
Değerlendirmeden sonra Copilot çözümünüzü değerlendirir ve gözden geçirmeniz için yükseltme stratejisi kararları sunar. Temsilci, projenizin yapısına göre bir yaklaşım önerir ve doğrulanmış kararları upgrade-options.md içinde .github/upgrades/{scenarioId} kaydeder.
Seçenekler genellikle şunları içerir:
- Yükseltme stratejisi. Aşağıdan yukarı (önce yaprak projeler), yukarıdan aşağıya (önce uygulama) veya tek seferde (bütün projeler tek geçişte).
- Proje yükseltme yaklaşımı. Yerinde yeniden yazma veya paralel yükseltme.
- Teknoloji modernizasyonu. Entity Framework (EF6'dan EF Core'a), bağımlılık enjeksiyonu, günlüğe kaydetme ve yapılandırma gibi teknolojilerin yükseltilip yükseltilmeyeceği.
- Paket yönetimi. Merkezi Paket Yönetimi'nin benimsenip benimsenmeyeceği.
- Uyumluluk yönetimi. Desteklenmeyen API'leri, uyumsuz paketleri ve platforma özgü işlevleri ele alma.
Önerilen seçenekleri gözden geçirin ve onaylayın veya geçersiz kılın. Copilot'a planlama aşamasına geçmesini söyle.
Planlamaya başlayın ve planı gözden geçirin
Planlama aşaması, değerlendirmeyi ve onaylanan yükseltme seçeneklerinizi, her sorunun nasıl çözüleceğini açıklayan ayrıntılı bir belirtime dönüştürür. Copilot'a planlamaya geçmesini söylediğinizde, plan.md içinde bir .github/upgrades/{scenarioId} dosyası oluşturur. Aracı ayrıca yükseltme için tercihleri, kararları ve özel yönergeleri depolayan bir scenario-instructions.md dosya oluşturur.
Plan, yükseltme stratejilerini, yeniden düzenleme yaklaşımlarını, bağımlılık yükseltme yollarını ve risk azaltmalarını belgelemektedir. Aşağıdaki örnekte, ASP.NET Core projesi planının bir bölümü gösterilmektedir:
# .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)
...
Planı gözden geçirmek ve özelleştirmek için:
plan.mddosyasını.github/upgrades/{scenarioId}içinde açın.Yükseltme stratejilerini ve bağımlılık güncelleştirmelerini gözden geçirin.
Yükseltme adımlarını ayarlamak veya gerektiğinde bağlam eklemek için planı düzenleyin.
Caution
Plan, proje bağımlılıklarına bağlıdır. Planı yükseltme yolunun tamamlanmasını engelleyecek ş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.
Copilot'a tahtaketme aşamasına geç demesini söyle.
Yürütmeyi başlatma ve yükseltmeyi çalıştırma
Yürütme aşaması planı doğrulama ölçütleriyle sıralı ve somut görevlere böler. Copilot’a yürütmeye geçmesini söylediğinizde, tasks.md içinde bir .github/upgrades/{scenarioId} dosyası oluşturur.
Görev listesinde her görev ve Copilot'un başarıyı nasıl doğruladığı açıklanır. Aşağıdaki örnekte, ASP.NET Core ve WPF projeleri içeren bir çözüm için görev listesi gösterilmektedir:
# 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"
Yükseltmeyi çalıştırmak için:
- Copilot'a yükseltmeyi başlat söyleyin.
- Copilot'un görev durumlarını güncellemesiyle
tasks.mddosyasını gözden geçirerek ilerlemeyi izleyin. - Copilot çözemediğiniz bir sorunla karşılaşırsa, istenen yardımı sağlayın.
- Kararlarınıza ve değişikliklerinize bağlı olarak Copilot, stratejisini kalan görevlere uyarlar ve yükseltmeye devam eder.
Copilot, değişiklikleri, ön başlangıç sırasında yapılandırdığınız Git stratejisine göre işler: görev başına, görev grubu başına veya işlem sonunda.
Yükseltmeyi doğrulama
Yükseltme tamamlandığında, Copilot sohbet yanıtında önerilen sonraki adımları gösterir. Her adımın durumu için tasks.md içinde bulunan .github/upgrades/{scenarioId} dosyasını gözden geçirin.
Aşağıdaki örnekte, ASP.NET Core proje yükseltmesi için tamamlanmış görevler gösterilmektedir:
# 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**)
...
Yükseltmeyi doğrulamak için:
- içindeki
tasks.mdson görev durumunu 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.