【 tulaoshi.com - ASP 】
由于我同时是ASP和JSP的程序员,所以正开始写一系列的文章来比较两者的差别,当我写到一半时,ASP+被宣布了,所以我不得不重新开始审视这个问题。我正在同时做一个JSP项目和一个ASP项目,后者十分有趣,因为它开始是采用ASP3.0,但当项目结束后我将会转换为ASP+。到那时我将可以对ASP+有更近的考察,并提供更好的ASP+和JSP的比较。本文是我目前对ASP+的一些认识和看法,并分析了它对于象我这样的普通开发人员可能会产生的影响。
通过最初步的比较,我发现:
1) 面向对象性:
ASP+将C#作为一种面向对象语言,在很多方面来看,C#将成为微软的与Java相似的语言。
C#另一个有趣的地方是所有对象都自动变成为COM对象。如果C#能取得很大的市场份额,那么它将给ASP+带来类似于Java的功能,并且具备更快的性能,因为它可以和Windows环境紧密集成。
C#是ASP+开发中一个最重要的功能,微软会将C#发展成为Java的强劲对手。这也是微软.Net框架的一个重要组成部分。我认为C#是微软在编程市场上击败对手的主要工具。我期待着微软能在这个产品后面倾注全力,这样,C#可以成为许多程序员的又一种选择。C#的诞生无疑将进一步加剧微软和Sun产品的战线,但这对用户是有利的,他们可以选择两者之一来开发新的应用。
2) 数据库连接:
ASP另一个亮点是它使用ADO对象、ODBC、OLE-DB和事务处理管理器。因此ASP Web数据库应用开发特别简单。ASP+发展了更多的功能,因为有了ADO+!ADO+带来了更强大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落后,当新版本ASP+/ADO+出现后这样的差别会更明显。所以我个人希望SUN应尽快能花大力气来追赶ASP+/ADO+的组合。
3)大型站点应用:
ASP+将对大型站点(web farms)有更好的支持。事实上,微软已经在这方面付出了巨大的努力。 ASP+可以让你考虑到多服务器(multiple servers)的场合,当你需要更强大的功能时,仅仅只需要增加一台服务器。整个.Net框架已经充分地提供了这个方法。ASP+提供了外部会话状态(external session state)来提供内置式web farm的支持。另外,由于请求的各组件相互间经过了充分的优化,所以速度很快。
于是ASP+现在可以在大型项目方面与JSP一样具有等同的能力。而ASP+还有价格方面的优势,因为所有的组件将是服务器操作系统的一部分。对于JSP,你需要购买昂贵的应用服务器群来达到同样的目的。
4) ASP+还提供更多的其它方面的新特性,例如:
*内置的对象缓存和页面结果缓存。
*内置的XML支持,可用于XML数据集的简单处理。
*服务器控制提供了更充分的交互式控制。
由此可见,ASP+确实对ASP进行了较大的发展。
在我审视完ASP+后,我的初步结论是:我未来项目主要还是要采用基于Java/JSP的技术。这有以下三个理由:
1) 要真正发挥ASP+潜力,你要使用C#或vb.net。这两种语言将成为ASP+标准的核心的脚本语言。这对ASP的未来发展很有好处。而我向来不喜欢用当前的Visual Basic来制作com对象。新的ASP+核心脚本语言更能发挥ASP+的价值。
显然,所有这些ASP+的新进展促使我对今后语言选择做一个决定,它将占据我未来的无数时间和努力。
回想起来,当Java开始发展起来时我正好学习了Java,那时我预感到这将是围绕我未来程序生涯的语言。于是,JSP理所当然地成为了我在web开发中的第一选择。
现在我已经是一个JSP fan,除非微软能够将我整个扭转过去,我感觉到自己正面临ASP+的巨大挑战。
2) ASP+依然完全锁定在微软的操作系统中。JSP比ASP+拥有更大的范围,它在别的服务器配置中也有很好的伸缩性。虽然Windows 2000 的优越性日益显露,但这对开发人员不构成问题。
3) 我并不能确信是否我能认同ASP+结构的各种方面,这需要更深入的分析,所以,我很犹豫。也许直到我使用了1-2个月后才会改变看法。总的来说,这需要在一个很高的层次来看待这个beta产品。
而作为一个ASP开发人员,ASP+也让我要停下来反思一