background image

关于

Microsoft .NET 和 Sun 的 J2EE 的比较

简介

关于

.NET 技术与 Sun 公司的 Java2 企业版(J2EETM)相比较,许多客户都想了解

Microsoft 公司的观点。由于以下的几个原因,.NET 和 JEE 的比较有点棘手:

1)  一般来说,Windows .NET Framework 是 Microsoft 的 Windows 系统中经过精心定义

的技术部分,而

J2EE 则是一个书面的协议。如果不局限于学术方面的讨论,换句话说,就

是在几个应用平台上讨论这个话题的商业价值,那么仅仅比较

J2EE 和一个实际应用的工具

是没有意义的。

这样实际应用的工具如:

IBM 公司的 WebSphere 应用服务,BEA 的 WebLogic 服务或是

其它类似的应用服务。

要想得到令人满意的分析,只有进行产品之间的比较,例如比较开发效率。使用

J2EE,

开发者需要创建

4 个组件来建立一个单一的 EJB。表面上看来,这只不过是为开发效率付出

的一点代价而已。但是

Java 的一些开发工具隐藏了一些开发技巧,降低了效率。另一个例子,

J2EE 的部署体系十分复杂难解,类嵌入 JAR,而 JAR 嵌入 WAR,WAR 又嵌入 EAR。但是
在一定程度上,有些工具能自动完成部署进程。上述情况导致决定一个应用服务商业价值的
关键因素开发效率因不同的销售商而有差异,这主要取决于开发工具的效率。

2) 关于“J2EE 全明星队伍”的问题。当比较.NET 和 J2EE 所有组件的集合时,这个问题就

产生了。例如,分析者考虑开发效率时可能碰到下列问题,

A 公司的产品, B 公司的应用服

务程序,

 C 公司的安全规则, D 公司简便安装, E 公司决定价格。所有这些都可能和 J2EE

有关。集合上述这些特征属性,

J2EE 工具看起来还行:价格便宜,安装简便,速度快,安

全性高,有超高速缓存,并且有好的开发工具,等等。但这些都无关痛痒

—因为不可能同时

获得所有的这些特性。事实上,一次只能得到一个准确的特性。因为这些产品来自不同的公
司,它们不可能合作无间。例如,

IBM 公司的工具不能和 BEA 公司的 WebLogic 服务同时工

作,因为后者是用的

Oracle 公司的缓存引擎,而 Oracle 的引擎不能用 Iona 的价格获得,等

等诸如此类。人们有时候会误将

“J2EE 的所有特性集合”作为比较的基础;但这是不合理的。

客户需要的是知道一对一,产品对产品的比较。

3)比较.NET 和 J2EE 而忽视其它应用平台是十分重要的。J2EE 是仅关注应用程序服务

器的规范。但是绝大多数客户对下列这些感兴趣:应用程序服务器,端口,商业服务器和分
析工具,数据库,分离数据和流动性,信息代理,应用程序集合,容量管理,智能客户端
等等。作为对客户要求的回应,这些因素应该统一工作,所有的主要销售商应该推行整合的
平台。例如

Microsoft 的平台(包括 Windows 系统的客户端和服务器,Windows .NET 

Framework,Visual Studio.NET Framework,和 Microsoft 企业服务器);BEA 的 WebLogic
平台;

IBM 公司的 WebSphere 平台;Oracle 的平台;还有 Sun 公司的一个平台。将精力集中

在这些平台的一个难题(应用服务器)上将会导致一个类似

“树林和森林”关系的问题。这样

的一个比方是合适的,但是它应该被考虑到一个更广阔平台的一部分。

Microsoft 的角度来看,和那些不常见的警告相比,这些是 Windows .NET Framework

和基于

J2EE 的产品的关键性的异同点。

相似点

1)

  Windows .NET Framework 和 Java 都有一个受控的运行时环境,它不但将源代码转换成

中间语言,而且将这些中间语言编译成本地的可执行代码。两个环境都支持碎片整理、
动态类加载和异常处理等。

2)

  .NET 和 Java 都倡导和支持基于组件的设计、多态性、继承和接口等,也提供基础类库

来执行

I/O、XML 处理、带有连接池的数据库接入、文本操作与网页脚本编写等。