.NET 11 Önizleme 3: Bir Geliştiricinin İncelemesi
Her ekip eski bir .NET uygulaması taşırken, yükseltmenin zor kısım olmadığını bilir. Hedef çerçeveyi ayarlamak bir öğleden sonradır. Zor kısım, kod tabanının on yıl boyunca sessizce uyduğu her şeydir: sadece Windows'ta çalışan bağımlılık, kimsenin tam olarak hatırlamadığı veri akışı, üretimde yanlış baktığınızda kırılan bileşen. Bu, modernizasyonun her zaman takıldığı iştir, ve yine de bunu yapma baskısı sürekli artıyor.
Oturum, bir Forrester figürüyle başlıyor: BT liderlerinin %94'ü uygulama modernizasyonunu önümüzdeki 6 ila 12 ayda bir yatırım önceliği olarak gördü. Slayttaki çerçeve altındaki rakamı mühendislerin gerçekliğiyle kesiyor: "Ama, teknik borçla mücadele ediyorsunuz." Bu gerilim, oturumun var olma nedenidir.

Bu aynı zamanda Jeff Fritz, Nish Anil ve Hazem El-Hammamy'nin Build 2026 breakout'larında bir AI aracına karşı yaptıkları çalışmadır, Eski uygulamalara yeni numaralar öğretmek için AI araçları kullanma (BRK220). Oturum, GitHub Copilot'un modernizasyon yeteneklerini mühendislerin korktuğu işin parçalarına üstlenirken gösteriyor: büyük bir kod tabanını okuma, bağımlılıkları haritalama, yükseltmeyi planlama ve güvenli bir şekilde yeniden yapılandırma. Belge oluşturma ve işleme alanında çalıştığımız katmanın perspektifinden izledik ve en yararlı çıkarım, ajanın neleri yüzeye çıkardığı ile ilgili, sadece yeniden yazdığı şeyle değil.
İlginç kısım bağımlılık haritası
Jeff'in oturumun dilimi, pratik .NET geliştirici bakış açısı: ajanı gerçek bir eski uygulamaya yönlendirin ve çözülmesi gerektiği şekilde bırakın. Bir kod tabanını analiz etmek ve veri akışlarını elle izlemek, modernizasyonu çok çeyrekli bir proje haline getiren adımdır, çünkü yavaş ve yanlış yapmak kolaydır. Portföyün tamamında gezinebilen, bağımlılık grafiği oluşturabilen ve taşınmayacak şeyleri işaretleyebilen bir ajan, bu adımı haftalardan bir çalışma oturumuna sıkıştırır.

Ajanın işaretlediği şey hızdan daha önemlidir. Ajan bağımlılıkları haritaladığında, hedef ortamı engelleyen şeyleri arar, ve belirli bir kategori eski .NET uygulamalarında tekrar tekrar ortaya çıkar: çalıştığı makineye bağlı olan kod. Klasik örnek belge işleme. Şaşırtıcı miktarda eski iş mantığı, PDF'ler, elektronik tablolar ve Word dosyaları, Office otomasyonu, COM interop veya bir masaüstü varsayan bir yazdırma sürücüsü aracılığıyla üretir. Bu kod 2015'te bir Windows sunucusunda gayet iyi çalıştı. Ancak bir Linux konteynerine veya bir Azure İşlevine taşınmaz, çünkü otomatikleştirilecek bir Office yoktur ve çağrılacak bir COM yoktur. Ajan bunu bir engelleyici olarak yüzeye çıkaracaktır. Soru, bunu neye yeniden yapılandırmanız gerektiğidir.
Taşınmayı başaran bağımlılıklara doğru yeniden yapılandırma
Bu, modernizasyonda belge katmanın karar verildiği andır ve işimizin yer aldığı yerdir. Tüm taşımanın amacı, ölçeklenen ve düzgün bir şekilde dağıtılan bir ortamda sonuçlanmaktır: konteynerler, sunucusuz, çok platformlu CI. Dolayısıyla, makineye bağlı belge kodunun yerine, bu varsayımların hiçbirini taşımayan yönetilen bir .NET kütüphanesi olmalıdır.
Engelleyici PDF üretimi olduğunda, IronPDF, HTML'den PDF'ler üretir, ofissiz ve interopsuz saf .NET üzerinde, böylece yeniden yapılandırılan kod, modernize edilmiş uygulamanın geri kalanının taşındığı aynı konteynerde çalışır. Eğer elektronik tablo otomasyonuysa, IronXL, Excel dosyalarını Office Interop veya COM olmadan okur ve yazar, ki bu zaten ajan tarafından işaretlenen bir bağımlılıktır. Aynı şey IronWord ile Word üretimi için geçerlidir ve eski uygulamaların genellikle hassas araçlarla ele aldığı taranmış-belge ve görüntüden metne yolları için, IronOCR bu adımı işlem içinde tutar. Her biri yeniden yapılandırma için yerli bir hedef olarak kullanılabilir: ajan, COM veya interop çağrısını tanımlar ve yeni kod, her platformda aynı davranışı sergileyen bir kütüphanedir.
Bunun agentic refactoring ile iyi eşleşmesinin nedeni, yer değiştirmenin belirleyici olmasıdır. Ajan, yeni API normal bir .NET kütüphanesi olduğunda ve gerçek bir dosya döndüğünde, başsız çalışır ve hiçbir ana bilgisayar yapılandırmasına ihtiyaç duymadığında, bir çağrı yerini güvenle yeniden yazabilir. Hedefte kurulacak bir şey, makine başına lisanslanacak bir şey, işletim sistemine bağlı bir şey yoktur. Bu, 'ölçekli güvenli bir şekilde yeniden yapılandırma'nın gerçekten güvenli olmasını sağlayan özelliktir.
Somut bir şekil
Hepsini birleştirin ve modernizasyon döngüsü böyle görünüyor. Ajan, eski uygulamayı analiz eder ve bağımlılık haritasını oluşturur. Engelleyiciler arasında, bir konteynerde çalışmaya başladığında başarısız olacak türde bir otomasyonla faturalar üreten bir rapor hazırlama modülünü işaretler. Yükseltme planı bunun değiştirilmesini gerektirir. Ajan, çağrı yerlerini bir yönetilen kütüphaneye, fatura PDF'leri için IronPDF'ye, veri ihracı için IronXL'ye ve modül artık diğer her şeyle aynı Linux konteynerinde çalışır. Uygulama hareket eder ve belge katmanı Windows'a sabitleneceğine taşınır.
Bu, çerçeveyi modernize etmek ile uygulamayı modernize etmek arasındaki farktır. Çerçeve yükseltmesi mekaniktir. Uygulama yalnızca bağımlılıkları hareket ettiğinde gerçekten taşınır ve belge katmanı onu geri tutan en yaygın şeylerden biridir.
Nereye gidilmeli
Oturum GitHub Copilot modernizasyon belgelerine işaret eder ve komuta merkezi, kural kitapları ve ana çerçeve yetenekleri için özel önizleme kaydı içerir. Microsoft, 16 Haziran'da sanal .NET Agentic Modernization Day'i ile bu konuyu devam ettiriyor ve Build tam özellik listesi her duyurulan şeyi kapsıyor. İlgili breakout Modernize intelligent apps and agents with .NET that scale as you grow (OD801) ile bu oturumun eşleştirilmesi değerli.
Bir modernizasyon turu planlıyorsanız, ajan onları bulmadan önce engelleyicilerinizin hangilerinin belge ile ilgili olduğunu bilmeye değer. IronPDF, IronXL, IronWord ve IronOCR hepsi ücretsiz denemeler sunar ya da tam set olarak Iron Suite, böylece bağımlılık haritası geri geldiğinde yeniden yapılandırma hedefi hazır olur. Ajan eski uygulamaya birçok yeni numara öğretebilir. Onu temiz bir yere indirmek hala mühendislerin çağrısıdır.

