.NET sürüm sayısı ve mantığı

Womanne

Member
Geçtiğimiz birkaç haftadaki bazı müşteri görüşmelerinde, birçok .NET geliştiricisinin Microsoft’un .NET sürüm sayısını ve gelecek .NET Framework sürümlerinin yapısını anlamasının ne kadar zor olduğunu fark ettim.

Duyuru



Eskiden her şey daha iyiydi…

.NET 1.0, 1.1 ve 2.0 (neredeyse) zamanında her şey çok açıktı: .NET’in her sürümü kendi çalışma zamanı ortamı sürümüne (Ortak Dil Çalışma Zamanı – CLR), kendi sınıf kitaplığı sürümüne (Framework Class) sahipti. Library – FCL) ve Visual Basic .NET, C#, JScript .NET ve .NET için C++ (diğer adıyla Managed C++ veya C++/CLI) programlama dillerinin yanı sıra ASP.NET ve Windows Forms arayüz kitaplıkları için kendi sürümleri . C# diliyle her zaman bazı tutarsızlıklar olmuştur, çünkü dilin derleyicisi C#’ın ilk sürümünde 7.0 sürümüyle birlikte gönderilmiştir. Biraz güncellenen 1.1 sürümünde 7.1, 2.0 sürümünde ise 8.0’dı. Bu nedenle bugün bazı geliştiriciler C# 2.0’dan, bazıları C# 8.0’dan bahsediyor ve başka bir grup da C# 2005’i kullanıyor, bu ürünün resmi adıdır.

.NET 3.0 ile işler karmaşıklaşıyor…

WinFX, .NET’in 3.0 sürümü olarak seçildiğinden beri her şey çok daha karmaşık hale geldi: .NET 3.0 yeni bir CLR, yeni FCL ve yeni bir dil sürümü içermiyor. Tüm bu bloklar sürüm (ve sürüm sayacı!) 2.0 seviyesinde kalıyor. 3.0 sürüm sayacından başlayarak yalnızca birkaç kitaplık eklenmiştir.

.NET Framework 3.0, CLR 2.0, FCL 2.0, ASP.NET 2.0, Windows Forms 2.0, C# 2.0 (diğer adıyla C# 2005) ve Visual Basic 8.0 (aka Visual Basic 2005) (şemadaki mavi alan) ve sarı alandan oluşur eklemeler




Resim 1 [1125 x 818 Pixel @ 84,2 KB]




Diyagramdaki .NET'in yapısı

Diyagramdaki .NET’in yapısı (büyütmek için tıklayın!)

Sürüm numaralarının bu birleşimi, .NET 2.0 için geliştirilen uygulamaların .NET 3.0’da da düzgün çalışması gerektiği avantajına sahiptir. .NET 3.0, .NET 2.0’ın gerçek bir uzantısından başka bir şey değildir. Zaten .NET Framework 2.0 bulunan bir bilgisayara .NET Framework 3.0 yüklerseniz yalnızca bazı ek derlemeler (DLL’ler) ve yapılandırma dosyaları kopyalanır.

.NET 2.0 için iki uzantının .NET 2.0 ile hemen hemen aynı anda piyasaya sürüleceği ancak bunların .NET 3.0’ın parçası olmayacağı gerçeği durumu daha da karmaşık hale getiriyor:

PowerShell başlangıçta WinFX’in bir parçasıydı ve daha sonra .NET 3.0 haline geldi. AJAX uzantıları da .NET 3.5’in parçasıydı. Artık her iki yapı taşı da .NET 2.0 için eklentilerdir

.NET 3.5 ile pek çok şey yeniden bir araya geliyor…

.NET 3.0’ın halefi (kod adı “Orcas”) şu anda .NET 3.5 olarak adlandırılacak ve 2007 sonlarında piyasaya sürülecek. .NET 3.0’dan farklı olarak .NET 3.5, CLR, FCL ve dillerin yeni sürümlerini içerecek çünkü yeni özellikler nesne ilişkisel eşleme (ADO.NET Entity Framework) ve gömülü SQL (aka: Language Integrated Query – LINQ) gibi her düzeyde değişiklik gerektirir. .NET 3.5 ayrıca Microsoft ASP.NET AJAX’ın geliştirilmiş bir sürümünü de içerecektir. Microsoft, 2006 yılı sonunda ASP.NET AJAX’ın temel versiyonunu sağlayacağını ve “Orcas” ile önceki ATLAS projesinin tüm fonksiyonlarını kullanıma sunacağını açıklamıştı. Şu ana kadar PowerShell’in .NET çekirdeğine yeniden entegre edildiğine dair bir kanıt yok.

Visual Studio gecikti…

Ayrıca, Visual Studio geliştirme ortamı artık .NET ile eşzamanlı olarak çalışmamaktadır:

  • .NET 1.0, Visual Studio .NET 2002 ile geliştirildi
  • .NET 1.1, Visual Studio .NET 2003 ile geliştirildi
  • .NET 2.0’da Visual Studio 2005 (.NET olmadan!)
  • .NET 3.0 için hâlâ yalnızca Visual Studio 2005 bulunmaktadır. WPF, WCF ve WF eklentileri yalnızca erken beta aşamasındadır. Dolayısıyla yeni kütüphanelerle gelişmek ilk başta pek eğlenceli olmayacak.
  • Yalnızca .NET 3.5 ile Visual Studio’nun yeni bir sürümü olacaktır (muhtemelen Visual Studio 2007).
Bununla ne yapmalı…

Geçtiğimiz birkaç hafta içinde, benim dışımda sürüm sayma konusunda mantıktan yoksun birçok .NET yazılım geliştiricisinin de olduğunu fark ettim. .NET ana sürüm numarasını CLR ile senkronize tutmak ve yalnızca sınıf kitaplıklarını etkileyen uzantılar için bir alt numara seçmek daha mantıklı olurdu: yani 3.0 yerine .NET 2.5 ve 3.5 olması gereken şey için 3.0! AJAX uzantılarının özel durumu da utanç verici.

Bunların çoğu kesinlikle tarihsel gelişmelerle (ASP.NET AJAX uzantıları başlangıçta beklenenden çok daha erken ortaya çıkıyor) ve belki de Microsoft’un sürüm sayısı açısından Java’yı yakalama arzusuyla açıklanabilir. Bu teoriye inanıyorsanız Microsoft kesinlikle “Orcas” sürümünü 3.5 değil 4.0 olarak adlandıracaktır.

Ve konuya biraz alaycılık eklemek gerekirse: Sürüm tutarsızlıklarının iyi yanı, .NET kullanıcılarının bakış açısı için benim gibi danışmanlara ihtiyaç duymaya devam edecek :). Ancak dürüst olmak gerekirse, bazen müşterilere .NET Framework’ün sürüm sayısını ve yapısını açıklamak yerine proje zamanını daha mantıklı kullanmayı tercih ederim…
()



Haberin Sonu
 
Üst