Şimdi yükleniyor

Seçtiklerimiz

.NET Modernizasyonunda Yepyeni Bir Dönem: GitHub Copilot ile İstediğin Yerden

.NET Modernizasyonunda Yepyeni Bir Dönem: GitHub Copilot ile İstediğin Yerden

Modernizasyon: Korku Filmi mi, Yoksa Artık Çerez Gibi mi?

Şimdi açık konuşacağım: .NET modernizasyonu dendiğinde içim bir tuhaf oluyor. Hani “yine saç baş yolacağız” hissi… Hiç unutmam, 2008’de ilk ciddi migration işime bulaştığımda elimde doğru düzgün dokümantasyon yoktu; kodun hangi köşesinden ne fırlayacak kestiremiyordum (ki bu çoğu kişinin gözünden kaçıyor). Bir de ekip dağılmış — biri Visual Studio’da gömülmüş, öteki terminalci olmuş, başka bir arkadaş ise uzaktan SSH’la müdahale peşinde. Koordinasyon? Yani, olsa şaşardım zaten! Net söyleyeyim; eski usul .NET güncellemesiyle ilgili güzel hatıram yok gibi.

Peki sonra ne oldu? Son birkaç yılda garip şekilde işler değişti. Hele bir de de Copilot ve AI tabanlı yardımcılar piyasaya dalınca işin rengi başka oldu. Tabii ki hâlâ “her şeyi makineye bırak gitsin” demiyorum ama—o el yordamıyla ilerleme dönemi biraz geride kaldı gibi sanki. Şimdi modernize-dotnet ajanı ortaya çıktı. Inanın denediğimde beklediğimden daha zahmetsiz geçti süreç.

.NET Modernizasyonu Herkes İçin Farklı Dert

Şöyle ki, Bazısı modernizasyon deyince tek tıklamayla her şeyin çözülmesini bekliyor; öyle olmuyor! Önce elindeki kodlara göz atacaksın: Hangi framework’ler kullanılmış? Dışarıdan çekilen kütüphaneler hâlâ ayakta mı? Güvenlik açısından çürük dişi var mı projenin? Ve asıl mesele şu—upgrade sırasında neler patlayabilir diye kafa yormadan bu işe girilmez. Mesela 2020’de Logosoft’taki finans projesini .NET Core’a taşırken dependency’lerin yarısından fazlası kafayı yedi; resmen hafta sonunu ofiste geçirdim o yüzden!

Eh, Bunu niye anlatıyorum? Çünkü çoğu ekip burada bocalıyor aslında. Kimisi Visual Studio’dan vazgeçemiyor, kimisi VS Code fanatiği, terminalciler ise tamamen ayrı telden çalıyor… Bilgi paylaşımı desen tam arap saçı.

Aynı Süreç Tüm Platformlarda Gerçekten İşliyor mu?

Sizi bilmiyorum ama beni en çok dumura uğratan konu şu oldu: Şimdi ister Visual Studio bağımlısı ol ister sadece shell’den takıl ya da direkt GitHub üstünden çalış — modernize-dotnet ajanıyla süreç hep aynı şablonda ilerliyor! Eskiden olsa gülerdim buna ama şimdi bayağı gerçekmiş.

Geçen ay büyük bir e-ticaret firmasında (isim vermeyeyim) klasik .NET Framework projesini Azure’a taşırken hem VS Code hem GitHub üstünden aynı modernization agent’ını kullandım — tek satır veri bile fire vermedi!

Peki Bu modernize-dotnet Ajanı Tam Olarak Ne Yapıyor?

Kafası karışık olan çok kişi gördüm; “Abi bu agent ne iş yapar?” diye soruyorlar hâlâ… Bak şimdi olay net:

  • Kapsam Değerlendirmesi: Kodun hangi noktalarında sıkıntılar var kısa ve öz rapor geliyor önüne.
  • Yükseltme Planı: Hangi adımlar sırasıyla yapılmalı net liste halinde sunuluyor—sürpriz faktörü sıfır!
  • Kod Dönüşümü Görevleri: Gerekli işleri küçük task’lara bölüp PR olarak takip etmeni sağlıyor (takımca tartışmaya da açabiliyorsun).

Tüm bunların güzelliği şu ki çıktılar kodun hemen yanında tutuluyor yani herkes sürecin şeffaf şekilde nasıl ilerlediğini görüyor, yeni gelen takım üyeleri için de ekstra rahatlık yaratıyor valla hoşuma gitmedi desem yalan olurdu (şaşırtıcı ama gerçek)

💡 Bilgi: Modernizasyon notlarını repoda tutmak kararları görünür ve izlenebilir hale getiriyor—kim neyi neden değiştirmiş kolayca takip edilebiliyor.

Süreç Takibi Şimdi Bambaşka Seviyede

Daha önceden işler kapalı kutuydu; “Bunu niye değiştirdik?” sorusu havada kalıyordu hep… Geçen yıl martta Logosoft’un telekom ekibinde eski bir .NET uygulamasında acayip panik anları yaşadık çünkü kimse upgrade planından bihaberdi! Bugün ajanın hazırladığı planlar sayesinde herkes yorum yapıp geri bildirim bırakabiliyor—sorular ortadan kalktı diyebilirim.

Nereden Devam Etmek İstersen Oradan Yürü!

İnanın, Bazen düşünüyorum da yıllardır yazılımda hayal edilen “herkes tek IDE kullansın” ütopyasını boşuna kovalamışız… Artık bakın olay nasıl dönüyor:

Sadece Terminal Sevenlere Copilot CLI Desteği Var mı?

Hani, Beni tanırsınız—GUI bazen insanı çıldırtabiliyor; hele shell bağımlıları için Copilot CLI ilaç gibi geldi bana sorarsanız! Komut satırından tek satırda bütün süreci döndürüyorsun mesela: (ki bu çoğu kişinin gözünden kaçıyor)

/plugin marketplace add dotnet/modernize-dotnet
/plugin install modernize-dotnet@modernize-dotnet-plugins
/agent
# örnek prompt:
upgrade my solution to a new version of .NET

Birkaç dakika sonra assessment dosyan repoya düşüyor… İstersen revizyon çekiyorsun veya olduğu gibi onaylayıp devam ediyorsun — sonrası otomatik zaten! macOS’ta .NET 10.0.5 ile Debugger Çökmesi: Bir Satır Kodda Büyük Sürpriz yazımızda da bu konuya değinmiştik. .NET 11 Preview 2: Yüzeyin Altında Neler Değişti, Gerçekten Fark Var mı? yazımızda da bu konuya değinmiştik. .NET 10.0.5 ile macOS Debugger Çökmesine Son: Saha Notları ve Pratik Tüyolar yazımızda da bu konuya değinmiştik. .NET 11 Preview 2: Deneyimlerim, Yenilikler ve Gerçek Hayat Notları yazımızda da bu konuya değinmiştik.

Ekip Olarak GitHub Üzerinden Senkron Olmak Kolaylaşmış Durumda

Açık söyleyeyim en büyük fark burada çıkıyor galiba… Eskiden millet kendi bilgisayarında upgrade’e girişir toplantının biri bitmeden diğeri başlardı. Geçtiğimiz Eylül’de bankacılık müşterimizde yaşadık bunu — herkes farklı yerlerdeydi iletişim zayıfladı sonuç berbat oldu! Şimdi modernization planını doğrudan repoya koyup birlikte inceliyoruz gereksiz toplantılar kendiliğinden çöpe gitti vallahi oh be dedirtiyor insana.

Klasikçi Misiniz? VS Code & Visual Studio Destekleri de Aynı Anda Cepte!

Kabul edelim bazı alışkanlıklardan kopmak zor… Ben VS Code tarafındaki uzantısını kurdum denedim — resmen iki tıkla workflow’a dalıyorsun başka ekstra zahmet yok! Visual Studio tarafında da sundukları imkan birebir aynı kaliteyi veriyor üstelik eski çalışma düzeninizi bozmadan entegre oluyorsunuz rahat olun yani telaşa gerek yok.

Peki Eksiği Yok mu Bunun?

“Her şey şahane mi?” derseniz orada duralım… Agent’ın analizleri bazen aşırı temkinli çıkabiliyor hatta riskleri olduğundan fazla gösterdiğine defalarca denk geldim özellikle Reflection kullanılan projelerde dikkat etmek lazım derim (ben geçen kasım ayını komple bununla harcadım mesela). Ayrıca monolit tipinde devasa projelerde çıkan görev listesi ilk anda aklı karıştıracak kadar uzun gelebiliyor—burada insandan kurtuluş henüz yok açıkçası.

Ama güzel yanı şu ki kontrol sende oluyor; dosyalara istediğin gibi müdahale et sil baştan başlat hiç sorun değil!

Mütevazı Ama Kritik Taktikler Buraya!

  • Karmaşa Varsa Ajana Körü Körüne Güvenme: Eski projelerde yanlış teşhis riski var illa insan eli değsin derim ben.
  • Küçük Adımlarla Yol Alın: Büyük dönüşümlerde parça parça hareket etmek stres seviyesini aşağıya çekiyor (bizzat tecrübe ettim).
  • Ekip Rolleri Başta Belli Olsun: Planlara kim göz atacak belli olmazsa eksikler kaynayıveriyor yazık olur vakte emeğe…
  • Ajan Güncellemelerini Es Geçmeyin: Plugin sürümü güncel değilse yeni özelliklerden mahrum kalırsınız unutmayın!

.NET Modernizasyonunun Nereye Gideceği Konusunda Birkaç Laf Daha…

Dürüst olmak gerekirse geldiğimiz noktada AI destekli modernization agent’larının yazılım geliştirme temposunu fena hızlandırdığı kesin ve hata payını ciddi azalttığını düşünüyorum abartmış saymam bence… Fakat her işi otomasyona bırakmak hâlâ hayalcilikten öte değil; insan dokunuşu olmadan tam randıman almak mümkün değil şimdilik!

Eğer bu alan ilginizi cezbettiyse mutlaka şuraya göz atmanızı tavsiye ederim:
.NET MAUI Geliştirme Sürecinde Yapay Zekâ Ajanlarıyla Hız Artışı. Orada bambaşka AI ajan hikâyeleri paylaşıyorum.


Kaynak:
Modernize .NET Anywhere with GitHub Copilot

Sıkça Sorulan Sorular

.NET modernizasyonu neden zor ve karmaşık oluyor?

Çünkü eski projelerde farklı framework’ler, bağımlılıklar ve kod yapıları karışık olabiliyor. Ayrıca ekip içi iletişim ve araç çeşitliliği süreci daha da karmaşıklaştırıyor. Kendi deneyimime göre, öncesinde kapsamlı bir analiz yapmadan işin içine girmek büyük sürprizlere yol açabiliyor.

GitHub Copilot modernizasyon sürecinde nasıl yardımcı oluyor?

Copilot, özellikle kod dönüşümünde ve önerilerde zaman kazandırıyor. Kod parçalarını otomatik tamamlayarak veya önererek işleri hızlandırıyor ama tamamen makineye bırakmak doğru değil; insan kontrolü şart.

modernize-dotnet agent nedir ve ne işe yarar?

Bu agent, projenin durumunu değerlendirip yükseltme planı çıkarıyor, gerekli kod değişikliklerini küçük adımlara bölerek takip etmenizi sağlıyor. Böylece hem süreç şeffaf oluyor hem de takım içi koordinasyon kolaylaşıyor.

.NET Core’a geçerken en çok hangi sorunlarla karşılaşılır?

En sık karşılaşılan sorunlar bağımlılık uyumsuzlukları ve güvenlik açıkları oluyor. Ben de geçmişte bir projede dependency’lerin yarısından çoğu sorun çıkarmıştı, bu yüzden önceden test ve analiz yapmayı asla atlamamak lazım.

Modernizasyon sürecinde hangi geliştirme ortamları kullanılabilir?

Visual Studio, VS Code veya terminal tabanlı araçlar gibi farklı ortamlar kullanılabilir. modernize-dotnet agent sayesinde hangi ortamda çalışırsanız çalışın süreç aynen ilerliyor, bu da çok büyük kolaylık sağlıyor.

Kaynaklar ve İleri Okuma

Porting to .NET Core Guide – Microsoft Docs

Modernize .NET apps with AI-powered dev tools – Azure Blog

GitHub Copilot Documentation

Modernize .NET apps with Azure Containers – Microsoft Docs

İçeriği paylaş:

Yorum gönder

Microsoft Azure & Office 365 Çözüm Uzmanı | Logosoft Bilişim'de Azure Danışmanı. 20+ yıl BT deneyimi, 6+ Azure sertifikası (AZ-305, AZ-104, AZ-500, AZ-400). Kurumsal bulut göçleri, güvenlik mimarisi, FinOps ve DevOps dönüşümü konularında stratejik danışmanlık sunuyorum. Bu blogda Azure, yapay zeka, Kubernetes ve modern bulut teknolojileri hakkında güncel içerikler paylaşıyorum.

SİZİN İÇİN DERLEDİK