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.
Bu makale, GitHub Copilot modernleştirme aracısı ile iletişim kurma, ona tercihlerinizi öğretme, hataları düzeltme, çalışmalarını gözden geçirme ve birden çok oturumdaki yükseltmeleri yönetme konularını kapsar.
GitHub Copilot modernleştirme, soru soran, stratejiler öneren, geri bildiriminize uyarlayan ve zaman içinde tercihlerinizden öğrenen etkileşimli bir işbirlikçidir. En iyi sonuçları elde etmek için aracı bağlamını verin. Hedefleriniz, kısıtlamalarınız ve tercihleriniz hakkında ne kadar çok şey bilirse o kadar iyi performans gösterir.
❌ Vague — the agent has to guess
"Upgrade my project"
✅ Specific — the agent knows exactly what you need
"Upgrade the WebAPI project to .NET 10. We need to keep backward
compatibility with our existing REST clients, and we can't change the
public API surface."
Tavsiye
Tüm bağlamı önceden vermek zorunda değilsiniz. Bilgiye daha fazla ihtiyaç duyduğunda ajan takip soruları sorar.
Konuşma başlat
- VS Code, Visual Studio veya Copilot CLI'da Copilot Chat açın.
- Aracı seçim menüsünden GitHub Copilot modernleştirme ajanını .NET için seçin veya ortamınız için doğru ajanın adını yazın: VS Code ve Copilot CLI'da
@modernize-dotnetveya Visual Studio'da@Modernize. - Neleri doğal dilde gerçekleştirmek istediğinizi açıklayın.
Ne söylenecek?
Doğal dil işe yarar. Şu örnekleri deneyin:
| ne istiyorsunuz? | Ne söylenecek? |
|---|---|
| Tam çözümü yükseltme | |
| Belirli bir teknolojiyi yükseltme | "EF6'dan EF Core'a yükseltmeme yardımcı olun" |
| Nelerin kullanılabilir olduğunu görün | "Hangi senaryolar kullanılabilir?" |
| Önce bir projeyi yükseltme | "Önce API projesini, ardından paylaşılan kitaplığı yükseltin" |
| Geçerli durumu anlama | "Yükseltmemin geçerli durumu nedir?" |
Bundan sonra ne olacak?
Konuşma başlattığınızda, ajan çalışma alanınızdaki mevcut bir yükseltme çalışmasını denetler.
- Eğer mevcut bir çalışma yoksa, aracı genellikle çözümünüzün değerlendirilmesiyle başlayarak yeni bir sürece başlamaktadır.
- Devam eden bir çalışma varsa aracı kaldığınız yerden devam eder ve "8 görevden 3'ünün tamamlanması" gibi geçerli durumu gösterir.
Akış modu seçme
Aracı, aracının girişiniz için ne kadar süre duraklatıldığını kontrol eden iki akış modunu destekler.
Otomatik mod
Otomatik modda, aracı aşamalarda (değerlendirme, planlama, yürütme) her aşamada onay için duraklamadan çalışır. Aracı hala orijinal engelleyicilerde veya yalnızca sizin verebileceğiniz bir karara ihtiyaç duyduğunda durur.
Deneyimli kullanıcılar, basit yükseltmeler ve küçük çözümler için en iyi yöntemdir.
Kılavuzlu mod
Kılavuzlu modda, ajan gözden geçirmeniz için her aşama sınırında durur:
- Değerlendirmeden sonra, planı oluşturmadan önce.
- Planlamadan sonra, herhangi bir görevi yürütmeden önce.
- Karmaşık görevlerin ayrıntılı dökümünden önce.
- Birden çok geçerli yaklaşımın bulunduğu önemli karar noktalarında.
İlk kez kullananlar, karmaşık çözümler ve süreci öğrenmek istediğiniz zamanlar için en iyi yöntemdir.
Oturum ortasında modlar arasında geçiş yapma
İstediğiniz zaman modlar arasında serbestçe geçiş yapın:
| Geçiş yapmak için | Ne söylenecek? |
|---|---|
| Kılavuzlu mod | "Duraklat" veya "Kılavuzlu moda geç" |
| Otomatik mod | "Devam" veya "Devam et" |
Tavsiye
İlk yükseltmeniz için kılavuzlu modla başlayın. Rehberli mod, aracının nasıl düşündüğünü ve hangi kararları aldığı hakkında bilgi edinmenin en iyi yoludur. Rahatladıktan sonra otomatik moda geçin.
Ajanı eğit
Temsilci sizden ders alır. Aracı, düzeltmelerinizi, tercihlerinizi ve yönergelerinizi scenario-instructions.md yükseltme durumu klasörüne kaydeder. Bu tercihler oturumlar arasında kalıcıdır.
Hataları düzeltme
Temsilci katılmadığınız bir karara vardığında, temsilciye şunu söyleyin:
You: "Actually, don't use Newtonsoft.Json — we're standardizing on System.Text.Json."
Agent: "Got it. I'll use System.Text.Json for all serialization going forward.
I've saved this as a preference."
Aracı günceller scenario-instructions.md ve gelecekteki bir oturumda aynı seçimi bile tekrar yapmaz.
Tercihleri ayarlama
Aracıya işlerin nasıl yapılmasını istediğinizi proaktif olarak bildirin:
You: "Always use bottom-up strategy for this solution — upgrade leaf projects first."
Agent: "Noted. I'll use a bottom-up upgrade strategy, starting with projects that
have no internal dependencies and working up to the top-level projects."
Göreve özgü yönergeler verme
Bazen tercih yalnızca belirli bir görev için geçerlidir:
You: "For this task, skip the test validation — the tests are broken for a known
reason and we'll fix them separately."
Agent: "Understood. I'll skip test validation for this task only."
Aracı ne kaydeder?
Dosya scenario-instructions.md , net bölümler halinde düzenlenmiştir:
| Bölüm | Ne içerir | Example |
|---|---|---|
| Kullanıcı Tercihleri (Teknik) | Paket seçenekleri, çerçeve kararları, kodlama desenleri | "Newtonsoft değil System.Text.Json kullan" |
| Kullanıcı Tercihleri (Yürütme Stili) | Ajan nasıl çalışır? | "Her zaman aşağıdan yukarı stratejisini kullan" |
| Önemli Kararlar Günlüğü | Önemli kararlar ve bunların mantığı | "Dapper yerine EF Core'ı seçin çünkü..." |
| Görev Başına Özel Yönergeler | Göreve özgü geçersiz kılmalar | "3.1 görevi için testleri atla" |
Tavsiye
Ayrıca doğrudan düzenleyin scenario-instructions.md . Bu bir Markdown dosyasıdır .github/upgrades/{scenarioId}/. Aracı, her etkileşimin başlangıcında dosyayı okur.
Oturum ortasında düzeltmeler yapma
Aracı kesintileri düzgün bir şekilde işler ve nerede olduğunu veya ne yaptığını kaybetmez.
Duraklatma ve gözden geçirme
You: "Wait, stop — let me review that change first."
Agent: "Here's what I was about to do: [describes planned changes].
Would you like me to proceed, or adjust the approach?"
Yönlendir
You: "Actually, let's do Project B before Project A — it has fewer dependencies."
Agent: "Good call. I'll reorder the tasks and start with Project B."
Geri alın
You: "That last change broke the build. Can we revert it?"
Agent: "I'll revert the last commit (abc1234: 'Migrate auth middleware').
Reverting now."
Ayrıca standart Git komutlarını kullanarak commit'leri kendiniz geri alın. Aracı, her commit'in neleri değiştirdiğini tam olarak bilmenizi sağlamak için açık ve açıklayıcı commit mesajları yazar.
Akışın ortasında soru sorun
Soru sormak iş akışını bozmaz:
You: "Why did you choose to migrate the data layer before the API controllers?"
Agent: "The API controllers depend on the data layer interfaces. By migrating
the data layer first, we avoid temporary compilation errors in the
controllers and can validate each layer independently."
Temsilcinin çalışmalarını gözden geçirme
Ajan, çalışmalarını incelemek için birden çok yol sunar.
Kaynak denetimi
Temsilci, ayrı bir dal üzerinde çalışmanızı önerir ve çalışırken değişiklikleri işleme alır. Standart Git komutları ile aracının değişikliklerini gözden geçirin:
git log --oneline -10
git diff main..<agent-branch>
İş akışı dosyaları
Aracı, size tam görünürlük sağlayan birkaç dosya .github/upgrades/{scenarioId}/ içinde tutar.
| Dosya | Ne gösterir |
|---|---|
tasks.md |
Tüm görevler, durum göstergeleri (✅ bitti, 🔄 devam ediyor, ⬜ beklemede) ve ilerleme çubuğuyla görsel ilerlemeye genel bakış |
execution-log.md |
Ajanın yaptığı her eylemin, ne olduğuna ve ne zaman olduğuna dair tam kronolojik denetim izi |
assessment.md |
Bağımlılıklar, hataya neden olan değişiklikler ve yükseltme karmaşıklığı dahil olmak üzere çözümünüzün ilk analizi |
scenario-instructions.md |
Tercihleriniz ve ajanın öğrenilmiş kararları |
tasks/{taskId}/progress-details.md |
Görev başına ayrıntılar: karşılaşılan derleme hataları, bunların çözümlenme şekli, test sonuçları ve alınan kararlar |
Kesintiye uğrayan çalışmayı sürdürme
Sohbeti kapatın veya IDE'nizi kapatın. Ajan bu durumu sorunsuz bir şekilde işler.
Aracı, tüm durumu deponuzdaki .github/upgrades/ içinde saklar. Yeni bir konuşma başlattığınızda ajan geçerli durumu kontrol eder ve hemen bunun farkına varır:
- Hangi senaryo etkindir?
- Hangi görevlerin tamamlandığı, devam ettiği veya beklemede olduğu.
- Hangi yapıtların var olduğu (değerlendirme, plan, görev dosyaları).
- Görevlerin eski görünüp görünmediği (önceki oturumdan 🔄 durumunda takılı kalıp kalmadığı).
Bayat görev algılama
Önceki oturumdan bir görev devam ediyorsa, ajan görevin güncelliğini yitirmiş olabileceğini algılar ve devam etme, yeniden başlatma veya atlama seçenekleri sunar.
Tavsiye
Durum deponuzun içinde .github/upgrades/ olduğundan kodunuzla birlikte hareket eder. Dalınızı uzak bir yere gönderin, başka bir makineye çekin ve aracı kaldığınız yerden devam eder.
Birden çok oturumda çalışma
20 projeli bir çözüm, karmaşık bir çerçeve yükseltmesi veya çok adımlı modernleştirme gibi büyük yükseltmeler genellikle günler veya haftalar içinde birden çok oturuma yayılacaktır. Doğal olarak, ajan çoklu oturum çalışmalarını yönetir.
-
Kalıcı durum: Her şey
.github/upgrades/içinde. Kaybedecek bellek içi durum yok. - Oturum bağımsızlığı: Her sohbet oturumu bağımsızdır. Yazılım ajanı, bağlamını her seferinde durum dosyalarından yeniden oluşturur.
- Cross-IDE desteği: VS Code'da başlayın, Visual Studio veya Copilot CLI'da devam edin. Durum klasörü, paylaşılan sözleşmedir.
Çoklu oturum çalışması için ipuçları
- Durum klasörünü işleyin. Klasörü yedeklemek ve ekibinize görünür hale getirmek için
.github/upgrades/dalınıza gönderin. - Oturumlar arasında gözden geçirin. Okuyun
tasks.mdveexecution-log.mdson oturumda gerçekleşenler hakkındaki belleğinizi yenilemek için. - Öğrenirken tercihleri güncelleştirin. Test sırasında, aracının yaklaşımını değiştirmesi gerektiğini düşündüğünüz bir şey bulursanız, bunu sonraki oturumun başında aracıya bildirin.
Yardım isteyin
Ajanın neler yapabileceğini veya işlerin durumu hakkında emin değil misiniz? Sormak:
| Bilmek istedikleriniz | Ne söylenecek? |
|---|---|
| Kullanılabilir yükseltme senaryoları | "Ne yapabilirsin?" veya "Hangi senaryolar kullanılabilir?" |
| Geçerli ilerleme durumu | "Geçerli durum nedir?" veya "İlerleme durumunu göster" |
| Yükseltme planı | "Planı açıklayın" veya "Görevlerde bana yol göster" |
| Değerlendirme ayrıntıları | "Değerlendirmeyi göster" veya "Değerlendirme ne buldu?" |
| Kullanılabilir beceriler | "Hangi becerilere sahipsiniz?" veya "Becerilerinizi listeleyin" |
| Belirli bir karar | "Neden Y yerine X'i seçtiniz?" |
| Riskler veya endişeler | "Bu yükseltmenin riskleri nelerdir?" |
Etkili bir şekilde iletişim kurma
Etkileşiminizin kalitesi sonuçların kalitesini doğrudan etkiler.
Kapsam hakkında özel olun
"Yalnızca Data.Access ve Data.Models projelerini .NET 10'a yükseltin" aracıya net bir odak sağlar. "Her şeyi yükseltin" işe yarar, ancak ajan sipariş ve öncelikler hakkında kendi başına daha fazla karar vererek çalışır.
Bağlamı paylaş
Aracı, siz paylaşmadığınız sürece iş kısıtlamalarınızı bilmez:
- "Azure App Service Kasım ayında .NET 8 desteğini bıraktığı için yükseltiyoruz."
- "Bu yüksek trafikli bir üretim hizmetidir; API yanıtlarında sıfır davranış değişikliği."
Kısıtlamaları ifade et
Aracıya ne yapması gerektiğini değil, ne yapmaması gerektiğini de söyleyin.
- "Genel API yüzeyini değiştirmeyin; dış tüketicilerimiz var."
- "Newtonsoft.Json'ı henüz yükseltemiyoruz; paylaşılan sözleşmelerin sahibi olan ekip yükseltme yapmadı."
- "Eski raporlama modülüne dokunmayın; bunlar ayrı olarak yeniden yazılıyor."
Görüş bildirin
Olumlu geri bildirim, düzeltmeler kadar yardımcı olur ve aracının doğru yolda olduğunu onaylar:
- "Bu yükseltme harika görünüyor; diğer depo projesi için de aynı yaklaşımı kullanın."
- "Bu işe yarar, ancak bu kod tabanında özellik ekleme yerine oluşturucu eklemeyi tercih ediyoruz."
Hızlı referans
| Durum | Ne söylenecek? |
|---|---|
| Yeni bir yükseltme başlatma | |
| Önceki çalışmayı sürdür | "Devam" veya "Durum nedir?" |
| Kılavuzlu moda geçme | "Duraklat" veya "Kılavuzlu moda geç" |
| Otomatik moda geçme | "Devam et" veya "Sormadan devam et" |
| Kararı düzeltmek | "Aslında, Y yerine X kullan" |
| Tercih ayarlama | "Bu çözüm için her zaman X yap" |
| Değişiklikleri gözden geçirme | "Neleri değiştirdiğini göster" veya Git günlüğünü denetle |
| Değişikliği geri alma | "Son değişikliği geri al" |
| Nedenini sor | "Neden bu yaklaşımı seçtiniz?" |
| Görevi atla | "Şimdilik bu görevi atla" |
| Yardım alın | "Ne yapabilirsin?" |