2008年9月10日 星期三

.NET Framework 版本跟 CLR 版本

常看到很多人 (甚至是開發者) 在討論 Framework 版本的時候,對於幾個版本之間的關係還是不大了解。這也不能怪他們因為 MS 在 3.0 的時候把原來的架構破壞了。本來的架構是,一個版本就一個新的 CLR,CLR 可以向下相容 (大致上),也可以共存,開發出來的程式就是針對某個 Framework/CLR 版本,非常明瞭。但到了 Framework 3.0/3.5 之後卻演變成還是使用跟 2.0 同個 CLR 版本,只是在上面新增功能。所以其實這就是為什麼有人說就算你用 2.0,還是可以使用 3.0/3.5 的功能,只要能參考 3.0/3.5 的 DLL 就好了。下圖是 Framework 版本跟 CLR 版本的對照表:

.NET Framework 版本 CLR 版本
1.0 1.0
1.1 1.1
2.0 2.0
3.0 2.0
3.5 2.0

我想 4.0 應該真的會是連 CLR 都一起升級的大改版了吧。

Windows Vista 內建的 3.0,跟原來釋出的 3.0,以及 2.0 跟 3.0/3.5 的 關係在下面這張圖就顯示的很清楚,其中 Green Bits 跟 Red Bits 分別為微軟在開發 3.5 的時候稱 3.5 那塊跟 3.0/2.0 那塊的代號:

fx35 

出處:http://www.danielmoth.com/Blog/2007/06/net-framework-35.html

沒有留言: