学院首页>网络编程>JSP>比较 Microsoft .NET 和 J2EE 的构成技术

比较 Microsoft .NET 和 J2EE 的构成技术

作者:佚名 来源:不详 添加时间:2006-5-25 21:36:07

即使你不在微软的平台上写程序,你可能也听过 Microsoft 推出的「.NET」平台,此技术是用来对付非微软阵营的兵器。如果你读过微软的新闻稿,或者你浏览过 MSDN 的内容,还是你出席了微软的专业程序员会议(也就是「.NET」平台现身的地方),你可能仍有两个疑问:

「.NET」平台到底是什么?
「.NET」架构和 J2EE 有哪些差异?

如果你想得更远一点,你还会有第三个问题:

我们能从「.NET」架构中学到一些哪些有助于推展企业软件开发的思维?

目前,「.NET」架构尚嫩,许多细节仍有待微软的「.NET」小组厘清。虽然如此,我们仍然能够从现有的信息中得到上述问题的解答。
「.NET」平台到底是什么?
现今大家对于「.NET」平台的看法有点类似寓言「瞎子摸象」,观点不同,自有不同的想法。有些人说「.NET」是微软的下一代 Visual Studio 开发环境;有些人说它是一个新的程序语言(C#);还有些人说它是以 XML 和 SOAP 为基础的资料交换与传递讯息的机制。其实,上述三者都是「.NET」想扮演的角色,而且还不止于此。

让我们先得到一些较具体的观念。下面列出「.NET」平台内部的组成:

C# 是一个「新程序语言」,用来撰写类别和组件。C# 融合了 C/C++ 和 Java 的特色,还多了一些其它的特色,比方说 metadata tag。
一个「通用语言的执行时期系统(common language runtime)」,用来执行 IL 格式的程序代码。任何语言的原始程序只要被编译成 IL 格式之后,就可在「.NET」平台执行。
一组「基础组件」,提供多样的功能(例如:网络),以供执行时期系统使用。
「ASP+」,是新版的 ASP,能让 ASP 被编译成 IL 的格式。
「Win Form」和「Web Form」,是一组新的 UI 组件骨架,供 Visual Studio 使用。
「ADO+」,是新版的 ADO,使用 XML 和 SOAP 来进行资料存取和资料交换。
「.NET」和 J2EE 有哪些差异?
如你所见,「.NET」平台是一堆技术的组合。微软把这些技术当作现有技术(例如:J2EE 和 CORBA)的另一种选择,但实际上比较起来又是如何呢?下面是我们的一些分析比较:



























管伟 




Microsoft.NET




J2EE



主要差异



C# 程序语言



Java 程序语言



C#
和 Java
都源自
C/C++。两者有相当多共同的主要特色(包括:自动内存管理、阶层式名字空间)。C#
从J
avaBeans 学来一些组件观念(propertie/attribute、event),还新增了一些特色(比方说
metadata tag),但是使用不同的语法。


Java
可以在任何有 Java 虚拟机器的平台上执行。C#
目前只能在 Windows 上执行。


C#
使用IL的执行时期系统。透过 just-in-time (JIT)
的编译方式或原生码编译方式来执行。Java 程序是透过
Java 虚拟机器来执行,但是也可以编译成原生码。



「.NET」通用组件



Java core
API



高阶的「.NET」组件将支持透过
XML 和
SOAP来存取。(请看下面
ADO+ 的介绍)



Active
Server Pages+ (ASP+)



Java
ServerPages (JSP)



ASP+
将可以使用
Visual Basic、C#、和其它语言来撰写程序片断,然后被编译成IL的格式(不像以前的
ASP 每次都需要直译)。JSP
使用 Java
的程序代码,编译成
Java 的
bytecode(可以需要时才编译,也可以预先编译好)。



IL 执行时期系统



Java 虚拟机器、CORBA
IDL、CORBA
ORB



「.NET」允许不同的程序语言使用
Windows 上的同一套组件。


Java
允许 Java bytecode 在兼容的虚拟机器上都可以执行。


CORBA
允许不同语言和不同平台的对象互相沟通(必须有适合的
ORB)。J2EE 中可以使用CORBA,但两者的整合度不算是很紧密。



Win Form 和
Web Form



Java Swing



类似的 Web 组件在标准的
Java 平台中付之阙如,有些其它厂商在
Java IDE 中提供一些组件。


MS
Visual Studio IDE 提供 Win Form 和 Web Form 的 RAD
工具,目前尚未有其它厂商宣称要支持 Win Form 和 Web
Form。许多 Java IDE 工具都支持 Swing。



ADO+ 和
SOAP 的Web
服务



JDBC、EJB、JMS
和 Java
XML 链接库(XML4J、JAXP)



ADO+
允许透过
HTTP  进行
XML 资料交换(在远程资料对象和多层的程序之间),也就是SOAP。「.NET」的 Web 服务使用
SOAP 的讯息模型。EJB、JDBC
等则是把资料交换的通讯协议交由程序员自行决定,用
HTTP、RMI/JRMP

IIOP 都可以。



上面是各项技术的比较,下面是两者的整体比较:
站内搜索