Visual Studio ile .NET Uygulamasını .NET 10’a Modernize Etme
Visual Studio içine yerleşik GitHub Copilot modernizasyon araçları, eski.NET Framework uygulamalarını güncel.NET sürümlerine taşıma ve gerektiğinde Azure’a göç ettirme işini Copilot temelli bir ajan üzerinden yürütüyor. Bu yazıda Microsoft’un yayımladığı örneği takip ederek küçük bir.NET Framework uygulamasının.NET 10’a nasıl yükseltildiğini adım adım aktarıyorum. Odak noktası yalnızca yükseltme (upgrade) akışı; Azure göçü ayrı bir konu.
Modernizasyon aracının çalışma mantığı
Araç işi baştan sona kendisi yürütüyor ama süreci tek seferde bitirmiyor..NET yükseltme akışına kontrol noktaları (checkpoint) yerleştiriyor, böylece ajanın ne yaptığını görebiliyor ve ilerlemeyi istediğiniz sonuca doğru yönlendirebiliyorsunuz. Her kontrol noktasında oluşturulan Markdown dosyaları kaynak kontrolüne de eklenebiliyor; yani hem sürece giren hem de süreçten çıkan kararların kayıtlı bir izini elde ediyorsunuz.
Örnek uygulama: BookCatalog
Modernize edilen uygulama BookCatalog adında basit bir.NET Framework “forms-over-data” uygulaması. Kitapları listeleme, ekleme, düzenleme ve silme gibi klasik CRUD işlemleri yapıyor. Amaç UI’ı yenilemek değil, altta yatan çalışma zamanını ve kütüphaneleri modernleştirmek.
Adım 1: Örneği açmak
İlk iş, Microsoft’un yayımladığı depoyu klonlamak ve shared-legacy-app/ klasöründeki BookCatalog.sln dosyasını Visual Studio 2022 veya üstünde açmak:
git clone https://github.com/microsoft/dotnet-modernization-for-beginners.git
Klonlanan klasörde shared-legacy-app altında bulunan çözüm dosyasını Visual Studio içinde açmak yeterli.
Adım 2: Modernizasyonu başlatmak
Visual Studio içinde proje veya çözüm üzerine sağ tıklayıp Modernize seçeneğini kullanarak süreci tetikleyebilirsiniz. Alternatif olarak Copilot içinden @Modernize komutuyla da başlatmak mümkün.
Bu adım, GitHub Copilot sohbet penceresini modernizasyon için özelleştirilmiş bir ajanla açıyor. Ajan, tam olarak eski uygulamaları modernize etme sürecini yürütmek üzere ayarlanmış. Ekranda hazır örnek istemler (prompt) sunuluyor; doğal dilde ne yapmak istediğinizi de yazabilirsiniz. Bu örnekte en üstteki öneri seçiliyor: Upgrade to a newer version of.NET.
Ajan ardından iki soru soruyor:
- Hedef framework: Burada
.NET 10seçiliyor. - Akış modu: Kontrol noktalarında durup çalışmayı incelemek için Guided (yönlendirmeli) mod seçiliyor.
Guided mod, ajanın her önemli aşamada duraklayıp yaptığı işi gözden geçirmenize izin veriyor. Önce projeyi değerlendirip bir rapor üretiyor, ardından sorunları çözmek ve yükseltmeyi gerçekleştirmek için bir plan hazırlıyor. Raporu da planı da düzenleyebiliyor, üretilen raporu kaynak kontrolüne dahil edebiliyorsunuz.
Adım 3: Değerlendirme raporunu incelemek
Sürecin ilk çıktısı assessment, yani değerlendirme aşaması. Bu aşamada bulgular blocker (engelleyici), warning (uyarı) ve informational (bilgi amaçlı) olarak ayrıştırılıyor. Böylece yükseltme başlamadan önce mutlaka çözülmesi gereken noktaları görüyorsunuz.
BookCatalog örneğinde modernizasyon kapsamı iki temel dönüşümü içeriyor:
System.Web.Mvcdesenlerinden ASP.NET Core karşılıklarına geçiş.- Veri katmanının Entity Framework 6’dan EF Core’a taşınması.
Adım 4: Yükseltme planını gözden geçirmek
Değerlendirme onaylandıktan sonra ajan, yükseltmeyi nasıl yapacağına dair bir plan hazırlıyor ve bu planı üretmek için birkaç seçenek sunuyor. Seçenekleri değiştirmek mümkün, örnekte varsayılanla devam ediliyor.
Ajan planı oluşturduğunda üretilen adımları baştan sona okumak faydalı; uygulama üzerinde gerçekleştirilecek dönüşümlerin çerçevesi tam olarak burada belirleniyor.
Adım 5: Yükseltmeyi çalıştırmak
Plan onaylandığında ajan görevleri tek tek yürütmeye başlıyor. Guided mod her görevin arasında duraklıyor; böylece ajanın yaptığı değişiklikleri kontrol edip ilerleyebiliyorsunuz. Örnekte süreç toplam beş görev sonunda tamamlanıyor.
Uygulamayı doğrulama
Yükseltme bittikten sonra F5 ile uygulamayı çalıştırmak gerekiyor. Yazıda vurgulandığı gibi, işi bir yapay zeka ajanı yürüttüğü için ilk denemede her şeyin sorunsuz çalışmama ihtimali var; sonuçlar deneme başına farklılık gösterebiliyor. Böyle bir durumda Visual Studio içindeki GitHub Copilot hata ayıklama (debugging) özellikleri devreye giriyor ve sorunu hızlıca tespit edip düzeltmenize yardımcı oluyor.
Uygulama başarıyla ayağa kalktığında arayüzün tıpatıp eskisi gibi göründüğünü fark edeceksiniz. Modernizasyon ajanı UX’i yenilemiyor, sadece altyapıyı ve bağımlılıkları güncelliyor. Kullanıcı deneyimini iyileştirmek geliştiricinin tercihine bırakılmış.
Toparlarken
BookCatalog uygulaması böylece.NET 10’a yükseltilmiş oluyor. Aynı GitHub Copilot modernizasyon araç setiyle bir sonraki adımda uygulamayı Azure’a taşımak da mümkün. Microsoft ayrıca hem yükseltme hem de göç akışlarını daha ayrıntılı ele alan .NET Modernization for Beginners adında bir kurs yayımladı; süreci daha derinlemesine öğrenmek isteyenler için iyi bir başlangıç noktası.
Kaynaklar ve İleri Okuma
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- devblogs.microsoft.com
- Today I will… Modernize a.NET application – Visual Studio Blog
- microsoft/dotnet-modernization-for-beginners (GitHub)
- GitHub Copilot Modernize 101: Kodun Yorgunluğunu Kırmanın Yeni Yolu
- .NET Modernizasyonunda Yepyeni Bir Dönem: GitHub Copilot ile İstediğin Yerden
- GitHub Copilot Modernization C++ İçin GA: MSVC Yükseltmesi Artık Kolay







Yorum gönder