net与j2e构架之争,NET框架体系布局

刚初始接触.NET很迷惑,看完录像也不是太懂,通过总计和多次,从包涵和定义出手,慢慢变得原原本本了。那篇博客主倘诺自作者对.NET基础知识的刺探,算作积累吧。

  从利用的角度来看,J2EE为集团应用系统的开销提供了一种多层分布式集团应用模型。在J2EE中,应用逻辑按效益各异足以分开为区别类型的组件,各组件遵照它们所在的层分布在不一致的机器上,共同整合3个依据组件的分布式系统。
  J2EE定义了2个卓绝的四层构造,分别是客户层、Web层、商业逻辑层和公司信息系统层。
  在行使开发时,J2EE定义的四层模型可依据真实情状灵活运用。由于除了Applet外别的的零部件都足以访问数据库、EJB组件和公司音讯种类,所以通过分裂层的精选及组成,能够衍生出广大利用软件开发模型,如根据Web的四层模型、基于桌面应用的三层模型(不包涵Web层)、B2B模型(不包含客户层)等。假诺接纳连串比较不难,一般不用EJB作为逻辑层,而直接用Web组件来实现商业逻辑和数目访问,终究EJB的支出和布局花费还一对一高。
  NET战略将网络本人作为营造新一代操作系统的根底,并对互连网和操作系统的统一筹划思想举行客观延伸,使开发人士能够创设出与设备非亲非故的应用程序,以便轻松完成网络连接。.NET包蕴3个12分广泛的产品家族,它们创设于XML和互连网产业正式以上,为用户提供Web服务的费用、管理、应用和体验。组成.NET战略的多少个地点包含:
  .NET开发平台
那是一组用于建立Web服务应用程序和Windows桌面应用程序的软件组件,包涵.NET Framework(框架)、.NET开发者工具和ASP.NET。于当年七月公告的Visual
Studio .NET将是RAD开发工具中多个要害的产品。
  .NET服务器
能够提供广泛汇集和集成Web服务的服务器是搭建.NET平台的后端基础。
.NET基础服务
密码认证、日历、文件存款和储蓄、用户音信等基础服务是必备的。微软正在奋力建设的.NET
My Services等基础性服务平台是这上头能够借鉴的事例。
  .NET终端设备
广泛的连年互连网并体验Web服务的顶点设备是贯彻.NET的前端基础。PC、PDA以及各个嵌入式设备将在这么些广阔的园地里发挥功效。
  .NET用户体验
能够满足人们各类种种必要的用户体验是.NET的最终指标,也是.NET的股票总市值完成。
  在这五个组成都部队分当中,.NET开发平西安的
.net框架是.NET软件构造中最具挑衅性的片段,别的多少个部分则牢牢围绕.NET框架来进行集体组成。
  NET 框架内核
  .NET框架达成了言语开发、代码编译、组件配置、程序运维、对象交互等次第层面包车型大巴意义,为Web服务及一般应用程序提供了三个托管、安全、高效的进行
  CLLAND——.NET的虚拟机
  CL翼虎为.NET应用程序提供了二个托管的代码执行
  作为互相竞争的利用平台,J2EE和.NET开发平台在目的和系统布局上极其相似,但在贯彻上又完全两样。平台的体系框架结构是永葆平台的根底,平台各方面包车型客车习性也会因平台架构完毕的不比而有差别。对五个阳台发生相当重要影响的多个地点是:系统平台基础结构、三层/多层体系布局和移植/质量/扩张。J2EE是1个平台标准而非产品,对等而论,在那边述及的.NET也只顾于该平台的框架结构正式,而较少地关乎到现实产品,即便对.NET而言有时候那地点并不能够被分别得很明亮。
  类似的平台基础结构
  八个平台在语言编写翻译、代码执行、编制程序补助等基础结构方面往往会对平台的可用性、生产性、移植性等发生主要的影响,也是大家鉴定2个平台是不是合乎特定应用的重要依据。J2EE和.NET两个阳台在底部的实施引擎都出自托管的虚拟机概念,但.NET的CLRAV4沿着Java虚拟机(JVM)走得更远。CL哈弗在借鉴了JVM的机动垃圾收集、非凡处理等体制的同时,又为.NET平台添加了多语言支持、组件自描述等新的特色。
  在.NET和
J2EE平台上,程序的编写翻译都通过三个近乎的长河。首先特定高级语言编写翻译器将C#(及其余.NET语言)和Java源代码分别翻译成人中学间语言(IL)和字节代码(ByteCode)。.NET在中等语言设计时通盘考虑了多个主流高级语言,在这一圈圈完结了.NET平台的跨语言承诺。J2EE的基础是Java语言,它最卓越的表征是:一遍编写,数十次运行。跨平台是J2EE一向引以为豪的首要,那是经过JVM来贯彻的。
  其次,在实施时,中间语言被即时编写翻译器(JIT)编写翻译成特定平台的二进制代码,字节代码则通过JVM解释施行,完毕各自语言的吩咐成效。鉴于微软在“Wintel平台”上的代码优化功底,.NET代码的实践进程较之于Java有显明的优势是不争的真情。但在Unix/Linux平台上,由于.NET迟迟得不到实现其跨平台的承诺,J2EE几乎成了独一无二的取舍,执行效能的可比也就无所谓。在代码执行的同时,通用语言运维时和Java虚拟机也都建议了要命捕捉、类型安全、内部存款和储蓄器分配、垃圾收集等自动化内部存款和储蓄器管理工科作,大大减轻了当代软件的内部存款和储蓄器泄漏难点和程序员繁重的负责。
  面向对象程序设计在J2EE和.NET平夏洛特都获得了第③手的帮忙,单根继承加多接口达成是它们共有的性情。但在面向对象之外,.NET对现代组件编制程序提供了直接协理。当然,当下的重重合营社中间件都是依照J2EE平台的,只是.NET从筹划、编码、配置到运维给予了组件编程更多、更直白的扶助。
  二个可见为编制程序提供广阔服务的、可复用的API类库对于当代软件平台极度重大。从基础的汇聚、字符串操作到小卖部级的API接口,如JMS、JDBC、JAX、JNDI等,能够看看J2EE在那方面拥有不行抓好的构造。微软.NET框架类库也不示弱,提供了从美术、网络、线程到ADO.NET、ADSI、Windows表单、ASP.NET等一层层的API。在这一个基础的和商行级的服务上多少个阳台很难一决输赢,而且对职能集聚的支撑广大时候是一个年华难题,往往是二个平台推出了某一子成效集,另3个阳台立刻推出类似的功用集。
  除去API类库的无缝的效应复用外,对地点平台的调用操作也是值得关怀的一点。CL安德拉和Java虚拟机都支持本地点法的调用。在异构平台方面,J2EE更青睐于IIOP(Internet
InterORB Protocol),而.NET则运用SOAP。
  相同的三层/多层连串
  基于三层/多层分布式计算结构已不必置疑地改为当今集团应用的主流形式,也是三个阳台较量的着力点。
  在客户端,表示层负责用户与系统的交互。对于不一致的拍卖要求,.NET和J2EE都提出了基于桌面包车型地铁应用程序和基于浏览器的Web应用的支付组件:Java
Application与Windows表单、Java
Servlet/JSP与ASP.NET双双形成犄角之势。但Windows表单正视微软桌面系统的原状优势,不管在交互速度依旧在界面包车型地铁变现质量上都较Java
Application稍胜一筹。Servlet/JSP与ASP.NET是当前供销合作社在“斗雪红户端”应用的重要性,两者都基于HTTP请求/响应模型,通过HTML浏览器页面完结用户交互。就算ASP.NET声称在底层通过编写翻译执行获得了一对一高的处理速度,以及劳动器方控件的浏览器自适应能力,但当下并没有那地点的硬性数据,很难据此而论高下。在缓存、状态优化等地方相互可谓旗鼓格外。另多个和客户端应用相关的技巧是ActiveX与Applet,但从近来的方平昔看,它们在八个平台上的身份日益边缘化,也不为大部分铺面所承受。
  在中间层,分布式业务组件负责公司应用的经济贸易逻辑安插。由于这么些事情组件常常负责处理数据库连接、互连网财富、线程等高昂的能源,所以直接是三层/多层架构的重中之重和公司应用的中坚。
  J2EE的EJB是多个老奸巨滑的、获得产业界广泛扶助的巨型集团级组件框架,而.NET组件则是建立在风行的COM+服务之上,两者在组件与操作系统的彼此、客户端财富共享等方面都有很好的协理。EJB的为主是容器,容器是3个为组件提供劳动的运维时环境,负责为组件提供诸如事务处理、持久性、安全性、组建状态自动化管理等劳务,它分离了商业贸易逻辑和系统底层逻辑,使开发职员的做事极为简化。.NET则经过元数据协助自描述性的组件开发、XCOPY布署以及多版本共存,而无需注册表和描述文件,对公司客户有肯定的重力。
  在后端数据层,多个阳台都为数据库连接量身定做了一套数据存取模型:J2EE的JDBC和.NET的ADO.NET。它们在支撑守旧SQL数据源的同时,也都帮忙新型的XML数据源。那地点由于越多地关系到现实的数据库产品,很难说那种数据模型更有优势。
  值得建议的是,在创设三层/多层种类布局的还要,Web服务作为新一代集团总计模型也获得了J2EE和.NET平台非常的关怀,在背后的篇章会有那上头的详实阐述。
  区别的移植、质量和扩充
  在移植性方面,微软通过.NET
通用语言运维时来排除编制程序语言的距离,而J2EE则经过Java虚拟机来撤废平台差异。“选拔.NET平台就象征接纳Windows”,那句话至少在可预感的一段时间里依然是三个主导事实。跨平台是J2EE的一大卖点,也是在采用集团应用开发平台时的一个重要参考因素,差不多全体的主流操作系统都提供了对J2EE的帮助。实际上假诺要搭建跨Unix、Windows等八个操作系统平台,J2EE平台大致是全球无双的挑三拣四。J2EE更关怀跨平台而不是跨语言。但微软认为,假使商家的应用都能透过标准协议以Web服务的措施公布,那么平台都以中立的。跨平台甚至是微软所不想的。为了吸引越多的开发者和鼓励广大集团厂商转到.NET平台,微软提出了多语言扶助,希望用跨语言的交互性来抵消跨平台的互操作。
  品质是J2EE和.NET呶呶不休的话题。二者之间有名的反驳是3个关于宠物店的范例应用。宠物店是Sun一度以来作为J2EE典型应用的显得范例,但.NET“自告奋勇”地在温馨的阳台上贯彻了该宠物店应用,且声称代码行是J2EE的百分之三十三,作用却是J2EE的30倍。但Sun的理由是那一个范例根本不符合用来做品质相比较,该范例达成也没有做针对品质的优化,而且言三语四微软由此后端数据库优化和缓存虚抬了.NET平台的效用。那样的扯皮当然无法当做大家判断的基于,近年来也从不寓目更客观的第一方测验评定报告。在“Wintel平台”上我们只怕没有理由疑心.NET的天性,而有关非Windows平台,.NET和J2EE也不再具有可比性。
  在平台的成熟度方面,两者也有一拼。J2EE在1998年形成了其早熟的架构,并且到前天曾经有一定老练的经过验证的公司应用系统。而.NET究其根子是源自微软在此以前开发集团应用程序的平台DNA(Distributed
Network
Architecture),个中包含了过多已经被证实的技能,并且这一个技能早已在产品中收获贯彻,包含微软的事务服务器、COM+、新闻队列、SQL
Server数据库等。而对此扩大性,广为产业界接受的真情是.NET平台的增添思想是基于软件的横向扩大,而J2EE平台的壮大思想则是依据硬件的纵向扩充。那也符合微软乎乎Sun各自的制品利益。
  J2EE另三个至关心器重要特点正是它的框架结构开放性,它本身是一比比皆是专业,而不是成品,任何符合这一正规的成品都是J2EE兼容的。那使得J2EE从制定之初就获得了广大的协助。BEA、IBM、Oracle等都逐项支付了适合J2EE的应用服务器,它们的出品竞相甚至足以合营。而.NET在筹划之初就牢牢地把凉台正儿八经与制品胶合在同步,纵然.NET架构的一小部分独具开放性(如C#言语、通用语言功底结构CLI
和Web服务规范),但至少近来很难想像会有1个非微软的.NET达成。

 

2008年05月06日 发布于Qzone

.NET**框架系列布局**

由多个基本点部分组成

图片 1

    公共语言运维时(CLHighlander)是.NET框架应用程序的履行引擎..NET框架的关键效能在于,它提供了一个跨编制程序语言的合并编制程序环境,那也是它能标新创新的根本原因。

          .NET框架为开发职员提供了二个合并、面向对象、层次化、可扩展的类库集,即基底体系库(**BCL**)

    而ADO.NET是三个新的数据访问框架,满足了ADO不恐怕满意的多个举足轻主供给:提供了断开的数目访问模型,那对Web环境首要;提供了与XML的严密集成;还提供了与.NET框架的无缝集成.

    活动服务企页面(ASP.NET)提供了1个统一的Web开发模型,在那之中囊括为开发职教员和学生成公司级Web应用程序所需的各样劳动和崭新控件.它是一个已编写翻译的、基于.NET环境的、能够用别样与.NET包容语言创造的应用程序。

 

 

.NET**先后的编写翻译与运营**

 

    在编写翻译使用.NET框架创设的代码时,不是即时制造成操作系统特定的本机代码,而是把代码编写翻译为微软中路语言(MSIL)代码。在执行应用程序时由JIT编写翻译器把MSIL编写翻译为专用于某种操作系统和对象机器结构的本机代码,然后操作系统才能履行应用程序。 

程序集

    在编写翻译应用程序时,创制的MSIL代码存款和储蓄在三个先后集中,程序集包含可实施的应用程序文件(.exe)和其余应用程序使用的库(.dll),还包含元数据和可选资源。

托管代码

    托管是怎么样意思,说白了即是让CL昂Cora管理着应用程序,从源代码到MSIL,再到本机代码,再到程序执行,由.NET与操作系统进行互动。不在CLCR-V控制之下运营的应用程序时非托管的。 

托管代码最要紧的八个效率是无效存款和储蓄单元收集(garbage collection),也称垃圾回收,确认保障应用程序不再行使一些内部存款和储蓄器时,那几个内部存款和储蓄器会被完全释放。

   上面那张图是.NET程序的编写翻译与运作时的景况:

 

 

图片 2

 

 

 

.NET  VS J2EE

.NET框架与SUN公司的J2EE连串布局是当今集团应用的两大种类布局,它们有好多相似之处,如下图(左边为.NET框架,右边为J2EE):

 

 

图片 3

 

 

    能够见见,对于.NET框架的每一片段,J2EE连串布局都具备显示,他们都以店铺级开发平台,并且广泛应用于Web开发世界。.NET框架和Java都施用了托管的运作时环境,都将源代码转换为一种中间语言,然后将其编写翻译为 本地的可进行代码,二种体系布局都提供了无用存款和储蓄的单元收集器、动态类加载和非常处理等。

 

上面是关于.NET的多少个小标题:

  1. .NET**框架能够运作于怎样平台?**

当下能够运作在windows95/98/ME、windowsNT4.0、windows贰仟、windowsXP、windows200③ 、windowsvista、windows ⑦ 、windows 10上。

其余还有一个称为.NET精简框架的.NET框架版本,它运维在WindowsCE和其余嵌入式操作系统上。

  1. .NET**框架帮助什么编制程序语言?**

.NET框架与编制程序语言毫不相关。事实上任何语言都足以扶助.NET框架。方今得以用很多语言来创设.NET程序,包含:C++、VB.net、JScript、C#。未来也会有大批量的第③方语言能够用来创立.NET框架应用程序,包含Cobol、Eiffel、Perl、Python、Smalltalk等。

  1. .NET**框架能够创制哪些类型的应用程序?**

并不限量应用程序的品类,能够创立控制台应用程序、windows应用程序、Web应用程序、Web服务和其余各类别型的应用程序。

  1. .NET**框架和COM+劳务时期是什么关系?**

在.NET框架中,不仅能够完全访问COM+服务,而且也更便于创设服务组件。.NET框架组件还能运用COM+中所提供的劳动,如工作、对象池、排列组件、事件等。

 

    那么“什么是.NET?”

    微软董事长兼首席软件设计师Bill盖茨的答复:“.NET是指接连音讯、人群、系统和设备的软件。”

    微软原首席执行官兼高管Bauer默说:“.NET代表了四个成团、三个环境、三个能够当做平台协助下一代Internet的可编制程序结构。”

 

今昔再看那多少个表明,确实是这么回事,好像从来不那么抽象了。。。

推荐:http://www.cnblogs.com/roucheng/p/3521864.html