Intune ekibi .NET Framework servisini GitHub Copilot modernization ile .NET 8'e taşıdı
Microsoft Intune ekibi, kayıt servisini .NET Framework 4.7.2'den .NET 8'e AKS üzerine taşırken GitHub Copilot modernization ajanını kullandı. Bir kütüphane geçişinde yaklaşık altı haftalık işi bir buçuk haftada tamamladığını bildiriyor. Yazının asıl değeri, geçişi planla ve ilerleme dosyalarıyla yönetme yöntemi ile ajanın nerede yetersiz kaldığını anlatmasında.
Kilit noktalar
- Servis .NET Framework 4.7.2'den .NET 8'e geçirildi ve AKS'e taşındı; kod ve barındırma geçişi iki ayrı değişiklik olarak ele alındı.
- Ajanın çıktısını taşımadan önce, elle migrate edilmiş sınıflar üzerinde karşılaştırarak doğrulayın.
- migrationplan.md ve progress.md gibi dosyaları depoda tutun; ajan sonradan yapılan düzenlemeleri izler.
- Pull request'leri bir controller, bir API yolu veya küçük bir uçtan uca senaryo ile sınırlandırın.
- Intune'a özgü iç kütüphaneler için ajan eşleme yapamadı; bu eşlemeleri custom skill olarak ekleyin.
- Yazar, Visual Studio ve VS Code'a ek olarak GitHub Copilot CLI, GitHub Copilot uygulaması ve GitHub.com'da da modernization özelliğinin bulunduğunu belirtiyor.
Intune ekibinin sorumlu olduğu, cihazların kayda başladığı PaaS servisi .NET Framework 4.7.2 üzerinde çalışıyordu. Barındırma ortamı AKS'e taşınırken uygulama kodu da .NET 8'e geçirildi. Yazar, GitHub Copilot modernization ajanını Visual Studio içinde agent modunda kullandı ve ilk kütüphanede dört haftadan fazla zaman kazandığını belirtiyor. Ajanın önerileri, elle yaptığı bir örnekle karşılaştırılarak güven kazanıldıktan sonra daha büyük kapsamda kullanıldı.
Ajan oturumlar arasında geçiş durumunu tutamadığı için yazar migrationplan.md ve progress.md dosyalarını depoda düzenli tuttu. Plan, küçük ve incelenebilir pull request'lere bölündü. Derleme hatası kayıtları günlük göreve eklendi. Windows kayıt kütüphanesi için tahmini altı hafta süren iş bir buçuk haftada bitti. Intune'a özgü iç kütüphaneler için ajan doğru NuGet paketini bulamadı; bu eşlemeler elle yapıldı ve yazar bunları ekip içi skill olarak paylaştı.
Gerçek dünyada kullanımı
- Eski .NET Framework kayıt veya PaaS servisini AKS üzerinde .NET 8'e taşıyan ekipler.
- Kurumun kendi iç kütüphaneleri olan ve birçok dosyaya yayılmış API çağrıları içeren çok kütüphaneli projeler.
- Geçişi haftalar süren, birden fazla sprint'e yayılan ve oturumlar arasında durumun korunması gereken uzun migration işleri.
Neden önemli
Ajanı büyük bir migration'a koymadan önce küçük bir karşılaştırma yapmak ve geçiş planını depoda elle düzenlenebilir tutmak, .NET Framework'ten .NET 8'e geçişte zamanı ciddi biçimde kısaltabilir. Kurumsal kütüphanelerin eşlemelerini ise yine geliştiricinin kendisi hazırlamalıdır.
Benzer haberler
- .NET 8 projesi 10 Kasım'dan önce .NET 10'a geçmeden önce nerelere bakmalıDEV Community: #csharp25 Eki
- C# interface'lerinde collection dönüş tipleri: interface, view ve snapshot farkıNick Cosentino (Dev Leader)2 gün önce
- CritterWatch 1.1 dead letter'ları hata nedenine göre gruplayıp tek işlem olarak yönetirJasperFx (Critter Stack) Blog4 gün önce