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.
GitHub Copilot modernisasi menggunakan pendekatan terstruktur untuk meningkatkan proyek .NET. Memahami cara kerja agen, termasuk skenario, keterampilan, tugas, dan alur kerjanya, membantu Anda berkolaborasi dengan agen secara efektif dan mendapatkan hasil terbaik.
Petunjuk / Saran
Anggap agen sebagai kolega terampil yang memahami .NET secara mendalam, mengikuti rencana terstruktur, dan beradaptasi dengan umpan balik Anda. Semakin banyak konteks yang Anda berikan, semakin baik performa agen.
Agen sebagai rekan tim
Agen unggul dalam kolaborasi, bukan otomatisasi dalam vakum:
- Pengetahuan mendalam tentang .NET: Agen memahami file proyek, dependensi NuGet, perubahan signifikan, dan pola peningkatan di puluhan teknologi .NET untuk proyek C# dan Visual Basic.
- Alur kerja terstruktur: Setiap peningkatan melalui penilaian, perencanaan, dan eksekusi. Tidak ada perubahan acak, tidak ada kejutan.
-
Mempelajari preferensi Anda: Ketika Anda mengatakan "selalu gunakan jenis eksplisit alih-alih
var," agen menulis preferensi tersebut danscenario-instructions.mdmengingatnya di seluruh sesi. - Kesalahan di tengah penerbangan yang dapat diperbaiki: Mengambil keputusan yang salah? Beritahu agen. Ini beradaptasi dan menerapkan koreksi ke depannya.
- Menjelaskan penalarannya: Tanyakan "mengapa Anda memilih pendekatan itu?" dan agen memandul Anda melalui keputusan.
Skenario
Skenario adalah proses kerja modernisasi end-to-end yang terkelola. Ketika Anda memberi tahu agen "tingkatkan solusi saya ke .NET 10," Anda memicu skenario .NET version upgrade.
Bagaimana skenario ditemukan
Anda tidak perlu menghafal nama skenario. Agen menemukan skenario yang relevan secara otomatis:
- Menganalisis basis kode Anda untuk memahami teknologi apa yang Anda gunakan, termasuk bahasa, versi kerangka kerja, pustaka, dan jenis proyek.
- Mengidentifikasi skenario mana yang relevan dengan proyek Anda.
- Peringkat skenario berdasarkan kepentingan dan berat. Yang paling relevan muncul terlebih dahulu.
Anda juga dapat bertanya secara langsung: "Skenario apa yang tersedia untuk solusi saya?"
Kegigihan skenario
Setiap skenario aktif mendapatkan foldernya sendiri di .github/upgrades/{scenarioId}/. Folder skenario berisi rencana, kemajuan tugas, preferensi Anda, dan log eksekusi. Folder adalah bagian dari repositori Git Anda.
Untuk daftar lengkap skenario, lihat Skenario dan referensi keterampilan.
Siklus hidup alur kerja
Setiap skenario mengikuti siklus hidup yang sama: alur kerja tiga tahap.
Tahap 1: Penilaian
Agen mengumpulkan semua yang dibutuhkan sebelum memulai pekerjaan:
- Kerangka kerja target: Versi ke mana Anda sedang meningkatkan.
- Strategi Git: Agen menyarankan pencabangan dan Anda mengontrol detail: nama cabang, apakah akan menggunakan cabang per tugas, dan waktu untuk melakukan commit.
- Mode Alur: Otomatis (dikendalikan agen) atau Terpandu (Anda menyetujui setiap tahap).
- Parameter khusus skenario: Tergantung pada skenarionya, agen mungkin mengajukan lebih banyak pertanyaan.
Agen menginisialisasi ruang kerja skenario di .github/upgrades/{scenarioId}/.
Agen kemudian menganalisis basis kode Anda:
- grafik dependensi proyek (urutan topologis)
- Kompatibilitas paket NuGet dengan kerangka kerja target
- Perubahan Besar pada API
- Cakupan pengujian
- Kompleksitas dan faktor risiko
Agen menyimpan laporan penilaian komprehensif ke assessment.md.
Berdasarkan penilaian, agen mengevaluasi solusi Anda dan mengidentifikasi keputusan peningkatan mana yang relevan. Ini menyajikan default yang masuk akal dan memungkinkan Anda meninjau dan mengambil alih pilihan apa pun.
Opsi mungkin mencakup:
- Strategi peningkatan: Dari bawah ke atas, dari atas ke bawah, atau sekaligus.
- Pendekatan peningkatan proyek: Penulisan ulang di tempat atau berdampingan untuk aplikasi web; di tempat atau penargetan ganda untuk pustaka.
- Modernisasi teknologi: Pilihan untuk peningkatan Kerangka Kerja Entitas, injeksi dependensi, pengelogan, dan konfigurasi.
- Manajemen paket: Apakah dan kapan harus mengadopsi Central Package Management.
- Penanganan kompatibilitas: Cara mengatasi API dan paket yang tidak didukung.
Agen menyimpan keputusan yang dikonfirmasi ke upgrade-options.md.
Dalam Mode Terpandu, agen berhenti sejenak untuk tinjauan Anda sebelum melanjutkan.
Tahap 2: Perencanaan
Agen membuat rencana tugas berdasarkan penilaian dan opsi yang Dikonfirmasi. Perencanaan menghasilkan tiga file utama:
-
plan.md: Rencana peningkatan dengan deskripsi strategi dan tugas. -
scenario-instructions.md: Preferensi, keputusan, dan memori agen Anda. -
tasks.md— Daftar tugas yang diurutkan yang akan dijalankan agen.
Tahap 3: Eksekusi
Agen bekerja melalui tugas secara berurutan. Untuk setiap tugas di tasks.md, agen mengikuti siklus: mulai, jalankan, validasi (build dan test), dan selesai. Anda mengontrol kapan dan bagaimana agen melakukan perubahan: per tugas, per grup tugas, atau di akhir. Saat agen bekerja, agen memperbarui tasks.md menggunakan indikator status real-time sehingga Anda dapat melacak kemajuan.
Meningkatkan strategi
Selama tahap penilaian, agen mengevaluasi solusi Anda dan merekomendasikan salah satu strategi ini:
| Strategi | Paling cocok untuk | Cara kerjanya |
|---|---|---|
| Bawah ke atas | Solusi besar dengan grafik dependensi mendalam | Mulailah dengan proyek tanpa dependensi, lanjutkan ke tingkat yang lebih tinggi. |
| Atas ke bawah | Umpan balik cepat di aplikasi utama | Mulailah dengan proyek aplikasi, perbaiki dependensi sesuai kebutuhan. |
| All-at-once | Solusi kecil dan sederhana | Tingkatkan semuanya dalam satu pass. |
Petunjuk / Saran
Agen hanya menampilkan keputusan yang relevan dengan proyek Anda. Aplikasi konsol sederhana tidak melihat pilihan kerangka kerja web, dan proyek tanpa Kerangka Kerja Entitas tidak melihat opsi peningkatan database.
Keterampilan
Keterampilan adalah kemampuan modernisasi yang lebih kecil dan ditargetkan. Ketika agen menemukan kode EF6 selama peningkatan, program memuat keterampilan EF6-ke-EF-Core dengan instruksi terperinci peningkatan langkah demi langkah. Panggil keterampilan secara langsung selama peningkatan: "tingkatkan layanan WCF dalam proyek saya ke CoreWCF."
Agen ini dilengkapi dengan lebih dari 30 keterampilan bawaan yang diatur berdasarkan domain:
- Akses data: EF6 ke EF Core (code-first dan EDMX), LINQ ke SQL, dan pemutakhiran SqlClient
- Web/ASP.NET: Identity, Global.asax, OWIN, routing/filter/bundling MVC, dan dari WCF ke CoreWCF
- Serialisasi: Newtonsoft.Json ke System.Text.Json
- Cloud: Azure Functions beralih dari model dalam proses ke model pekerja terisolasi
- Perpustakaan: ADAL ke MSAL, SignalR, PowerShell SDK, dan banyak lagi
Kemampuan dimuat secara otomatis berdasarkan apa yang terdeteksi oleh agen di basis kode Anda. Anda tidak perlu mengelola proses pemuatan keterampilan. Jelaskan saja apa yang Anda butuhkan.
Untuk daftar lengkapnya, lihat Skenario dan referensi keterampilan.
Tugas
Tugas adalah unit atom pekerjaan dalam skenario. Setiap tugas mewakili bagian tertentu yang terikat dari peningkatan, seperti "Tingkatkan CommonLib dari .NET 6 ke .NET 10" atau "Tingkatkan penggunaan EF6 di DataLayer ke EF Core."
Siklus hidup tugas
Tugas bergerak melalui tahap-tahap berikut:
- Tersedia: Siap untuk memulai, semua dependensi terpenuhi.
- Sedang Berlangsung: Agen sedang aktif mengerjakan pekerjaan.
- Selesai: Perubahan kode diterapkan, kompilasi berhasil, pengujian berhasil.
Untuk setiap tugas, agen:
- Memuat keterampilan dan konteks terkait.
- Menilai kompleksitas dan memutuskan apakah tugas membutuhkan subtugas.
- Menulis ringkasan cakupan ke
tasks/{taskId}/task.md. - Menjalankan perubahan kode.
- Memvalidasi dengan menjalankan build dan pengujian.
- Mencatat hasil dalam
tasks/{taskId}/progress-details.md. - Menerapkan perubahan dan berpindah ke tugas berikutnya.
Pengelolaan Keadaan
Agen mempertahankan keadaan tetap sehingga Anda dapat menghentikan dan melanjutkan kapan saja. Semuanya tinggal di repositori Anda di bawah .github/upgrades/{scenarioId}/.
| File | Kegunaan |
|---|---|
scenario-instructions.md |
Preferensi, keputusan, dan instruksi kustom Anda. Memori persisten agen tersebut. |
upgrade-options.md |
Keputusan peningkatan yang dikonfirmasi |
plan.md |
Rencana peningkatan dengan deskripsi strategi dan tugas |
tasks.md |
Dasbor kemajuan visual memperlihatkan status tugas |
execution-log.md |
Log terperinci dari semua perubahan dan keputusan |
tasks/{taskId}/task.md |
Cakupan dan konteks per tugas |
tasks/{taskId}/progress-details.md |
Catatan dan hasil eksekusi per tugas |
Keterlanjutan
Tutup obrolan, tutup IDE Anda, atau kembali ke hari berikutnya. Agen melanjutkan dari tempat terakhirnya.
- Pada interaksi Anda berikutnya, agen memeriksa status ruang kerja Anda saat ini secara otomatis.
- Agen mendeteksi skenario yang ada dan menunjukkan kemajuan saat ini, seperti "3 dari 8 tugas selesai."
- Agen mendeteksi tugas usang (tertunda dalam proses dari sesi terganggu sebelumnya) dan menawarkan untuk melanjutkan atau memulai ulang.
- Agen memuat ulang preferensi Anda dari
scenario-instructions.md.
Kelangsungan Lintas IDE
Karena status berada di Git, Anda dapat beralih antara VS Code, Visual Studio, dan Copilot CLI selama peningkatan. Folder .github/upgrades/ adalah status bersama yang dipahami kedua IDEs.
Petunjuk / Saran
Terapkan .github/upgrades/ folder ke cabang Anda. Dorong cabang ke repositori jarak jauh untuk memungkinkan anggota tim melihat kemajuan atau melanjutkan peningkatan pada komputer yang berbeda.
Mode jalur
Agen mendukung dua mode alur yang mengontrol berapa banyak pengawasan yang Anda miliki: Mode otomatis dan mode Terpandu.
Mode otomatis
Agen bekerja melalui semua tahap (penilaian, perencanaan, dan eksekusi) tanpa menjeda untuk persetujuan. Ini menyoroti temuan penting dan pembaruan perkembangan, namun tetap melanjutkan langkah maju.
Terbaik untuk pengguna berpengalaman, peningkatan langsung, dan solusi kecil.
Mode terpandu
Agen berhenti sejenak di setiap batas tahap untuk tinjauan Anda:
- Setelah penilaian: "Inilah yang saya temukan. Haruskah saya melanjutkan dengan opsi peningkatan?"
- Setelah merencanakan: "Ini rencana tugasnya. Apakah Anda ingin saya memulai eksekusi?"
- Sebelum perincian tugas kompleks: "Tugas ini kompleks. Inilah cara saya akan memecahnya."
Terbaik untuk pengguna pemula, solusi rumit, dan saat Anda ingin mempelajari prosesnya.
Beralih mode kapan saja
- Ucapkan "jeda" atau "beralih ke dipandu" untuk beralih ke mode Terpandu.
- Ucapkan "lanjutkan" atau "lanjutkan" untuk beralih ke mode Otomatis.
Petunjuk / Saran
Mulailah dengan mode Terpandu untuk peningkatan pertama Anda untuk memahami alur kerja, lalu beralih ke Otomatis setelah Anda nyaman.