.NET ekosisteminde neredeyse her yıl yeni sürüm ortaya çıkmakta ve her birinde önemli performans iyileştirmeleri ve yeni özellikler bulunmaktadır.
Versiyonlar ilerledikçe eski .NET versiyonlarına verilen destek azalmakta veya sonlanmaktadır. (Out of support)
.NET için son sürümlerinin tarihçesi |
Bu doğrultuda .NET geliştiricileri olarak uygulamaları güncel tutmak için versiyonları yükseltmeye ihtiyaç duyulur fakat bu geçiş kolay değildir. Paketlerin .NET versiyonları, bağımlılıklar, kodların yükseltilen versiyonlarla uyum sağlaması, kod düzenlemesi için efor harcanır.
Bu makalede versiyon güncellemede geliştiricilere kolaylık sağlayacak bir araç olan ".NET Upgrade Assistant" aracını ele almak isterim.
".NET Upgrade Assistant", .NET uygulamasını modernize hale getirmek için yardımcı bir araçtır. Visual Studio IDE veya CLI üzerinde kullanılabilir. Görsel arayüz üzerinden daha kullanışlı olduğuna inanıyorum.
.NET Upgrade Assistant - Visual Studio Marketplace linki için
tıklayın.
Desteklenen Proje Tipleri
Asp.Net Web App - Web API, Class library, Console, WPF, WinForms
Desteklenen Diller
C#, Visual Basic
Visual Studio üzerinden kullanmak için;
Menü -> Extensions(Uzantılar) -> Manage Extension (Uzantıları Yönet) adımları ile aşağıdaki pencere açılır.
Manage Extensions |
Online indirileceği için Online -> Visual Studio Marketplace sekmelerinden ".NET Upgrade Assistant" uzantısı bulunur ve Download butonuna tıklanır. Yüklemenin başlaması için Visual Studio pencereleri kapatılmalıdır.
Analiz için Yardımcı
Açılan pencereden New Report'a tıklayarak analiz başlatılacaktır.
Açılan ekrandan analiz edilmesi istenen projeler seçilir.
Proje .NET 5 sürümünde olduğundan dolayı bir sonraki versiyonlarından seçilebilecek versiyonların listesi görünmektedir. Bu versiyonların en son destek tarihleri, sizin hangi versiyonu seçmeniz gerektiği yönünde tercihinizi etkileyebilir.
- LTS - Long Term Support
- STS - Standart Term Support
Bu örnekte .Net 8.0 seçilmiştir. Next butonuna tıklanır.
Analiz ayarlarından Kaynak kod ve config ayarları ile bağımlılıkların analiz edilmesi için iki seçenek de seçildikten sonra Analiz butonuna tıklanır.
Yükseltme için Yardımcı
Analiz aşaması bittikten sonra projenin otomatik olarak yükseltilmeye başlayalım. Yükseltilecek projeye sağ tıklayarak Upgrade sekmesi seçilir.- In-place Project Upgrade: Kopya oluşturmadan mevcut proje üzerinde gerekli değişiklikler yapılarak yükseltme işlemi gerçekleşir.
- Side-by-side Project Upgrade: Projenizi kopyalar ve kopyayı yükselterek özgün projenizi tek başına bırakır.
- Side-by-side Incremental Project Upgrade: Web uygulamaları için iyi bir seçimdir. (ASP.NET'den ASP.NET Core'a yükseltmek) Parça parça yükseltilmesini sağlar. Yükseltme işlemi sırasında biraz elle yeniden kod düzenlemesi gerekir. Var olan uygulamanın yanına seçilen sürümde bir uygulama oluşturur. Yeni uygulama üzerinden eski sürümdeki uygulamaya yönlendirme yapılır.
- İçi dolu yeşil renk: Yükseltme işlemi başarılı oldu.
- İçi boş yeşil renk: Yükseltme başarılı fakat doğrudan bir işlem yapılmamıştır. Doğrudan dönüşümden etkilenme durumuna göre değişmektedir.
- Sarı uyarı işareti: Yapıt yükseltildi, incelenmesi gereken uyarı mevcuttur.
- Kırmızı: Yükseltme işlemi başarısız oldu.
Yükseltme sonuçları |
Benzer işlemler, solution altındaki bütün projeler için uygulanabilir.
Farklı bir proje tipi için, web uygulamalarının sürüm yükseltilmesini ele alacağım.
net8.0'a yükseltilmesi için aşağıdaki gibi seçim yapılır.
Değişiklik özetinde; hem mevcut uygulama hem de yeni uygulama aynı solution altında barınmaktadır. İki proje de "Set as Startup Project" başlangıç projesi olarak ayarlıdır.
.NET Core web projesine YARP - Proxy paketi dahil edilmiştir. Sebebi .NET Core projesi ayağa kaldırılırken aynı zamanda mevcut proje de ayağa kaldırılacak ve mevcut projeye de yönlendirme yapılabilmesini sağlar.
Bu görsel, reverse proxy yardımıyla ile yeni uygulamanın portu 7091 üzerinden mevcut uygulamanın portu olan 34932'ye yönlendirme yapılmıştır.
Konsoldaki işlem bilgi logları |
launchSettings.json da proxy yapılacak yolun verilmesi |
.NET Core uygulamasında Program.cs ile yönlendirme yapılması |
Özetle;
".NET Upgrade Assistant", .NET uygulamasını modernize hale getirmek için analiz ve yükseltme konularında yardımcı bir araçtır. Farklı proje tiplerinde destek vermektedir.
Yorumlar
Yorum Gönder