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 modernleştirme, .NET projeleri yükseltmek için yapılandırılmış bir yaklaşım kullanır. Aracının senaryoları, becerileri, görevleri ve iş akışı dahil olmak üzere nasıl çalıştığını anlamak, aracıyla etkili bir şekilde işbirliği yapma ve en iyi sonuçları elde etme konusunda yardımcı olur.
Tavsiye
Temsilciyi, .NET'i derinlemesine anlayan, yapılandırılmış bir planı izleyen ve geri bildiriminize uyum sağlayan yetenekli bir iş arkadaşı olarak düşünün. Ne kadar çok bağlam verirseniz, ajan o kadar iyi performans gösterir.
Takım Arkadaşı Olarak Temsilci
Ajan, izole halde otomasyona değil işbirliğinde başarılıdır.
- Deep .NET knowledge: Aracın hem C# hem de Visual Basic projeleri için onlarca .NET teknolojisinde proje dosyalarını, NuGet bağımlılıklarını, uyumsuz değişiklikleri ve güncelleme desenlerini anlama kapasitesi vardır.
- Yapılandırılmış iş akışı: Her yükseltme değerlendirme, planlama ve yürütmeden geçer. Rastgele değişiklik yok, sürpriz yok.
-
Tercihlerinizi öğrenir: "her zaman
varyerine açık türler kullanın" dediğinizde, aracı bu tercihiscenario-instructions.mdoturumlar arasında yazar ve hatırlar. - Uçuş sırasında düzeltilebilir: Yanlış bir karar mı verdiniz? Temsilciye söyleyin. Bundan sonra düzeltmeyi uyarlar ve uygular.
- Nedenini açıklar:"Neden bu yaklaşımı seçtiniz?" sorusunu sorun ve temsilci kararda size yol gösterir.
Scenarios
Senaryo, yönetilen, uçtan uca bir modernizasyon iş akışıdır. Aracıya "çözümümü .NET 10'a yükselt" dediğinizde .NET version upgrade senaryoyu tetiklersiniz.
Senaryolar nasıl bulunur?
Senaryo adlarını ezberlemeniz gerekmez. Temsilci, ilgili senaryoları otomatik olarak keşfeder.
- Dil, çerçeve sürümü, kitaplıklar ve proje türleri dahil olmak üzere hangi teknolojileri kullandığınızı anlamak için kod tabanınızı analiz eder.
- Projeleriniz için hangi senaryoların uygun olduğunu tanımlar.
- Senaryoları önem ve ağırlığa göre sıralar. En ilgili olanlar önce ortaya çıkar.
Doğrudan şunu da sorabilirsiniz: "Çözümüm için hangi senaryolar kullanılabilir?"
Senaryo kalıcılığı
Her etkin senaryo için .github/upgrades/{scenarioId}/ konumunda kendi klasörü oluşturulur. Senaryo klasörü planı, görev ilerleme durumunu, tercihlerinizi ve yürütme günlüklerini içerir. Klasör, Git deponuzun bir parçasıdır.
Senaryoların tam listesi için bkz. Senaryolar ve beceri başvurusu.
İş akışı yaşam döngüsü
Her senaryo aynı yaşam döngüsünü izler: üç aşamalı iş akışı.
1. Aşama: Değerlendirme
Çalışmaya başlamadan önce ajan, ihtiyaç duyduğu her şeyi toplar.
- Hedef çerçeve: Yükseltmekte olduğunuz sürüm.
- Git stratejisi: Aracı dallanma önerir ve ayrıntıları denetlersiniz: dallanma adı, görev başına dallar kullanılıp kullanılmayacağı ve commit zamanlaması.
- Akış modu: Otomatik (aracı yönlendirir) veya Yönlendirmeli (her aşamayı onaylarsınız).
- Senaryoya özgü parametreler: Senaryoya bağlı olarak, aracı daha fazla soru sorabilir.
Aracı, konumundaki .github/upgrades/{scenarioId}/ senaryo çalışma alanını başlatır.
Aracı daha sonra kod tabanınızı analiz eder:
- Project bağımlılık grafiği (topolojik düzen)
- Hedef çerçeveyle NuGet paketi uyumluluğu
- Uyumluluğu bozan API değişiklikleri
- Test kapsamı
- Karmaşıklık ve risk faktörleri
Aracı kapsamlı bir değerlendirme raporunu assessment.md öğesine kaydeder.
Değerlendirmeye bağlı olarak, aracı çözümünüzü değerlendirir ve hangi yükseltme kararlarının uygun olduğunu tanımlar. Mantıklı varsayılanlar sunar ve herhangi bir seçimi gözden geçirmenize ve geçersiz kılmanıza olanak tanır.
Seçenekler şunlar olabilir:
- Yükseltme stratejisi: Aşağıdan yukarıya, yukarıdan aşağıya veya hepsi bir kerede.
- Proje yükseltme yaklaşımı: Web uygulamaları için yerinde yeniden yazma veya paralel geliştirme; kitaplıklar için yerinde yayın veya çok hedefli yapılandırma.
- Teknoloji modernleştirmesi: Entity Framework yükseltme, bağımlılık ekleme, günlüğe kaydetme ve yapılandırma seçenekleri.
- Paket yönetimi: Merkezi Paket Yönetimi'nin benimsenip benimsenmeyeceği ve ne zaman benimsendiği.
- Uyumluluk işleme: Desteklenmeyen API'leri ve paketleri ele alın.
Aracı, onaylanan kararları upgrade-options.md konumuna kaydeder.
Kılavuzlu modda, devam etmeden önce incelemeniz için temsilci burada duraklatır.
2. Aşama: Planlama
Aracı, değerlendirmeye ve onaylanan seçeneklerinize göre görev planını oluşturur. Planlama üç anahtar dosyası oluşturur:
-
plan.md: Strateji ve görev açıklamalarını içeren yükseltme planı. -
scenario-instructions.md: Tercihleriniz, kararlarınız ve agent hafızası. -
tasks.md— Ajanın gerçekleştireceği sıralı görev listesi.
3. Aşama: Yürütme
Yazılım ajanı, görevleri ardışık olarak yürütür. içindeki tasks.mdher görev için aracı bir döngü izler: başlatma, yürütme, doğrulama (derleme ve test) ve tamamlama. Değişikliklerin ajan tarafından ne zaman ve nasıl yapılacağını kontrol edersiniz: görev başına, görev grubu başına veya sonunda. Ajan çalışırken, tasks.md canlı durum göstergeleriyle güncellenir, böylece ilerlemeyi takip edebilirsiniz.
Yükseltme stratejileri
Değerlendirme aşamasında aracı çözümünüzü değerlendirir ve şu stratejilerden birini önerir:
| Strateji | En iyi kullanım alanı: | Nasıl çalışır? |
|---|---|---|
| Alttan yukarı | Derin bağımlılık grafikleri içeren büyük çözümler | Yaprak projelerle başlayın (bağımlılık yok), yukarı doğru çalışın. |
| Yukarıdan aşağıya | Ana uygulama hakkında hızlı geri bildirim | Uygulama projesiyle başlayın, bağımlılıkları gerektiği gibi düzeltin. |
| Hepsi bir kerede | Küçük, basit çözümler | Her şeyi tek bir geçişte yükseltin. |
Tavsiye
Aracı, yalnızca projenizle ilgili kararları gösterir. Basit bir konsol uygulaması web çerçevesi seçeneklerini görmez ve Entity Framework içermeyen bir proje veritabanı yükseltme seçeneklerini görmez.
Yetenekler
Beceriler daha küçük, hedeflenen modernleştirme özellikleridir. Aracı bir yükseltme sırasında EF6 koduyla karşılaştığında, ayrıntılı adım adım ilerleyen yükseltme yönergeleriyle EF6'dan EF-Core'a geçiş becerisini yükler. Yükseltme sırasında doğrudan bir beceri çağırın: "Projemdeki WCF hizmetlerini CoreWCF'ye yükseltin."
Aracı, etki alanına göre düzenlenmiş 30'un üzerine yerleşik becerilerle birlikte gelir:
- Veri erişimi: EF6'dan EF Core'a (code-first ve EDMX), LINQ to SQL ve SqlClient yükseltmesi
- Web/ASP.NET: Identity, Global.asax, OWIN, MVC yönlendirme/filtreler/paketleme ve WCF'den CoreWCF'ye
- Serileştirme: Newtonsoft.Json ile System.Text.Json
- yalıtılmış çalışan modeline Cloud: Azure İşlevleri işlemde
- Kitaplıklar: ADAL'dan MSAL'a, SignalR, PowerShell SDK ve daha fazlası
Ajanınızın kod tabanınızda algıladığı şeye göre beceriler otomatik olarak yüklenir. Becerilerin yüklenmesini yönetmeniz gerekmez. Sadece neye ihtiyacınız olduğunu açıklayın.
Listenin tamamı için bkz. Senaryolar ve beceri başvurusu.
Görevler
Görevler , bir senaryo içindeki atomik çalışma birimleridir. Her görev, yükseltmenin "CommonLib'i .NET 6'dan .NET 10'a yükselt" veya "DataLayer'daki EF6 kullanımını EF Core'a yükselt" gibi belirli, sınırlanmış bir parçasını temsil eder.
Görev yaşam döngüsü
Görevler şu durumlarda ilerler:
- Kullanılabilir: Başlamaya hazır, tüm bağımlılıklar karşılandı.
- Devam Ediyor: Temsilci, görev üzerinde etkin bir şekilde çalışıyor.
- Tamamlandı: Kod değişiklikleri uygulandı, derleme başarılı, testler geçti.
Her bir görev için ajan:
- İlgili becerileri ve bağlamı yükler.
- Karmaşıklığı değerlendirir ve görevin alt görevlere ihtiyacı olup olmadığına karar verir.
- Bir kapsam özetini
tasks/{taskId}/task.mdiçin yazar. - Kod değişikliklerini yürütür.
- Derleme ve testleri çalıştırarak doğrular.
- Sonuçları
tasks/{taskId}/progress-details.mdiçine kaydeder. - Değişiklikleri işler ve sonraki göreve geçer.
Durum yönetimi
Aracıyı istediğiniz zaman durdurup yeniden başlatabilmeniz için kalıcı durumunu korur. Her şey .github/upgrades/{scenarioId}/ altında, deponuzda yer alır.
| Dosya | Amaç |
|---|---|
scenario-instructions.md |
Tercihleriniz, kararlarınız ve özel yönergeleriniz. Ajanın kalıcı belleği. |
upgrade-options.md |
Doğrulanmış yükseltme kararları |
plan.md |
Strateji ve görev açıklamalarını içeren yükseltme planı |
tasks.md |
Görev durumunu gösteren görsel ilerleme panosu |
execution-log.md |
Tüm değişikliklerin ve kararların ayrıntılı günlüğü |
tasks/{taskId}/task.md |
Görev başına kapsam ve bağlam |
tasks/{taskId}/progress-details.md |
Görev başına yürütme notları ve sonuçları |
Devam Ettirilebilirlik
Sohbeti kapatın, IDE'nizi kapatın veya ertesi gün geri dönün. Aracı kaldığı yerden devam eder:
- Bir sonraki etkileşiminizde, sistem çalışma alanınızın geçerli durumunu otomatik olarak kontrol eder.
- Aracı mevcut senaryoyu algılar ve "8 görevden 3'ünün tamamlanması" gibi geçerli ilerleme durumunu gösterir.
- Aracı, bayat görevleri (önceki kesintiye uğramış bir oturumdan takılı kalmış olanları) algılar ve bunları devam etmeyi veya yeniden başlatmayı teklif eder.
- Tercihlerinizi
scenario-instructions.mdkonumundan yeniden yükleyen ajan.
IDE arası süreklilik
Git'te durum bulunduğu için, yükseltme işlemi sırasında VS Code, Visual Studio ve Copilot CLI arasında geçiş yapabilirsiniz. Klasör .github/upgrades/ , her iki IDE'nin de anladığı paylaşılan durumdur.
Tavsiye
.github/upgrades/ Klasörü dalınıza işleyin. Ekip üyelerinin ilerleme durumunu görüntülemesine veya yükseltmeye farklı bir makinede devam etmesine izin vermek için dalını uzak bir depoya gönderin.
Akış modları
Aracı, ne kadar gözetim sahibi olduğunuzu denetleyebilen iki akış modunu destekler: Otomatik mod ve Kılavuzlu mod.
Otomatik mod
Aracı, onay için duraklatmadan tüm aşamalarda (değerlendirme, planlama ve yürütme) çalışır. Önemli bulguları ve ilerleme güncelleştirmelerini ortaya çıkartır, ancak ilerlemeye devam eder.
Deneyimli kullanıcılar, basit yükseltmeler ve küçük çözümler için en iyi yöntemdir.
Kılavuzlu mod
İncelemeniz için ajan, her aşama sınırında duraklatılır.
- Değerlendirmeden sonra: "İşte bulduklarım. Yükseltme seçenekleriyle devam edebilir miyim?"
- Planlamadan sonra: "İşte görev planı. İnfazı başlatmamı ister misin?"
- Karmaşık görev dökümlerinden önce: "Bu görev karmaşık. İşte bunu nasıl böleceğim."
İlk kez kullananlar, karmaşık çözümler ve süreci öğrenmek istediğiniz zamanlar için en iyi yöntemdir.
İstediğiniz zaman modlar arasında geçiş yapma
- Kılavuzlu moda geçmek için "duraklat" veya "kılavuzlu moda geç" deyin.
- Otomatik moda geçmek için "devam et" veya "devam et" deyin.
Tavsiye
İş akışını anlamak için ilk yükseltmeniz için Kılavuzlu mod ile başlayın, ardından rahatladıktan sonra Otomatik'e geçin.