.Net是一个广义的名词。它是一个平台或说是战略。在.Net诞生之初,微软在其一系列产品中都冠以.Net的标签。这也给很多人带来疑惑和不解,到底.Net中具体包含什么?这个问题不仅是我有,我想,甚至微软本身以及一些专家也会有。从.Net大局观这本书的第一版和第二版的不同中,我们可以看到关于这个内容的发展。在第一版中,作者将很多内容都纳入到了.Net平台的名下,而在第二版中,这个问题被明确,只有两个部分可以算是真正的.Net平台的组成。
一是.Net Framework。这是.Net的核心所在,它主要包括CLR(Common Language Runtime)和FCL(Framework Class Library)。每一个学习.Net的人都必须了解清楚,才能更好的开发。
二是Visual Studio.Net。这是微软的IDE。我想在中国每一个.Net开发人员都会安装一份的。之所以把它纳入到整个.Net平台之下,也许是因为它在开发中的地位吧。至少离开了VS,我完成一个复杂的.Net程序会十分的痛苦。
说到这个问题我想起来我原来对.Net平台的一些误解,因为我总是透过VS来看.Net。以至于我总是认为各个语言(C#,VB.Net等)都隶属于.Net Framework的一部分。这种说法貌似正确,因为至少C#可以看成是为.Net平台量身打造的,但如果仔细想想就不是这样的,比如现在不有PHP的CLR编译器吗,你不能说PHP也是.Net的一部分。恩。理解这个问题的最好方法是.Net Framework是语言无关的,只是有些语言与它的联系比较天然。而VS.Net中直接支持其中的几种,包括C#,VB.Net等等。
还有一个问题就是我一直说.Net Framework包括两部分,一部分是托管的一部分是非托管的。这样的观点是错误的,也是被VS误导了。因为VS中可以同时开发传统的C++程序和托管的程序。其实.Net Framework只是包括CLR和FCL。CLR是托管的运行时,而FCL不包含MFC等东西。只是在托管程序设计中,很有可能需要与COM交互,VS将其放在一起利于开发而已。
这就是我对.Net组成的一些理解。。。