.NET与J2EE的比较

来源:互联网  作者:不详
摘要:在计算机世界里,新技术不断地出现。以下就SUN公司推出的J2EE和微软的.NET在面向下一代企业计算方面比较一番。…

在计算机世界里,新技术不断地出现。以下就SUN公司推出的J2EE和微软的.NET在面向下一代企业计算方面比较一番。

J2EE平台提供了一个基于组件的方法,来设计、开发、装配及部署企业应用程序。J2EE平台提供了多层的分布式应用模型、组件重用、一致化的安全模型以及灵活的事务控制。同时保证您的平台独立的、基于组件的J2EE解决方案不会被束缚在任何一个厂商的产品和API上。通过以上的论述我们可以看到在设计新技术的出发点上应该说.NET和J2EE是非常相似的。但是这两种技术在实现方法和具体的实现技术上都有很大甚至对立的区别点。

首先需要指明的是.NET决不是简单的改进型的Windows操作系统。因为按照微软的设计思想,任何一个操作平台只要安装了CLR就能够运行.NET程序。

1, 在开发语言上,.NET的支持面是比较广的,C++、VB、C#、Perl、COBOL等等均得到支持,开发人员可以很容易找到适合自己的语言。而J2EE只支持JAVA语言。这就是说J2EE在语言的选择面上是比较窄的。当然,C#是.NET支持的最重要的一种语言,相对于JAVA而言,C#是支持JIT(just-in-time)编译方式的,而JAVA是基于解释方式的。同时微软为不同的平台环境提供了不同的JIT编译方式。对于类似于Windows CE这样的移动计算环境,微软提供了压缩的.NET框架,相应的也提供了EconoJIT(经济型编译器)。在一般的桌面环境下,微软提供了标准的编译器。另一方面,C#将成为一种工业标准,因为ECMA(欧洲计算机制造商协会)正在接纳C#;而JAVA语言只是SUN公司提出来的。

2, J2EE支持JAVA、EJB,而.NET支持XML/SOAP。从标准的开放性上来说,XML/SOAP要好于前者。XML由W3C组织提出,得到众多厂家的支持,是下一代Internet上内容表示的标准,XML能够有效地表达网络上的各种知识,为信息的交换和计算提供新的载体。XML相对于网络计算的作用,完全可以与计算机起步阶段ASCII码的作用相提并论。XML也可以说是网络信息的标准代码,它表示的不是符号信息,而是知识化的块状内容。这种标准语言虽然不是程序设计语言,但是它代表的却是下一代网络上互操作的光明前景。说到这里,不由得让人想起了人们"当年"对 JAVA 的狂热。确实,JAVA有着非常诱人的初衷,让许多人能够在这样的一种理想的感召下为想象中的各种系统之间的互操作能力而投入积极的开发中。但是实际上,JAVA既没有成为人们想象中的成功的商业计算工具,也并没有实质上的技术进步。JAVA试图从统一计算平台的角度来实现互操作,但是这可能永远都是一个梦想。真正能够互操作的,只能是标准和通用的数据描述语言。而SOAP协议本身也是由微软和IBM这样的商业巨头联合推出开发。这一切都表明.NET技术标准的开放性是不错的。

3, .NET的SOAP协议能够保证一个平台上的组件能够与.NET平台上的组件进行信息的交换。

4, 最重要的一点是,在现有的条件下,各种各样所谓的跨平台、“编译一次,多处运行”等口号只是商业炒做。JAVA的首席设计师James Goslin在谈到这个问题时曾经表达过这样的看法,所谓的“编译一次,多处运行”口号只是一种美好的想法。这就是说,基于某一种开发平台进行开发是不可避免的,假如你基于IBM公司的WebSphere利用JAVA开发商业程序的话,基本上就固定在这个平台上了。JAVA所号称的100%纯的口号其实不是这样;当然,C#也是如此。

5, 在.NET平台上开发程序的一个重要好处在于可以实现真正的“代码重用”。因为在设计.NET平台时,一个重要的思想就是运行时和具体的语言分开。所有的资源管理、内存分配、变量类型等均由运行时处理,这样的话,用C#写的类直接就可以用在C/C++程序中。这样的话,只要基于.NET平台,过去的程序不会因为要采用新型语言而做非常大的修改。而在J2EE平台上,JAVA就是JAVA,它将运行时和具体的语言混在一起。

总而言之,J2EE和.NET各有各的优点和缺点。二者都是非常优秀的开发企业计算软件的优秀平台。但就象不同的人有不同的嗜好一样,在未来的开发中,还是要根据自己的具体需要而确定具体的应用平台。

【相关文章】好搜一下
通过C#和Java实现对IP是否存在某网段的判断

通过C#和Java实现对IP是否存在某网段的

在多服务器资源网站的项目中,经常需要自动根据用户的IP选择最优先的服务器资源进行…