发布。J2EE 规范自己是“销售中立”的,但实际上那些遵从规范的产 品都必须实现规范外的特性,例如管理特性或是展开特性。因此,这些产品必须是对应特定的销售商。例如 Microsoft 公司的 Windows 和.NET 系统。
4)
Windows .NET Framework 和基于 J2EE 的产品都和第三方的产品一起工作。例如,在后端数据库领域,.NET 和基于 J2EE 的应用程序能访问储存在 Microsoft 的 SQL 服务器、IBM 的 DB2、Oracle,Informix、Sybase
等服务器里面的数据。再举一个例子,.NET 和基于 J2EE 的系统能访问流行的信息中间设备,如 Microsoft 的 MSMQ 或是 IBM 的 MQSeries。同样,也包括文件系统,第三方开发工具,代码版本系统,防火墙等。
不同点 1) 原理
J2EE 是一个单一语言的平台,关注跨平台的可移植性。这就意味着,要利用 J2EE,
设计方案能使用 多个操作系统其中的一个,但开发者必须接受关于 Java 的培训。Microsoft 提供的.NET 构架作为 Windows 系统的一部分。 开发者能使用多种语言, 并且效率很高而不用进行一种新语言的重新训练。 但.NET Framework 是 Windows 系统的一部分。
2) 宽度和广度 a. .NET 包括代码、产品、工具和构架,来利用网络上全部的计算资源,包括设备、个人电脑和服务器
等。.NET 使所有的这些设备能经过标准通讯协议全部连接在一起,即所谓的“XML WEB 服务”。(.NET 应用程序可以和任何一个
系统连接, 无论系统用什么语言和平台, 甚至是 J2EE。 只要目标系统遵照 XML WEB 服务标准。).NET 模型是广泛的分
布式计算,它和许多代码互相通讯并交换信息。
b.
J2EE 是面向服务器的模型,它并不开发网络上的智能和计算功能。总的来说,基于 J2EE 的产品只支 持服务器端的应用程序。J2EE 一般把 PC 只看作是一个
HTML 的浏览器,而将这些设备认为是哑终端。 至于 XML WEB 服务,现有的协议标准支持分布式的计算,现有版本的 J2EE 规范并没有提到 XML WEB 服 务的问题,但是基于 J2EE 的产品在添加了附加装置后也可以支持 XML Web 服务。然而,添加附加装置 也就意味着有严格的限制。例如,还不清楚现有的规范是否允许 EJB 调用 Web 服务,虽然 Web 服务的 组件能调用一些 EJB 程序。
3) 编程模型的一致性
Windows .NET Framework 提供了一个跨服务器、PC 和其它设备的一致的、面向组件的模型。而 J2EE 提供 EJB 作为服务器端的组件模型;为客户端或是本地组件建立开放的完全用 Java 编写的 API;为用户界 面提供 servlet;也为移动设备提供另一种不同的模型。甚至在 EJB 内部也有至少 3 种明显不同的子模型, 每一种子模型都有不同的语言定义。
Microsoft 的.
NET 编程模型与 Java 平台相比较, 在各种服务器和客户端上有更好的一致性。 J2SE 是基于开放的完全用
Java 编写的 API,而 J2EE 是基于 Java servlet 和 EJB。
DH Brown, 2002 年 7 月
4) 功能 a. Windows
.NET Framework 提供一个能识别版本的类加载器,这就意味着应用程序的开发者能确保他
们开发的应用程序在一部分代码已经更新的情况下仍能运行。而 Java 和 J2EE(现有的)没有版本识别 的类加载器,这就意味着开发者和管理员不能保证代码被执行时是正确的。或是说,开发者只能靠运 气来保证这一点。
b.
Windows .NET Framework 显示了语言层面上的类属性—这就使得编程更加简单。例如,在
源代码中 只用一个简单的属性就能把.NET 组件标志为处理模式。或者说,一个.NET 组件和 XML 的串行化可以在 一个属性中被定义。这个机制大大简化了许多编程任务。而 Java 不显示语言层上的类属性,虽然 Sun 公司考虑到要修改 Java 语言来改变现状。这种变化估计在两三年内才能第一次实现。
c.
.NET 还支持分离数据访问,这主要用于在移动设备或是偶尔联网的场合里运行的应用
程序。数据能 被脱机操作,接着再和起始数据重新同步。而不