Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Modernisasi aplikasi GitHub Copilot adalah agen yang didukung AI di Visual Studio yang meningkatkan proyek .NET ke versi yang lebih baru dan memigrasikan aplikasi ke Azure. Artikel ini memandu Anda memutakhirkan aplikasi .NET menggunakan alur kerja tiga tahap terstruktur: penilaian, perencanaan, dan eksekusi.
Agen modernisasi menganalisis proyek dan dependensi Anda, membuat dokumentasi peningkatan terperinci di setiap tahap, dan membantu perbaikan kode sepanjang proses. Ini mendukung peningkatan dari versi .NET yang lebih lama ke yang terbaru, termasuk migrasi dari .NET Framework ke .NET modern.
Prasyarat
Sebelum memulai, pastikan Anda memiliki persyaratan berikut:
Sistem Operasi Windows.
Visual Studio 2026 (atau Visual Studio 2022 versi 17.14.17 dan yang lebih baru).
Beban kerja pengembangan desktop .NET dengan komponen opsional berikut diaktifkan:
- GitHub Copilot
- Modernisasi aplikasi GitHub Copilot
Langganan GitHub Copilot (berbayar atau gratis).
Masuk ke Visual Studio menggunakan akun GitHub dengan akses Copilot.
Penting
Jika mengubah langganan, Anda harus memulai ulang Visual Studio.
Kode harus ditulis dalam C#.
Mulai pemutakhiran
Untuk memulai pembaruan, berinteraksi dengan obrolan GitHub Copilot untuk menginisiasi agen modernisasi:
Buka proyek atau solusi .NET Anda di Visual Studio.
Akses agen modernisasi aplikasi GitHub Copilot menggunakan salah satu metode berikut:
Klik kanan pada solusi atau proyek di Penjelajah Solusi dan pilih Modernisasi.
—atau—
Buka jendela GitHub Copilot Chat dan ketik
@modernizediikuti dengan permintaan peningkatan atau migrasi Anda.@modernizeBeri tahu agen apa yang ingin Anda tingkatkan atau migrasikan.
Saat Anda memulai peningkatan, Copilot meminta Anda untuk membuat cabang baru jika Anda bekerja di repositori Git. Copilot kemudian menjalankan alur kerja tiga tahap, menulis file Markdown untuk setiap tahap di bawah .github/upgrades di repositori Anda. Jika .github/upgrades sudah ada dari upaya sebelumnya, Copilot bertanya apakah akan melanjutkan atau memulai dari awal.
Tiga tahap tersebut adalah:
- Tahap penilaian - Copilot memeriksa proyek Anda untuk mengidentifikasi perubahan besar, masalah kompatibilitas, dan kebutuhan peningkatan.
- Tahap perencanaan - Copilot membuat spesifikasi terperinci yang menjelaskan cara menyelesaikan setiap masalah.
- Tahap eksekusi - Copilot memecah rencana menjadi tugas berurutan dan melakukan peningkatan.
Mulai penilaian dan tinjau hasil
Tahap penilaian memeriksa struktur proyek, dependensi, dan pola kode Anda untuk mengidentifikasi apa yang perlu diubah. Copilot secara otomatis memulai tahap ini dan menghasilkan assessment.md file di .github/upgrades.
Penilaian mencantumkan perubahan yang melanggar, masalah kompatibilitas API, pola yang tidak digunakan lagi, dan cakupan peningkatan sehingga Anda tahu persis apa yang perlu diperhatikan. Contoh berikut menunjukkan bagian dari penilaian untuk peningkatan proyek ASP.NET Core dari .NET 6.0 ke .NET 9.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)
...
Untuk meninjau dan menyesuaikan rencana:
-
assessment.mdBuka file di.github/upgrades. - Tinjau perubahan yang merusak dan masalah kompatibilitas yang diidentifikasi.
- Tambahkan konteks atau masalah khusus proyek ke dokumen.
- Beritahu Copilot untuk pindah ke tahap perencanaan.
Mulai merencanakan dan meninjau rencana
Tahap perencanaan mengubah penilaian menjadi spesifikasi terperinci yang menjelaskan cara menyelesaikan setiap masalah. Ketika Anda memberi tahu Copilot untuk melanjutkan ke perencanaan, itu menghasilkan plan.md file di .github/upgrades.
Dokumen dalam rencana mencakup strategi peningkatan, pendekatan untuk refaktorisasi, jalur pembaruan dependensi, dan mitigasi risiko. Contoh berikut menunjukkan sebagian dari rencana untuk proyek 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)
...
Untuk meninjau dan menyesuaikan rencana:
plan.mdBuka file di.github/upgrades.Tinjau strategi peningkatan dan pembaruan dependensi.
Mengedit rencana untuk menyesuaikan langkah-langkah upgrade atau menambahkan konteks jika diperlukan.
Perhatian
Rencana ini didasarkan pada interdependensi proyek. Peningkatan tidak akan berhasil jika Anda mengubah rencana dengan cara jalur migrasi tidak dapat diselesaikan. Misalnya, jika Project A bergantung pada Project B dan Anda menghapus Project B dari paket peningkatan, meningkatkan Project A mungkin gagal.
Beri tahu Copilot untuk pindah ke tahap eksekusi.
Mulai eksekusi dan jalankan peningkatan
Tahap eksekusi memecah rencana menjadi tugas konkret berurutan dengan kriteria validasi. Ketika Anda memberi tahu Copilot untuk melanjutkan tahap eksekusi, Copilot akan menghasilkan tasks.md file di .github/upgrades.
Daftar tugas menjelaskan setiap tugas dan bagaimana Copilot memastikan tugas tersebut berhasil. Contoh berikut menunjukkan daftar tugas untuk solusi yang berisi proyek ASP.NET Core dan 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"
Untuk menjalankan peningkatan:
- Beri tahu Copilot untuk memulai peningkatan.
- Pantau kemajuan dengan meninjau
tasks.mdfile saat Copilot memperbarui status tugas. - Jika Copilot mengalami masalah yang tidak dapat diatasi, berikan bantuan yang diminta.
- Biarkan Copilot belajar dari intervensi Anda dan melanjutkan peningkatan.
Alat ini membuat penerapan Git untuk setiap bagian proses, sehingga Anda dapat dengan mudah mengembalikan perubahan atau mendapatkan informasi terperinci tentang apa yang berubah.
Memverifikasi peningkatan
Setelah peningkatan selesai, Copilot menunjukkan langkah berikutnya dalam respons obrolan untuk memandu Anda tentang apa yang harus dilakukan setelah proses. Periksa file tasks.md untuk status setiap langkah. Alat ini membuat penerapan Git untuk setiap bagian proses peningkatan, sehingga Anda dapat dengan mudah mengembalikan perubahan atau mendapatkan informasi terperinci tentang apa yang berubah.
Contoh berikut menunjukkan tugas yang selesai untuk peningkatan proyek inti ASP.NET:
# 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**)
...
Untuk memverifikasi peningkatan:
- Tinjau status tugas akhir di
tasks.md. - Atasi pengujian atau kesalahan kompilasi yang gagal.
- Pastikan semua paket NuGet yang diperbarui kompatibel dengan aplikasi Anda.
- Uji aplikasi Anda secara menyeluruh untuk memverifikasi peningkatan berhasil.
- Terapkan fitur dan peningkatan baru yang tersedia dalam versi .NET yang ditingkatkan.