.NET框架程序设计——体系结构
谈到.NET,相信对于⼤多数初学者⽽⾔,都会感觉⽐较乱、⽐较迷茫,什么是ASP.NET、ADO.NET、VB.NET、VC.NET和.NET Framework 等等概念,搞的我们晕头转向的,他们之间到底是什么关系呢,为何如此相似呢?我们脑⼦⾥出现了⼀堆⼀堆的问号。下⾯说⼀下我⾃⼰的理解,不正确的地⽅还望⼤家多多指教。
⾸先说⼀下.NET
.NET是微软的新⼀代技术平台,代表的是微软的⼀整套战略,是⼀整套在Internet上能够⽆缝连接和沟通的软件技术、⼯具、产品和服务的总和。它为敏捷商务构建互联互通的应⽤系统,这些系统是基于标准的,联通的,适应变化的,稳定的和⾼性能的。
看了上⾯的定义,估计⼤家都有扁我⼀顿的冲动了。上⾯那样有点太宏观了,应该不是⼤家希望得到的结果。那么,我还是从技术的⾓度说吧。让我们看看.NET 的组成。⼤家先看⼀张图⽚。
.NET开发平台包括:.NET框架和.NET开发⼯具等组成部分。其中.NET框架(Framework)是整个开发平台的基础,它包括公共语⾔运⾏时CLR(Common Language Runtime)和框架类库FCL(Framework ClassLibrary)。.NET开发⼯具VisualStudio.NET集成开发环境和.NET编程语⾔。⽽我们常说的VB.Net、VC.Net、C#、F#等,都属于.NET编程语⾔。
下⾯说⼀下.NETFramework 的组成
CLS: Common Language Specification 公共语⾔规范
CTS:Common Type System 通⽤类型系统
CLI:Common Language Infrastructure 通⽤语⾔基础结构
CIL:Common Intermediate Language 通⽤中间语⾔
我们⾃⼰编写的程序,如果没有使⽤FCL中的组件的话,那么,在.NET的世界⾥,我们编写的程序和FCL中组件的地位是⼀样的,属于同⼀层,但都在CLR之上。
最后,看看.NET的整体结构
到这⾥为⽌,相信⼤家对.NET世界⾥的这些概念有了⼀个更清晰的认识。VB.NET、VC.NET 、C#等是.NET世界⾥的编程语⾔,他们同属于⼀个级别,⽽ASP.NET、ADO.NET是微软为我们封装好的,位于.NET Framework 框架类库中的⼀些组件,它们不是编程语⾔,⽽是⼀种技术。通俗点说,它们是微软为我们写好的dll(有点⽚⾯了),与我们⾃⼰编写的dll没有本质的区别。也许有⼈会问了,我
aspnet和net的区别们经常听到vb应⽤程序、c应⽤程序、c++应⽤程序、ASP.NET应⽤程序,怎么前⼏类都是编程语⾔,asp就不是了呢?我的理解是,这只是名字的问题,不能直接推断出asp也是⼀种语⾔,之所以我们叫ASP.NET应⽤程序,是因为⽆论我们是⽤vb,还是⽤C#编写的应⽤程序,只要我们运⽤了asp技术,那么就可以称之为asp应⽤程序。就跟ado编程⼀样,我们在程序中运⽤了ado技术,我们就称其为ado编程,难道你也说ado是⼀种编程语⾔?所以,asp应⽤程序是对⼀类应⽤程序的⼀个统称。当然,并不是.NET平台上的应⽤程序都是ASP.NET应⽤程序,⽐如我们⽤vb编写的WinForms应⽤程序,他就不能说是ASP.NET应⽤程序。我们可以这样认为,在.NET平台上开发的web应⽤程序称为Asp应⽤程序。
以上就是我的⼀些理解,跟⼤家理解有出⼊的,希望⼤家留下你们的想法,⼤家⼀起探讨,⼀起进步。
既然要学.NET,就要先认识认识她,我不喜欢⼤段⼤段⽂字的东西,⾃⼰通过理解,画个图,来看看.NET的沉鱼落雁,闭⽉羞花之容。
最下层蓝⾊部分是.NET Framework的基础,也是所有应⽤软件的基础。.NET Framework不是凭空出来的,实际上API,COM+,和⼀些相关驱动依然是它的基⽯。.NET Framework只不过是对这些前辈们进⾏了系统的封装和扩充,在这个过程中,吸取了Java框架的很多经验。关于Win32 API与.NET Framework API的对应关系,可以参考
菜谱:除了蓝⾊部分以外,其他均为.NET Framework的主体。它是基于。它就像⼀本江湖上失传已久的菜谱。
厨师:,是对CLI这个架构在Windows平台的实现。简单地理解就是CLR这个厨师,让CLI这本菜谱发挥了其真正的作⽤。
下⾯我们来尝尝这些佳肴:
⾷物:,所有在.NET能够使⽤的类库。分为两部分,⼀部分为原料,另⼀部分为成品菜。
原料:,顾名思义,其中包含⼀些基础的类,如:IO,String,Net等等。它们是做菜所必需的原料,当然也可以直接吃。
成品菜:FCL中的其他类。这些类库基本上都是引⽤BCL,在这些类库的基础上做的扩充。如:
ADO.NET,ASP.NET,Windows.Forms等等,它们是我们编写程序更加⽅便,专⼀。
餐具:和,是CLI的⼀部分内容,它们的⽬的是保证各种语⾔与.NET Framework的兼容性的。就好像有的⾷客习惯⽤筷⼦,有的则喜欢⽤叉⼦,像⼋戒就⽤九齿钉耙。有了CLS和CTS,各路⾷客就能使⽤⾃⼰喜欢⽤的餐具吃上可⼝的⾷物了。例如:把C#中的int和VB中的Integer统⼀映射到System.Int32。
⾷客:各种语⾔,C#,VB,等等。
⾄于⾷客们是怎么吃这些东西的,可以参考,这篇⽂章详细的解释了,.NET是如何运⾏的,涉及⼀些底层的东西,⼤家了解就⾏,不必深究。
好了,这是我⾃⼰对.NET Framework的⼀点理解,可能⽐喻有不恰当的地⽅,甚⾄有概念性的错误,希望⼤家指出来。我毕竟是初学者,⼤家的批评会帮助我成长。谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论