ASP.NET 与 JAVA 的比较
ASP.NET 与 JAVA 的比较
导 读:ASP.NET提供了WEB FORM、WEB CONTROL、WEB SERVIEC等等面向WEB 应用的改进;JAVA 则以其出色的跨平台特性,良好的面向对象属性获得了今天WEB开发的主流地位。这二者谁将在明天的竞争中获胜?
一 、先介绍一下ASP+
ASP+ 是MicroSoft.NET 的一部分,作为战略产品,微软为ASP+ 设计了这样一些策略:易于写出结构清晰的代码,代码易于重用和共享,可用编译类语言编写 等等,目的是让程序员更容易的开发出WEB 应用,满足计算向WEB 转移的战略方向的需要。
ASP+ Beta1 已经于2000 年7 月开始测试,下面察看一下它的一些特性。
支持编译类语言及RunTime 支持比如VB,VC++, C# ,< Script language = “ Vb “ runat = “ server “ >
比script 语言,编译类语言运行速度快,更适合编写大型应用。MicroSoft.NET 支持多语言混合编程。Page 在首次装入时编译,使得代码可以在runtime 处理,这一点像vb6.代码运行在virtual 环境中,类似java 的virtual machine。
WEB Form
ASP+ WEB Form 提供了像VB Form 一样的编程习惯,可以触发server 端 events 。Web form 中可以布置 web control。
Page Events
ASP+ 的设计是 object oriented ,Page object 是最顶端的 object ,Web control ,application 和自定义的page ,都从page object 继承下来。Page object 有 OnLoad 等事件。
Web Controls
ASP+ 将提供5 类Web controls:
与 HTML 中的 FORM 元素对应的Control,比如:button ,text
list 类 control ,比如 Repeater ,DataList ,DataGrid ,
Rich Control
Validation Controls
Mobile Controls ,为WAP 设备提供 WML 。
开发 Web Services
Web Services 允许系统向 Web 输出函数 ,输出方式是 URIs ,调用之后返回 XML.
比如:
< % @ WebService Language = “ c# “ % >
using system.web.services;
public class Shipping{
<webmethod>
public string OrderStatus ( string OrderNumber ){
//代码
}
}
调用: http://orders/tracking.asmx/OrderStatus?OrderNumber=BRU123
调用协议可以用 HTTP-GET ,HTTP-POST ,HTTP-SOAP.
Web Service 为 WEB 系统集成,为基于 WEB 的分布式计算提供了良好的框架。
Caching 改进
ASP+ 提供cache API ,程序员可以控制Cache 的使用,在某些情况下,可以编写性能更好的应用。
Debugging 和 Tracing
ASP+ 内建的 Debugger 支持多语言混合编程,可以像 VB 中一样调试程序。增加了Trace 和 profiler 的功能。
分离代码与HTML 模版
代码可以放在 class 模块中。
分离的好处 ,便于程序员与页面制作人员独立工作,也便于代码共享。
库
模块化的支持,是编写大型应用程序的必备,ASP+ 的模块化支持非常好。提供了常用库,比如 SMTP SendMail ,提供了结构化的代码组织方式 ,比如
< % @ Import NameSpace = “ system.asp.util” % > ,引用了util 包。
配置和实施
ASP+ 的配置信息放在 XML 文件中,而不是注册表中, 实施ASP+ 应用,只要把程序拷贝到一个目录,不需要注册任何对象。因为注册有时候需要原有的服务STOP ,等一系列问题。这真是非常好。
ASP+ 支持编译过的程序的运行,可以保护技术秘密。
纵观以上特性的介绍,ASP+ 改进了很多ASP 的问题,对于熟悉VB 、VC 或其他传统开发平台的程序员,ASP+ 提供了一样好的开发Web 应用的平台,可以说ASP 是基于Script 的,而ASP+ 基于完整的OO 程序设计思想。ASP+ 对于WEB Service 的支持,使得Web 应用的集成非常方便。
二、与JAVA 的比较
JAVA 这种语言,偶然成为了当前Web 计算的主要语言,获得了广泛的业界支持,它portable ,良好的oo 属性 ,是互连网计算的强大的粘合剂。下面从两个方面观察一下java与微软的solution 的差别。
业界支持
IBM 的“e-business application framework“架构在Java,xml,corba ,IBM 有VisuageAge,WebSphere 作为web 开发的工具。Ibm 认为选择application framework 有几个原则:不依赖于特定的平台,建立在工业标准之上,大部分计算放在server 端,scalable 等。
由于Oracle,sybase, 等业界厂商的广泛支持,java 可以说是web 计算事实上的工业标准。Java 的package 也丰富起来,支持各种应用的开发。
开发模型
国内的软件厂商在向Web 计算迁移的时候,大多选择了java ,比如核心证券交易系统,用友财务系统,南北财务软件。核心软件和南北财务系统,用applet 开发客户端界面,使用起来与传统的软件没有什么差别。
可以说,目前采用 html 开发界面复杂的应用尚不是很合适,这是选择java applet 的理由。那么,ASP+ 出来之后,开发复杂的基于server 的应用要方便的多。
目前采用applet 的应用,把很多计算逻辑方在客户端,这种方式尚不是未来的计算集中在server 端的方式。也许,java 也会推出新的package 支持这种应用。
在server 端,java 采用 servlet、java bean ,ASP 采用Script、com 组件,目前的计算模式相类似。
ASP+ 中提到的web service 集成的方式,目前微软力推SOAP、 UDDI 。但是,这些是建议成为w3c 标准,不依赖于特定的平台。
从以上关于业界支持、开发模型的观察,可以说java 目前更适合广泛的web 计算。同时,我们期待ASP+ 的到来,期待更好的WEB 计算模型的到来。