Visual Studio 2008 e le versioni del .NET Framework

Ho ricevuto alcune domande riguardanti le versioni del .NET Framework installate con VS 2008 e vorrei tentare di fare un po’ di chiarezza, spero J…

Con Visual Studio 2005 uscì la versione 2.0 del .NET Framework, cioè la v2.0.50727

Poi uscì Windows Vista con cui fu rilasciata la versione 3.0 del .NET Framework che in sostanza aggiungeva i seguenti componenti: WCF, WPF, WF e WCS.

La versione 3.5 del .NET Framework aggiungerà altre funzionalità che andranno ad appoggiarsi a quelle del Framework 3.0. Quindi potremmo vedere la cosa in questo modo, come illustrato in figura:

image

Come potete notare dalla figura ho evidenziato per le versioni di NET 3.0 e 2.0 anche il terzo e quarto gruppo di numeri: infatti l’installazione di .NET 3.5 porta con sè degli aggiornamenti anche per le versioni 2.0 e 3.0 di .NET, tali aggiornamenti riguardano in generale fix e miglioramenti delle performance.

Per renderci conto di questi aggiornamenti possiamo andare a vedere la versione di mscorie.dll sotto C:\Windows\Microsoft.NET\Framework\v2.0.50727, su una macchina con Windows Vista, dove non è stato installato .NET 3.5, la versione del Framework 2.0 dovrebbe essere 2.0.50727.312, notate gli ultimi numeri della revisione, mentre su una macchina in cui è installata la beta 2 di VS 2008 trovate la versione 2.0.50727.1318, come vedete dalle figure seguenti, dove la prima si riferisce ad un Windows Vista in cui non è installato VS 2008, mentre nella seconda siamo su una macchina con la Beta 2 installata.

image image

Un' ultima cosa: mentre quando siamo passati dalle versioni 1.x di .NET alla 2.0 è stato aggiornato anche l'engine del CLR, questo non avviente passando dalla versione 2.0 alle 3.0 e/o alla 3.5. Questo ci fa capiere che le novità introdotte ai linguaggi (C# 3.0, VB 9) sono delle vere e proprie estensioni al CLR.

Riassumendo

Visual Studio 2008 verrà rilasciato insieme alla versione 3.5 del .NET Framework e a degli aggiornamenti per la versione 3.0 e 2.0 di .NET su cui esso stesso si basa.  Quindi le vostre applicazioni scritte con .NET 2.0 e .NET 3.0 continuerranno a funzionare, certo a meno che non abbiate sfuttutato qualche bug del Framework che verrà corretto :-)