admin 管理员组

文章数量: 1086019


2024年3月19日发(作者:c语言全局变量存放在)

Java框架与.N ET框架比较分析研究 

日 

:生 

,日 

(南京化工职业技术学院信息系 江苏・南京

中图分类号:TP31 1 文献标识码:A 

210048) 

文章编号:1 672—7894(201 1)25—0094—04 

摘要本文详细介绍了Jav a与.net开发框架的发展 

道理,十年的磨砺、十年的发展,经历了好几轮的选择却依 

演变过程.从市场和技术角度分析了两者之间的异同优劣. 

并给出实际应用范例.预测了未来技术的发展方向 

关键词J ava.net W1 ndOWS]j n uX/un1 X 

The Comparative Analysis between Java Frame and 

NET Frame//Zeng Hao 

Abstract This paper introduces the evolving process of java 

and.net frame in detail,analyzes both the advantages and sho— 

rtages in terms of market and technology,gives some applied 

examples,and prospects the direction of the further development. 

Key words Java;.net;windows;linux/unix 

Author’S address Information Faculty,Nanjing College of 

Chemical Technology,210048,Nanjing,Jiangsu,China 

1 Java框架与.NET框架的纷争 

Java与.NET的比较与竞争已经不是一两天也不是一两 

年的事情了,喜欢Windows的用户与初级的程序员都会喜 

欢上MS提供的.NET平台,而更加喜欢开源、自由的用户肯 

定会爱上这个有着十一年历史的Java开发平台。 

Windows平台的应用程序更加强调的是用户的操作界 

面,给程序员提供的是更加快捷简单的开发方式。Jaya平台 

只是定义了很多的规范,SUN公司没有具体地实现全部的 

细节,也没有精力去做这些庞杂的工作,于是只要能合作、 

会合作就可以将Java的项目做得非常优秀。 

做应用程序还是选择Windows好了,毕竟在LINUX/U— 

NIX下面使用可视化的应用程序还是不多见的,而且能够在 

LINUX/UNIX下熟练操作的人也该是很专业的人士了。要做 

企业级项目或者微型的移动业务,那就选择Java好了,凭着 

Java的名气与先前的大量成功案例,也可以让基于Java 

技术的项目能够在市场上表现得更好。 

把Java与.NET做出的项目中做个比较,性能上无疑 

是.NET更加优秀,安装、部署、运行、培训的花费也是.NET 

更具有优势。即使在开发工具的使用上,也是.NET占着很大 

的优势。c#的推出让Java变得有些不那么让人亲近了,很 

多的特性在Java中就不能使用也不好实现。存在就有它的 

94 钟敏j毛,cC 

然如此强盛,总该有它的优势所在。一次编译,处处运行;大 

量的开源项目;对网络通信的全面支持;大量地应用于企业 

级应用;在嵌入式、移动开发中占有优势…… 

有人说,Java是为了跨Windows和UNIX而产生的。是 

这样吗? 

Sun有自己的操作系统solaris,并且打的是高端市场, 

而在Java发展早期阶段,Windows还主要定位在中小型企 

业,并没有打算与Sun一争高端客户。 

而且Sun的用户大部分都是大型企业级,而Windows 

定位在家庭消费用户,由于Windows已经成为桌面OS的事 

实标准,Sun根本无意抢夺Windows的地盘,而且Sun有自 

己的操作系统,扩大自己产品销售才是第一。 

但是UNIX一直是个混乱的世界,各种UNIX版本并存, 

你为这种UNIX开发的应用,却很难在另一种UNIX上应用, 

应用的阻塞影响了UNIX市场需求的扩大,就像没有SQL 

Server,就没有OFFICE,就没有Windows游戏和Windows上 

的开发工具,就算操作系统做得再漂亮再容易用户也会扔掉 

Windows。为什么?因为没用,我买回来一个大铁家伙,我什么 

也做不了。Sun就出于这种考虑,所以才有VM的想法。所以 

说Java的产生,只是为了跨UNIX平台,当然能跨Windows。 

那为什么会有.NET呢?可是Windows就一个,它也要跨 

平台?而且微软已经把CLI提交给标准委员会,看来是真要 

跨了?真的吗?从外表来看,Windows确实是一个,但是从技 

术角度看,Windows3、Windows95、Windows2000是截然不同 

的三种架构。在中国,大家对新技术的追求比较热衷,所以说 

个企业中这三种操作系统并存互连的可能性不怎么大, 

但在西方不是这样,所以在国外企业运行很老的系统也不 

要见怪。微软为了同时维护这几种操作系统也是煞费苦心, 

而且由于技术是各个时期形成的,有的技术由于历史发展原 

因有明显的缺陷也无能修改了。所以跨Windows平台是微 

软制造.NET的一个原因,这样给你一个抽象的、统一的平台 

后,它再着手修改它的底层,省得一天人们叫着Windows不 

安全、WindowS不稳定。当然从J2EE的火热场面来看,拉去 

了很大一批Windows平台上的C++程序员,失去了应用开 

发的源头,那还有什么发展呢?如何拉回这批程序员让他们 

继续为Windows开发当然也是.NET的原因之一,这就是为 

什么.NET从架构到开发语言都与Java极其相似的原因,就 

是吸引你平滑再回到微软的世界中,如果跨度大了,程序员 

就有了迟疑。如果没有Java,如今的C#也不会是如今这样, 

原本它会更好。但是商业是不以个人意志为转移的,而且现 

在已经不是桌面为王的时代了,现在是互联网的时代,Java 

是第一个有强大开发WEB应用的完整体系,而当时微软的 

技术还是七拼八凑,只是互联网一下到来微软刚醒过神来仓 

促应战的结果,当然无法与J2EE媲美。想在互联网时代也分 

杯羹,必须也有一个完整的体系,于是.NET就产生了。 

下面先对两者作一个简单介绍,然后进行详细分析。 

2 Java平台框架介绍 

Java平台包括Java语言,以及一套虚拟机,如Jvm、 

kvm、cvm等,通过它们实现在pc机,手提电脑或是嵌入式系 

统上运行Java的字节码。同时,Java平台还定义了一整套覆 

盖面很广的api,它们被用来与微软的api协调或是相互竞 

争。如jdbc对odbc、jtapi对tapi、jdo对ado等等。因此,简要 

来说,Java平台包括语言、虚拟机以及api库。 

由于使用虚拟机机制,所以Java语言在所有的平台上 

只有唯一的版本,因此它使用rmi(远程方法调用remote 

method invocation)协议进行远程通信;微软则在.NET框架中 

使用dcom,正在逐步演变为soap(简单对象访问协议)。 

sun最初对Java的宣传是“一次性代码编写,所有环境 

下运行”,但在推出了“j2ee”ava 2 enterprise edition)和“j2me” 

fJava 2 micro edition)后不得不收回了它最初的宣传,因为“一 

种尺码的鞋适合所有的脚”的解决方案并不能很好地工作。 

3.NET平台框架 

NET框架包括c++、vb.net(vb 7.x】和c#等一系列语言, 

与Java虚拟机类似的一套运行时环境以及一套倾向于 

Windows体系的印i接口。其中的运行时环境可能存在于一 

个浏览器或是—个web server或是在操作系统中,将来也许在 

sql server中也可能存在这样的运行时环境。另外,需要提及 

的是微软的soap协议,它在继承了dcom的一些特性的基础 

上发展起来,基于xml格式通过http进行传输。soap的iava 

版本,可以在http://xm1.apache.org上看到它的有关文档。 

4比较分析 

4.1发展历程 

Java最初来源于sun的一套为机顶盒设计的语言,当时 

的名字是oak,sun将之更名,并将它放在Intemet上作为开 

放源码共享。随着专门为网页设计的iava applet的出现,Java 

语言迅速在Internet上流行起来。当时的浏览器主要是 

netscape。当微软发现明天市场的主宰可能是浏览器而不是 

桌面系统时,开始着手对netscape进行收购,在收购计划失 

败后微软发明了自己的浏览器IE。 

当时的Intemet需要一种语言,而Java适时地出现 

了,由于它与C“的许多相似的语法,使得很多程序员转向 

了Java。而它确实具有很多优势,以至于在Array8年秋, 

它的反对者微软在msdn中都宣称Java是编写com组件的 

最佳语言。 

随着Java一起出现的还有linux操作系统和apache服 

务器。这三者的联合在服务器端的应用表现出强大的威力, 

以至Windows nt在企业级服务器市场受到了很大的冲击。 

Java平台首先以serverlet,然后是jsp,最后是ejb(enter- 

prise java beans),逐步向企业级应用拓展。ejb是一个面向对 

象的事务进程系统,有些类似于微软的mts(microsoft trans— 

action server)。事实上mts和ejb都不是很成功,・因为它们都 

无法达到Intemet应用的规模。 

就本文的观点来看,Java最失败的时刻是sun通过法 

律手段向微软索赔¥2000万,并获得成功的时候。微软从那 

时开始制订自己的.NET计划,同时也宣布了Java作为独一 

无二的Intemet平台的地位的结束。 

4.2前景分析 

现在,我们能看到的还只是一个很混乱的局面,而在未 

来,我们将看到.NET的成熟以及它和Java的融合。 

Java将继续保持它的特点:跨平台的服务器端应用,如 

wap服务器,或者是电信领域的,如jain(java api for inteHigent 

networks,同时它在嵌入式系统中将继续保持它的优势,像 

智能卡、移动电话、pda等。而我们还将看到.NET的成熟,当 

然这种成熟需要时间,可能是相当长的一段时间,就好像当 

年Java成长那样。 

oracle 8i及其更老一些的版本充当着一个Java运行时的 

载体的角色,这使得Java得以与oracle数据库引擎紧密结 

合;同样,.NET体系也会与新版本sql server紧密结合,这将 

包括一个yes(虚拟执行系统)执行引擎。这将使程序开发人 

员可以在sql语句和存储过程中嵌入c#和vb.net的成分。目 

前,你可以通过调用dl1函数来使用扩展存储过程,但数据库 

本身并没有一个面向对象的运行时引擎与之相匹配。 

4.3未来的标志.NET 

非微软产品,包括服务器、桌面或是便携式设备的操作 

系统如solaris、linux和palm OS的.NET接口,与Java核心的 

整合。比如说,针对cli(common language infrastructure)的 

Java编译器、针对Java虚拟机的c#编译器。sql server或是 

oracle等数据库产品中整合的yes引擎。由中立的第三方开 

.If纽又c‘ 95 

发的开放源码的、完善的.NET平台。可以预见到,微软将会 

赞助一些开放源码的项目,以使.NET向unix平台扩展,而 

这将有助于一些开放源码组织减少它们对Java的偏爱。 

4.4 Java的命运 

Java的一个主要目标是通信设备提供商,如Nokia就在 

它的wap server应用了Java。类似于20世纪70年代和80 

年代初,pc销售时硬件供应商将最终的应用程序绑定在操 

作系统中一起销售,iava现在也被绑定于通信设备中被销 

售。它的另一个主要方向是Jain(java api for advanced intel— 

ligent network),它主要是定义一套与协议(如cdma,gsm, 

imt2000)无关的api,以便于基于开放市场的组件开发。这使 

得isv(独立软件供应商)可以以插件的形式提供通信服务, 

如可自动转接至最近的可拨通的国际呼叫中心的800免费 

电话。当然,jain也遇到了对手,像微软和不列颠通信提出的 

parlay计划,它也被业界所支持。另外,Java在嵌入式设备中 

也保持着领先的地位,如smart 3g和gprs,在这里的移动电话 

系统采用的是j2me(java 2 micro edition),但是如果它不能很 

好地解决一些固有的问题,如载入时的延迟等,也许很快它 

就将被c#代替,如果.NET能提供快速的运行环境和广泛的 

业界支持。 

4.5.NET和Java的整合举例分析 

无论从商业角度还是开发者角度,甚至是源码开放组 

织的角度,.NET和Java的整合都显得很有必要。下面就二 

者的整合做出估 (所有的相关项目被分为a、b两个组,以 

便于看清它们之间的关系,当然这些项目也完全可以被独 

立地操作)。 

4.5.1组的项目 

该组项目的主要目的是使现有的Java二进制代码能够 

在.NET平台上被执行。这意味着Java的二进制码(后缀为 

Class的文件)不用再从源代码进行重编译就能运行于.NET 

平台了。当然这些class文件在安装或执行时会被编译,就好 

像微软的运行时和jit对微软中间语言所做的那样。 

java api与每一个相应.net api之间将建立一个映射,比 

如java api中的java.io删e将被映射到.net的system.io e 

类。相对于比较简单的io类的映射,还有一些映射比较复 

杂,比如java.net包到.net的system.net的映射。这里存在的 

个问题是:该项工作如果在c#中进行开发会比较方便, 

而假如在java中实现,则需要有一个直接指向cli(common 

language interface)的编译器,它能生成符合cls(common lan— 

guage speciifcation)标准的cil(common intermediate language) 

代码。 

可以通过编写一个向导式的工具来避免一些繁琐的工 

作,如可以利用c#或Java来编写一个基于xml格式的对象 

96 种敏j毛.I‘ 

描述,用它生成一个框架代码,然后根据需要向其中手写添 

加其他代码。如果你确实打算进行这样的操作,在http://xm1. 

apache.org站点你可以找到很多有用的资料。微软的过时的 

java sdk中也有类似的工具可供参考——个用来生成jdi— 

rect(jdirect was the microsofls hack ofr implementing native in- 

terfaces)代码的工具,利用它可以实现访问本地win32 api, 

sdk中有该工具的源代码。顺便提一句,由于这里涉及微软 

的一套独特的Java扩展标记,因此sun和微软一直就此问 

题打着官司。 

它将Java源代码(使用.NET框架印i)编译为可执行文 

件的格式,如exe,dll等,这个工作是在最高的层面上对Java 

和.NET框架进行整合。这将为今后直接利用Java在.NET框 

架下创建应用打好基础。 

对现有Java编译器的代码生成部分重写,将是此项工 

作一个比较便捷的解决方案。就我个人的意见,sun会根据 

开放源代码的标准,开发这样的一套编译器。当然,这样的 

些改造计划需要对一些Java类进行调整。 

4.5.2组的项目 

该组的项目将主要致力于为其他的平台如palm OS、SO— 

lads以及linux平台开发.NET框架的端口。这些端口应该用 

C来编写以适应速度和控制上的需要,另外采用C来开发还 

可以保留进行操作系统相关的系统级编程。 

这部分内容事实上分为两个独立的部分:(1)针对palm 

OS;(2)针对unix系统。 

对于palm OS来说,解决方案比较简单,开发可以在pc 

环境下进行,然后利用数据线或是蓝牙传输到palm设备 

上。与之相关的.NET框架针对palm OS设计的api将在下 

个部分详述。unix部分将利用Java开发,最后将pe 

(portable exeeuteable)文件编译为cof(common object ifle 

format)格式,一种unix可执行文件的格式。编译将在安装 

或是载人时进行。 

net api bridge应该以一种优化的方式被映射到palm OS 

aDi上。连接器和装载设备的映射表驻留在pc的网关上。通 

过数据线或蓝牙传输palm OS的可执行代码。它的实现将依 

赖于palm OS的驻留虚拟机kvm(the java 2 micro edition)运 

行时,同时它还应该避免kvm设计中Java运行程序载入过 

慢的缺陷。另外这一套印i与为windwos ee的设计的不同, 

它不应舍弃那些资源占用较大的印i像system.xml。.net依 

赖于soap进行远程的方法调用。soap基于xml格式,因此它 

需要systen.xml的支持,如果没有基于soap的分布式应用将 

无法工作。通过调用system.xml api的方法可以实现对pda 

诸如windows ce和palm OS上的应用程序或是一些服务器端 

的应用的远程操作。甚至可以在soap的基础上利用为wap 

(wireless aCCeSS protoco1)设计的wbxml(w印binary xm1)标准与 

压到了.NET上,你难道还要在.NET的VM上再加一层Jaya 

wap网关进行通信。 

的VM? 

5结论 

目前这个问题好像已经不用再争了,中国90%的用户 

参考文献 

是Windows用户,保护现有投资,使用很习惯很容易且不用 

[11(美)Bruce Ecke1.Java编程思想.【M].候捷,译北京:机械工业出版 

重新学习,大多数用户不用跨平台,为什么要换Java呢?过去 

社.2002. 

是微软没有提供很强大的WEB开发解决方案,现在提供了, 

[2】(美)Mark Wutuka.Java2企业版全书.【M1.伟峰,译.北京:电子工业 

不用Java.而且.NET比Java出得迟,肯定会吸收Java的优点, 

出版社,2006. 

弥补Java的缺点。而且微软的VM肯定和Windows结合得 

【3]孙伟煜浏杰,等.c#案例开发[M].北京:中国水利水电出版社,2005. 

很好,性能不用担心,我干吗用Java?而且微软显然把宝已经 

编辑胡俊龙 

(上接第62页) 

2.3开放实验室 

数可以直接观察测定结果情况的变化,有利于学生加深对 

开放实验室是如今高校实验课改革的趋势。一方面可 

基础知识的记忆和原理的理解。在实验过程中,要求学生仔 

以弥补实验课时的不足,另一方面也有利于设计性与创新 细观察、勤于思考、认真记录,真正做到培养学生的实验技 

性实验的开展。对于一些课堂上未掌握好甚至失败的实验, 

能以及分析问题、解决问题的能力,提高学生以点带面、举 

可以允许学生补做实验,进一步增加对大型仪器的认识和 

反三、触类旁通等综合实验素质,为将来单独迅速熟悉操 

应用。当然实验室的开放可以与许多具体环节结合起来,也 

作新仪器打下基础。 

会收到较好的效果。如可以将实验室的开放与大学生科研 2.6精选实验内容。合理编排实验教材 

创新实验结合起来,提高学生对科研的热情,充分利用实验 

因为不同院校所使用的分析仪器设备类型、规格型号、 

室现有资源,巩固仪器分析实验教学内容。再如可以将实验 

生产厂家等不尽相同,高等院校的仪器分析实验教材的实 

室开放与化学检验工职业资格技能培训结合起来,不仅有 用性受到限制,给教师指导和学生预习带来不便,直接影响 

利于学生基础理论与基础技能的提高,而且还能帮助同学 

实验效果。而且随着时代的进步,仪器分析方法的更新速度 

结合实际具体对象制订具体分析方案的能力。当然开放实 

很快,基于这种现象有必要根据各自的院校实际编写实验 

验室还可以与毕业设计结合起来。在毕业设计的实验方案 

教材,这样才能做到实验中所列出的设备与实际情况吻合, 

中,大多都有化合物理化性质分析一项,所以可以充分利用 利于提高教学效果。而且随着新设备、新方法的引进,可以 

这一环节加深学生对大型仪器的运用,也有利于学生尽快 

在教材中不断更新,适应社会发展的要求。 ’ 

适应工作岗位。 

3结语 

2.4在实验课程中穿插对比教学 

设计好实验内容是上好实验课的先决条件,合理安排、 

实践证明,对比教学可以增加学生对一些相似概念、相 

组织实验教学是顺利完成实验课的关键环节,认真做好课 

似方法的深度认识,加深对实验原理的理解。如在光谱分析 

前准备是实验顺利进行的良好保障,开放实验室以及毕业 

实验中,比较原子吸收光谱仪与原子荧光光谱仪的结构、紫 

设计等课外环节可以为学生提供个性发展、独立思考、科学 

外吸收光谱与分子荧光光谱仪器的异同、同一物质紫外可 

创新以及提高综合实验技能的平台。仪器分析实验改革的 

见吸收光谱与荧光激发光谱的对应关系、原子吸收光谱与 

尝试,不仅能够培养学生的动手能力,更重要的是能培养学 

紫外可见吸收光谱仪的区别与联系等。再如气相色谱仪与 

生的创新能力和科学素养。我们只有在教学实践中不断总 

液相色谱仪的联系与区别、液相色谱与离子色谱的异同、电 

结经验、积极创新、调动学生学习的主动性和积极性、提高 

位分析与伏安分析搅拌方式的不同与原因等。经过这样比 

实验教学质量,才能达到教学改革的目的,才能为学生毕业 

对,使得学生对于不同的仪器结构特征差别以及原因有了 

直接走上工作岗位打下良好基础。 

进一步认识,同时也加深了对仪器工作原理的理解,收到较 

好学习效果。 

2.5增添实验中的条件实验,培养学生实验中的观察能力和 

参考文献 

思维习惯 

[1】李满秀,赵二劳,张海.仪器分析研究性开放实验的创新与实践[J】. 

在仪器分析实验中,每种仪器都有不同的操作参数。更 

大学化学,2007,22(6):28—30. 

【2]宁满侠,常慧.仪器分析实验教学的实践与体会fJ].东莞理工学院 

改这些参数对测定方法的灵敏度甚至方法的准确度都会产 

学报,2007,14f2):106—108. 

生一定的影响。所以增添不同参数下的实验,有利于帮助学 

[3】张增敏,陈恒武,郭伟强.仪器分析实验教学改革初探[J].大学化 

生巩固对这一参数的认知。如在原子吸收光谱实验中灯电 

学,2007,22(2):10—12. 

流、燃烧器高度、燃助比、狭缝大小、进样量等,再如气相色 

[4]林叶,李庆章.高学军生物仪器分析技术实验教学实践与探索[J]. 

谱实验中固定相的种类、柱温、色谱柱的长度与形状、微量 

牡丹江师范学院学报:自然科学版,2010,73㈥:79—80. 

注射器进样体积与速度等。在实验过程中,通过更改这些参 

编辑曾敏 

|lf纽 c‘ 97 


本文标签: 实验 学生 分析 仪器 进行