2007年5月30日星期三

J2EE和.NET特性对比

author:nforcex

J2EE(JAVA语言)特点:
口号:“只写一次,随处运行。”因为JVM的缘故,使之具有跨平台的兼容性-JVM是java源程序的编译运行跟硬件无关。正是因为它的这一特性,使它在大量使用UNIX、Linux的大型企业级应用领域大放异彩(这一领域正对应SUN公司的J2EE);而对于平台多样化的PDA、Smart Phone以及Smart Watch也是不断地攻城拔寨,占有了大量的市场份额。而桌面市场和中小型企业应用在很大程度上都是Win32/64平台的天下,所以它的这一特性在这一领域并不灵,.NET和J2EE的中小企业应用在这里进行着难解难分平分秋色的较量。
因为它的各项完全的面向对象语言特性,以及高安全性的特性,使之为世人称颂,甚至连微软总裁比尔▪盖茨对之都赞誉有加。
值得称谓的是JAVA的发明主体SUN公司在经过一段时间的摸索之后,确定了JAVA语言的重点发展方向:企业级应用和嵌入式设备领域,它们分别对应于 SUN公司发布的J2EE架构和J2ME架构。而.NET架构却被微软不断地吹嘘成各种各样的口号,诸如“革命性的新平台、构建于开放的Internet 协议和标准之上,并提供了工具和服务、以新的方式融合计算和通讯”、“让每台电脑都运行图形界面”、“让每台桌子都有上电脑,让每台电脑里都跑微软的软件”说了许许多多抽象的概念(与其说是概念不如说是废话),它让我们越看.NET越不知道它到底是干什么的,原因很简单,它定位模糊,哪个领域都想沾,从而没有针对性没有一个明显的范畴。所以说,.NET缺乏明确的战略。不过.NET仍算是代表最高技术的超级软件平台。
也许曾经EJB是J2EE的全部核心内容所在,但是现在它却逐步被一些轻量级架构取代(这一现象会在EJB3.0发布以后改观)。

.NET(C++,C#,VB,VJ++语言)特点:
它有许许多多令人称道的特性:
1。譬如高安全性(.NET架构在受管的运行时环境、对数组作运行时越界检查、防止缓冲区溢出、组织特洛伊木马方面颇有建树)
2。CLR(Common Language Runtime 通用语言运行时,CLR是一套标准资源,理论上可以被任何.NET程序所利用,而不管使用哪种编程语言。)
CLR资源:
面向对象的编程模型(继承、多态、异常处理和垃圾收集等)
●安全模式
●类型系统
●所有.NET基类
●许多.NET framework类
●开发、调试和评测(profiling)工具
●执行和代码管理
●1L到本地代码(1L-to-native)转换器和优化器
3。 CLS(Common Language Specification 通用语言规范)所有的.NET语言都支持它。它的设计出发点在于:任何使用CLS兼容的类型的程序,都可以和以任何语言编写的.NET程序进行互操作。理论上,这允许在不同的.NET语言之间,进行非常紧密的互操作,比方说,允许一个C#类从一个VB类继承下来。
.NET提供的平台也不仅仅是 Windows平台了,除了微软的Win32/64平台之外,还有Novell Mono、DotGNU Portable.NET。装置也有所增加:Server、PC、PDA、Smart Phone、Smart Watch。开发工具和语言也有所增加:Visual Studio系列语言、Dephi、Eiffel。由此可见,微软的影响力是巨大的,JAVA花了近十年才办到的事情,.NET只花了三年,这样的爆发力确实惊人
4。.NET平台拥有着极为强大和易用的IDE:Visual Studio 2005。这是JAVA各个框架、架构所缺乏的。注:JBiuder的易用性还是和VS 2005有很大差距。
ps:在今年Jolt 2006大奖的ENTERPRISE PROJECT MANAGEMENT项目,Visual Studio Team System 2005 (Microsoft) 荣获了Productivity Winners。


C++/CLI的特点:
近些年来C++在GP(范型程序设计)方面大放异彩,而2005年微软新推出的C++/CLI着实翻起了一些波澜。C++/CLI像是一座桥梁,将原本属于静态世界的C++与动态的CLI联系起来。但是C++/CLI的复杂性与过去的C++相比有增无减,并且C++代码也变得面目全非。

没有评论: