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