关于 Microsoft .NET 和 Sun 的 J2EE 的比较
2003.04.16 来自:CSDN [收藏到我的网摘]
简介
关于.NET 技术与 Sun 公司的 Java2 企业版(J2EE )相比较,许多客户都想了解 Microsoft 公司的观点。由 于以下的几个原因,.NET 和 JEE 的比较有点棘手: 1) 一般来说,Windows .NET Framework 是 Microsoft 的 Windows 系统中经过精心定义的技术部分,而 J2EE
TM
则是一个书面的协议。如果不局限于学术方面的讨论,换句话说,就是在几个应用平台上讨论这个话题的商业价 值,那么仅仅比较 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) 2) 3)
Windows .NET Framework 和 Java 都有一个受控的运行时环境,它不但将源代码转换成中间语言,而且将 这些中间语言编译成本地的可执行代码。两个环境都支持碎片整理、动态类加载和异常处理等。 .NET 和 Java 都倡导和支持基于组件的设计、多态性、继承和接口等,也提供基础类库来执行 I/O、XML 处 理、带有连接池的数据库接入、文本操作与网页脚本编写等。 两者都经过特有的销售商的产品进行