热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

详解ASP和JSP比较

由于我同时是ASP和JSP的程序员,所以正开始写一系列的文章来比较两者的差别,当我写到一半时,ASP+被宣布了,所以我不得不重新开始审视这个问题。我

由于我同时是ASP和JSP的程序员,所以正开始写一系列的文章来比较两者的差别,当我写到一半时,ASP+被宣布了,所以我不得不重新开始审视这个问题。我正在同时做一个JSP项目和一个ASP项目,后者十分有趣,因为它开始是采用ASP3.0,但当项目结束后我将会转换为ASP.NET。到那时我将可以对ASP+有更近的考察,并提供更好的ASP和JSP比较。本文是我目前对ASP+的一些认识和看法,并分析了它对于象我这样的普通开发人员可能会产生的影响。

通过最初步的ASP和JSP比较,我发现:

1) 面向对象性:

ASP.NET将C#作为一种面向对象语言,在很多方面来看,C#将成为微软的与Java相似的语言。

C#另一个有趣的地方是所有对象都自动变成为COM对象。如果C#能取得很大的市场份额,那么它将给ASP+带来类似于Java的功能,并且具备更快的性能,因为它可以和Windows环境紧密集成。

C#是ASP.NET开发中一个最重要的功能,微软会将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.NET将对大型站点(web farms)有更好的支持。事实上,微软已经在这方面付出了巨大的努力。 ASP.NET可以让你考虑到多服务器(multiple servers)的场合,当你需要更强大的功能时,仅仅只需要增加一台服务器。整个.Net框架已经充分地提供了这个方法。ASP.NET提供了外部会话状态(external session state)来提供内置式web farm的支持。另外,由于请求的各组件相互间经过了充分的优化,所以速度很快。

于是ASP+现在可以在大型项目方面与JSP一样具有等同的能力。而ASP+还有价格方面的优势,因为所有的组件将是服务器操作系统的一部分。对于JSP,你需要购买昂贵的应用服务器群来达到同样的目的。

4) ASP.NET还提供更多的其它方面的新特性,例如:
◆内置的对象缓存和页面结果缓存。
◆内置的XML支持,可用于XML数据集的简单处理。
◆服务器控制提供了更充分的交互式控制。

由此可见,ASP.NET确实对ASP进行了较大的发展。

在我审视完ASP.NET后,我的初步结论是:我未来项目主要还是要采用基于Java/JSP的技术。这有以下三个理由:

1) 要真正发挥ASP.NET潜力,你要使用C#或vb.net。这两种语言将成为ASP+标准的核心的脚本语言。这对ASP的未来发展很有好处。而我向来不喜欢用当前的Visual Basic来制作com对象。新的ASP+核心脚本语言更能发挥ASP+的价值。

显然,所有这些ASP.NET的新进展促使我对今后语言选择做一个决定,它将占据我未来的无数时间和努力。

回想起来,当Java开始发展起来时我正好学习了Java,那时我预感到这将是围绕我未来程序生涯的语言。于是,JSP理所当然地成为了我在web开发中的第一选择。

现在我已经是一个JSP fan,除非微软能够将我整个扭转过去,我感觉到自己正面临ASP+的巨大挑战。

2) ASP+依然完全锁定在微软的操作系统中。ASP和JSP比较ASP拥有更大的范围,它在别的服务器配置中也有很好的伸缩性。虽然Windows 2000 的优越性日益显露,但这对开发人员不构成问题。

3) 我并不能确信是否我能认同ASP+结构的各种方面,这需要更深入的分析,所以,我很犹豫。也许直到我使用了1-2个月后才会改变看法。总的来说,这需要在一个很高的层次来看待这个beta产品。

而作为一个ASP开发人员,ASP+也让我要停下来反思一下。未来8个月的ASP新项目将变得很困难。为什么?因为 ASP+和C# 带来了一个难题,它们要到2001年才正式提供。而很多性能方面的要求现在就需要确定。由于ASP+只是一个beta软件,所以现在我的第一个选择反而很简单了。现在的项目就采用ASP3.0。我认为各种beta版的语言都不太可信。

但我不能忽视ASP+,因为它很快就要推出,并代表了ASP的未来。ASP项目的管理者还需要考虑到未来的可平滑移植性及付出的时间代价等。另一个结果则是,这使得在近期使用PHP和JSP来代替ASP变得更可靠一些。

总的来说,

1) 如果使用ASP+,你将花费额外的时间学一些新的工具。

2) 新的工具有待于版本化,所以为什么不先关注于目前存在的东西?

3) ASP+将来会拥有的特性JSP已经拥有。

4) ASP+将你锁定到纯Microsoft的体系中。

最后,我预测会有很多人加入到PHP和JSP的行列。可是,仍然会有一部分人会受到ASP+给业界带来的激动所感染。我从没看到一个beta编程产品会带来如此的震撼!

同时,我还注意到一篇讨论.net的文章中也提到了同样的问题:

ASP+以自由软件作为开始,现在已经渐渐成为Microsoft的.Net框架的基石之一。Sun应该从中得到教训。特别注意的是,你需要许可证才能升级到ASP+,因为它和太多的产品集成在一起了。.Net框架太大了。在假定某个产品可以成为真正的产品之前,我通常等待它的第一个service pack。所以,即使ASP+已经在2001第一季度被版本化,我仍然要等到2001第二季度。

当然,因为ASP+ 已经产生了如此的激动人心,一旦推出,很多商店都会马上提供ASP+。

事实上我早已经使用beta版ASP+! 我发现它使用 .aspx 后缀,这使我我感觉Microsoft会在近期推出第一个ASP+的service pack。

下一年里,我们将看到在这个巨大的市场上Sun和Microsoft如何展开决战,而程序员们又将做出什么样的选择呢?


推荐阅读
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
author-avatar
巴香香
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有