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 都可以。
|