关于
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 处理、带有连接池的数据库接入、文本操作与网页脚本编写等。