.Net 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

 

 

本來的架構是,一個版本就一個新的 CLR,CLR 可以向下相容 (大致上),也可以共存,開發出來的程式就是針對某個 Framework/CLR 版本,非常明瞭。但到了 Framework 3.0/3.5 之後卻演變成還是使用跟 2.0 同個 CLR 版本,只是在上面新增功能。所以其實這就是為什麼有人說就算你用 2.0,還是可以使用 3.0/3.5 的功能,只要能參考 3.0/3.5 的 DLL 就好了。

 

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

 

 

.net framework 1.x -> vs 2003 ->clr 1.0
.net framework 2.0 -> vs 2005 ->clr 2.0
.net framework 3.0 -> vs 2005 ->clr 2.0
.net framework 3.5 -> vs 2008 ->clr 2.0

 

因为3.x是2.0的扩展,所以核心还是2.0,新增的部分是3.x...

 

其实这个问题我觉得应该是这样回答:.net framework是干什么的,CLR是干什么的。

CLR 是一个虚拟机机制, .net framework 是构建在这个机制上的编程类库

 

 

你可能感兴趣的:(编程,虚拟机,.net,windows,dll,扩展)