28 Kasım 2024 Perşembe

Peki Ama Hangisi? .NET Framework vs .NET Core vs Java

25 yıla yakın süredir profesyonel bir yazılımcı / bilgi işlemci / bilgisayar mühendisi olarak, bu soruya mühendislik yaklaşımı ile net bir cevap vermeye çalışacağım…

Microsoft .NET Core teknolojisinin destek (support) süreleriyle ilgili bilgileri aşağıdaki adreste (link) bulabilirsiniz:

https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core  

Dikkat ederseniz, çift rakamlı sürümlerin 3 yıllık desteği, tek rakamlı sürümlerin 1.5 yıllık desteği mevcut ve Microsoft forumlarında, karşılaştığınız bir hatayla ilgili soru sorup, destek istediğinizde, desteklenmeyen bir sürüm kullanıyorsanız, ilk tavsiye ettikleri, desteklenen bir sürüme geçmeniz oluyor. Tabii, sürümler arasında geçiş de maalesef çok rahat değil. Arada uyumsuzluklar mevcut.

Karşılaştırmak için başka bir örnek verirsek, eski Microsoft .NET Framework teknolojisinin destek süreleriyle ilgili bilgileri aşağıdaki adreste bulabilirsiniz:

https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-framework  

.NET Framework 3.5 SP1’nın destek süresi neredeyse 21 yıl civarında ve bu yazının yazıldığı tarihte daha yaklaşık 4 yılı bulunmakta. Eski .NET Framework’ün en son sürümü olan 4.8.1’in ise destek başlangıcı 2022 yılı ve destek bitiş süresi belirtilmemiş. Burada ise bir sürpriz beklenmiyor ve en az 10 yıl, 2032’e kadar, hatta ötesine desteklenmesi bekleniyor. Bunun da sebebi, söylentilere göre, Microsoft kendi ürünlerinde (gerek kendi web siteleri ve SQL Server Management Studio gibi masaüstü uygulamalarda) yoğun olarak hala .NET Framework'u kullanmaya devam etmesi gösterilebilir.

.NET Framework’un değil ama .NET Core’un direkt rakibi olan Java’nın destek süreleriyle ilgili bilgileri aşağıdaki adreste bulabilirsiniz:

https://www.oracle.com/java/technologies/java-se-support-roadmap.html

Java’nın uzun süreli destek (LTS – Long Term Support) sürümlerinin, .NET Framework kadar olmasa da, 5 yıl gibi yeterli bir süreye sahip olduklarını görebiliyoruz. Java sürümleri arası geçişlerin ise nispeten sorunsuz olduğu da bilinen bir gerçektir.

Yukarıdaki bilgiler ışığında, eğer ki elimde başlangıcından sonuna, 1 yıl ya da daha fazla sürecek, bir proje varsa, kesinlikle projenin sonunda tekrardan yükseltme gerekeceği ve sürümler arası uyumsuzluklar olduğu için, 1.5 yıl desteği olan tek rakamlı .NET Core sürümlerini tercih etmem. 3 yıl desteği olan çift rakamlı .NET Core sürümleri de daha uzun (2 – 2.5 yıl gibi) projeler için aynı sebeple uygun olmayacaktır. Bu konuda ise önerilerim aşağıdaki gibidir:

1.) Eğer ki uygulamalarınızı Windows ortamında çalıştıracaksanız, ilk tercihiniz .NET Framework 4.8.1 olmalı. 2032 yılına kadar, hatta ötesine Microsoft destek veriyor.

2.) Eğer ki uygulamalarınızın multi-platform olarak çalışmasını istiyorsanız, son tercihiniz .NET Core olmalı, çünkü Java en baştan beri .NET Core’dan farklı olarak multi-platform olarak tasarlanmıştır, sorunsuz bir şekilde birçok platformda çalışır. .NET Core ise .NET Framework baz alınarak multi-platform olması için geliştirmeye (yamanmaya da denebilir) başlanılmıştır. Ne kadar bu konuda başarılı olduğu ise, benim görüşüme göre, biraz tartışmalıdır.

Hiç yorum yok:

Yorum Gönder