导 读:面对微软推出的.Net FRAMEWORK,你可能会有以下疑问:
¨ 准确地讲.Net平台是什么?
¨ 如何将.Net的体系结构和J2EE对比?
¨ 从.Net的体系结构演绎出的一整套关于企业软件开发方案中我们能学到此什么?
在本文中作者将为你解开这些疑问。
廖永康 原文出处:http://java.sun.com/features/2000/11/dotnetvsms.html
即使你没有专门针对微软平台写过程序,你可能也会听到过微软的.Net。这是微软对最近一连串和非视窗事件竞争的回答。如果你读到过有关新闻、来自微软的撰稿、或者通过在MSDN端浏览得到的不完整的技术资料、或者你注意到了微软专家开发者会议(会上已经演示了.Net平台)的话,你可能至少还有两大疑问:
¨ 准确地讲.Net平台是什么?
¨ 如何将.Net的体系结构和J2EE对比?
如果你再深入一步的话,你可能还有第三个疑问活跃在你的脑海里:
¨ 从.Net的体系结构演绎出的一整套关于企业软件开发方案中我们能学到此什么?
.Net框架是其生命周期的十分早期阶段的产品,微软.Net部门还会不断地更深入和仔细地开发它,但是无论怎样,我们已经能够从已有的资料对这些问题作出公正的正确的回答。
它是什么?(.Net是什么?)
现在在众多的论坛中对.Net的反思,使人不禁联想起三个瞎子摸象的寓言;根据你的洞察力,可能得到非常不同的结论:有人认为.Net是微软下一代Visual Studio的开发环境;有人认为它只是一种新的编程语言(C#);还有人为它是基于XML和SOAP的一种新的数据交换和报文的工作框架。实际上,.Net包含了这几部份内容,而且还会更多。
首先,让我们看一些具体的细节,浏览一下组成.Net平台的一系列技术构件:
¨ C#:是一种新写的描述(书)构件的语言,它将C、C++和Java的元素集成起来,并增加一些特点如:元数据标记、相关元素的开发。
¨ “公共语言运行时”:它以中间语言(IL)格式,运行字节代码,用一种语言写的代码和对象只要编译器是针对这种语言开发的,显然能够编译成IL运行时。
¨ 一组基本的可从“公共语言运行时”访问的构件(元件),它可提供各种功能(如:连网功能、包容器功能等等)。
¨ ASP.NET:是新的ASP版本,支持将ASP编译成公共语言运行时功能(所以用任何语言写的asp脚本,都能和IL捆绑在一起)。
¨ 视窗格式和Web格式:一种新的可从Visual Studio访问的UI构件框架。(用户接口=UI)。
¨ ADO:将XML和SLAP用于数据交换的新一代ADO数据访问构件(元件)。
.Net和J2EE如何比较?
正如我们所能看见的.Net平台,在其伞型结构下有一个技术矩阵(宝塔)。显然微软为了抓住视窗平台的开发商,正在将这些技术变成现有平台如J2EE和CORBA的代用品。但是怎样对它们进行逐项比较呢?一种方法就是将.Net和J2EE作成以下对比列表:
.Net J2EE 关键差异
C#编程语言 Java编程语言 C#和Java均来自C和C++,最显著的特 点(如垃圾收集层次结构的名字空间)在两个方面。C#借用了JavaBeans的某些构件概念(特性属性、事件等),并增加了 某些自己的概念(如元数据标志),但将这些特点合并成不同的语法。Java以Java虚拟机方式运行在任何平台上,而C#在可预见的将来,仅运行在视 窗环境内。C#隐含地结合到IL公共语 言运行时中,(见后),然后按合理的顺 序(JIT)运行。编译成的字节编码或者整个编译成的自然编码。Java代码按照Java 虚拟机字节代码方式运行,它由VM解 析或JIT编译,或者整个编译成自然代码。
.Net公共元件(填补“.Net 框架结构的SDK”) Java核心API 高层的.Net元件,包括支持用XML和SOAP 的分布式访问(见ADO.NET)。
ASP.NET页面(ASP.NET) Java服务器页面(JSP)