网页功能: 加入收藏 设为首页 网站搜索  
且看微软的.Net和Sun公司的J2EE如何对垒(1)
发表日期:2004-07-27作者:[转贴] 出处:  


  读:面对微软推出的.Net FRAMEWORK,你可能会有以下疑问:

¨         准确地讲.Net平台是什么?

¨         如何将.Net的体系结构和J2EE对比?

¨         .Net的体系结构演绎出的一整套关于企业软件开发方案中我们能学到此什么?

 在本文中作者将为你解开这些疑问。

廖永康 原文出处:http://java.sun.com/features/2000/11/dotnetvsms.html

     即使你没有专门针对微软平台写过程序,你可能也会听到过微软的.Net。这是微软对最近一连串和非视窗事件竞争的回答。如果你读到过有关新闻、来自微软的撰稿、或者通过在MSDN端浏览得到的不完整的技术资料、或者你注意到了微软专家开发者会议(会上已经演示了.Net平台)的话,你可能至少还有两大疑问:

¨         准确地讲.Net平台是什么?

¨         如何将.Net的体系结构和J2EE对比?

 

如果你再深入一步的话,你可能还有第三个疑问活跃在你的脑海里:

¨         .Net的体系结构演绎出的一整套关于企业软件开发方案中我们能学到此什么?

 .Net框架是其生命周期的十分早期阶段的产品,微软.Net部门还会不断地更深入和仔细地开发它,但是无论怎样,我们已经能够从已有的资料对这些问题作出公正的正确的回答。

 它是什么?(.Net是什么?)

现在在众多的论坛中对.Net的反思,使人不禁联想起三个瞎子摸象的寓言;根据你的洞察力,可能得到非常不同的结论:有人认为.Net是微软下一代Visual Studio的开发环境;有人认为它只是一种新的编程语言(C#);还有人为它是基于XMLSOAP的一种新的数据交换和报文的工作框架。实际上,.Net包含了这几部份内容,而且还会更多。

首先,让我们看一些具体的细节,浏览一下组成.Net平台的一系列技术构件:

¨         C#:是一种新写的描述()构件的语言,它将CC++Java的元素集成起来,并增加一些特点如:元数据标记、相关元素的开发。

¨         “公共语言运行时”:它以中间语言(IL)格式,运行字节代码,用一种语言写的代码和对象只要编译器是针对这种语言开发的,显然能够编译成IL运行时。

¨         一组基本的可从“公共语言运行时”访问的构件(元件),它可提供各种功能(如:连网功能、包容器功能等等)

¨         ASP.NET:是新的ASP版本,支持将ASP编译成公共语言运行时功能(所以用任何语言写的ASP脚本,都能和IL捆绑在一起)

¨         视窗格式和Web格式:一种新的可从Visual Studio访问的UI构件框架。(用户接口=UI)

¨         ADO:将XMLSLAP用于数据交换的新一代ADO数据访问构件(元件)

 

.NetJ2EE如何比较?

正如我们所能看见的.Net平台,在其伞型结构下有一个技术矩阵(宝塔)。显然微软为了抓住视窗平台的开发商,正在将这些技术变成现有平台如J2EECORBA的代用品。但是怎样对它们进行逐项比较呢?一种方法就是将.NetJ2EE作成以下对比列表:

 .Net J2EE 关键差异

C#编程语言 Java编程语言 C#Java均来自CC++,最显著的特 (如垃圾收集层次结构的名字空间)在两个方面。C#借用了JavaBeans的某些构件概念(特性属性、事件等),并增加了 某些自己的概念(如元数据标志),但将这些特点合并成不同的语法。JavaJava虚拟机方式运行在任何平台上,而C#在可预见的将来,仅运行在视 窗环境内。C#隐含地结合到IL公共语 言运行时中,(见后),然后按合理的顺 (JIT)运行。编译成的字节编码或者整个编译成的自然编码。Java代码按照Java 虚拟机字节代码方式运行,它由VM 析或JIT编译,或者整个编译成自然代码。

.Net公共元件(填补“.Net 框架结构的SDK) Java核心API 高层的.Net元件,包括支持用XMLSOAP 的分布式访问(ADO.NET)

ASP.NET页面(ASP.NET) Java服务器页面(JSP) ASP.NET使用Visual BasicC# 可能还有一 别的语言作为代码段。通过公共语言运行 时全部编译成自然代码(与此相对应<相反> 是象APS那样,每次都解析执行)JSP使 Java代码(段或者JavaBeans参考),或者 编译成Java字节代码(按需或批编译要根据 JSP实现系统来决定) .Net公共语言运行时允许以多种语言的代码 (程序)在视窗环境下使用一组共享的元件。 优先于.Net框架的所有元件(公共元件、ASP.NET)

IL公共语言运行时 Java虚拟机和CORBA IDLORB Java的虚拟机规程,允许Java字节代码, 在任何平台上按JVM方式运行。 CORBA允许多种语言的代码使用一组共享 的对象,在任何带有ORB的平台上运行, 并不是紧密地集成到J2EE框架内。 同样的Web元件(如基于JSP的文件)在标准 Java平台上是没有的,某些专有的元件 只能通过Java IDE等得到。

视窗格式和Web格式 Java的飘移通过MS Visual StudioIDE而不是在本文 所说的IDE,支持视窗格式和Web格式的 RAD开发,在许多JavaIDE和工具中都 支持“飘移”(Swing)

ADO.NET和基于SOAPWeb服务 JDBCEJBJMSJava XML(XML4JJA-XP) ADO.NET建立在位于HTTP协议顶部的XML数据 交换的基础上(指在远程数据对象和多个应 用程序捆绑之间的数据交换)。一般说来, .NetWeb服务假定了SOAP发信模型。 EJBJDBC等将数据交换协议和开发者 处理权分离,不工作在HTTPKMI/JRMP IIOP顶层。

 

该表的比较只抓住了表面现象,这里再总结一下.NetJ2EE的比较:

¨         特点:.NetJ2EE都提供同样优秀的特点,尽管提供的方法不同。

¨         可移植性(Portability).Net的核心只工作Windows环境下,但从理论上讲可以支持以多种语言开发(只要这些语言的子集/超集已经定义 好,并为他们建立了IL编译器)。也就是说:SOAP的能力允许在其它平台上的元件(部件).Net元件进行数据报文交换。而.Net中的一些元素:象SOAP,其恢复和查找协议,作为公共部份提供构架的核心部件(IL运行时环境、ASP.NET内部的视窗格式和Web格式元件“合同”等)仍由微软掌握,微软只扮演整个.Net开发环境和运行时环境提供者的角色。其实早就有了来自开发者协会要求微软公开这些规程,但是这和微软的标准经验相违背。

 

另一方面,J2EE只要遵循Java VM(规则)和一组平台需要的服务就可以在任何平台上工作(EJB包容器、JMS服务等等)。所有这些定义了J2EE平台的规程,都已经公开发表,并提供公众阅读。因此,许多供应商也提供兼容产品和开发环境。但是J2EE是单语言平台,若用其它语言调用或访问对象,可能需要通过CORBA,但是CORBA支持并不是平台普遍存在的部分。

 

巨大的前景:

上述最后的几点勾画出.NetJ2EE的某些关键性的差异,以及微软在这些方面所扮演的角色。微软现在正在为.Net做两件值得注意的事:通过将XMLSOAP集成到他们的信息传输方案中,从而为以其它编程语言开发商和非.Net部件打开通向.Net的道路。

通过让语言元件交叉互动,.Net正在释放PerlEiffelCobol和其它编程器,允许它们扮演微软“沙盘”的角色。这些语言的爱好者应该特别遵守规则,因为他们中大部分人在微软/SUN/OpenSource竞争中感受到约束和定界。因此,只要在他的元件发信层使用XMLSOAP,微软就能支持他们将开放性部件加到他们的平台上,从而摆脱对专用性的依赖。

 


我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 且看微软的.Net和Sun公司的J2EE如何对垒(1)
本类热点文章
  Java读取文件中含有中文的解决办法
  Java读取文件中含有中文的解决办法
  简单加密/解密方法包装, 含encode(),de..
  EJB 3.0规范全新体验
  java简单的获取windows系统网卡mac地址
  让Java程序带着JRE一起上路
  抢先体验"野马"J2SE6.0
  Java连接各种数据库的实例
  Java连接各种数据库的实例
  JAVA的XML编程实例解析
  Java学习从入门到精通(附FAQ)
  新手必读:Java学习的捷径
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2024 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.01155