谈到.NET,相信对于大多数初学者而言,都会感觉比较乱、比较迷茫,什么ASP.NET、VB.NET、VC.NET、ADO.NET、.NETFramework 等等概念,搞的我们晕头转向的,他们之间到底是什么关系呢?为何如此相似呢?我们脑子里出现了一堆一堆的问号。下面说一下我自己的理解,不正确的地方还望大家多多指教。
首先说一下.NET
.NET是微软的新一代技术平台,代表的是微软的一整套战略,是一整套在Internet上能够无缝连接和沟通的软件技术、工具、产品和服务的总和。它为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。
看了上面的定义,估计大家都有扁我一顿的冲动了。上面那样有点太宏观了,应该不是大家希望得到的结果。那么,我还是从技术的角度说吧。让我们看看.NET 的组成。大家先看一张图片。
.NET开发平台包括:.NET框架和.NET开发工具等组成部分。其中.NET框架(Framework)是整个开发平台的基础,它包括公共语言运行库(好多地方叫公共语言运行时,个人感觉这个“运行时”让人难以理解,我更乐意接受运行库的说法)和框架类库。.NET开发工具VisualStudio.NET集成开发环境和.NET编程语言。而我们常说的VB.Net、VC.Net、C#、F#等,都属于.NET编程语言。
下面说一下.NETFramework 的组成
.NET Framework 包括公共语言运行库(CLR:common language runtime)和框架类库(FCL:.NET Framework Class Library)。也许好多朋友会以为这两者是平级的关系,其实不然。公共语言运行库比框架类库更接近底层,后者依赖于前者。让大家看一下下图就明白了。
我们自己编写的程序,如果没有使用FCL中的组件的话,那么,在.NET的世界里,我们编写的程序和FCL中组件的地位是一样的,属于同一层,但都在CLR之上。
最后,看看.NET的整体结构
到这里为止,相信大家对.NET世界里的这些概念有了一个更清晰的认识。VB.NET、VC.NET 、C#等是.NET世界里的编程语言,他们同属于一个级别,而ASP.NET、ADO.NET是微软为我们封装好的,位于.NET Framework 框架类库中的一些组件,它们不是编程语言,而是一种技术。通俗点说,它们是微软为我们写好的dll(有点片面了),与我们自己编写的dll没有本质的区别。也许有人会问了,我们经常听到vb应用程序、c应用程序、c++应用程序、ASP.NET应用程序,怎么前几类都是编程语言,asp.net就不是了呢?我的理解是,这只是名字的问题,不能直接推断出asp.net也是一种语言,之所以我们叫ASP.NET应用程序,是因为无论我们是用vb.net,还是用C#编写的应用程序,只要我们运用了asp.net技术,那么就可以称之为asp.net应用程序。就跟ado.net编程一样,我们在程序中运用了ado.net技术,我们就称其为ado.net编程,难道你也说ado.net是一种编程语言?所以,asp.net应用程序是对一类应用程序的一个统称。当然,并不是.NET平台上的应用程序都是ASP.NET应用程序,比如我们用vb.net编写的WinForms应用程序,他就不能说是ASP.NET应用程序。我们可以这样认为,在.NET平台上开发的web应用程序称为Asp.net应用程序。
以上就是我的一些理解,跟大家理解有出入的,希望大家留下你们的想法,大家一起探讨,一起进步。