-
ASP+全新接触
作者: · 赵于· | ||
ASP+是ASP的下一代版本,然而ASP+又并非从ASP3.0自然演化而来,在许多方面,ASP+与ASP有着本质的不同。ASP+完全基于模块与组件,具有更好的可扩展性与可定制性,数据处理方面更是引入了许多激动人心的新技术,正是这些具有革新意义的新特性,让ASP+远远超越了ASP,同时也提供给web开发人员更好的灵活性,有效缩短了web应用程序的开发周期。ASP+与Windows 2000 Server/Advanced Server的完美组合,为中小型乃至企业级的web商业模型提供了一个更为稳定,高效,安全的运行环境。 一.构造ASP+的运行及开发环境 迄今为止,ASP+尚处于测试阶段,至于我们目前所见到的有关ASP+的测试性评论,一部分是基于2000年7月份Microsoft的专业开发人员大会上发布的Beta版ASP+作出,另一部分则是基于.NET Framework SDK预览版中附带的ASP+作出,.NET Framework SDK预览版可以从MSDN上下载。 ASP+被设计成与ASP并行运行,这就意味着你可以在你的机器上同时使用ASP+,ASP两个版本。 总结一下,目前运行ASP+的系统需求是的: 1.服务器端: 1) Windows 2000 Server/Advanced Server,或Windows 2000 professional 2) IIS5.0 3) ASP+或Microsoft .NET Framework SDK 2.客户端: Internet Explorer5.5 ASP+的开发环境: 首选Visual Studio 7.0(具有所见即所得的设计器与调试器,专为基于VB,C#,C++的ASP+编程而设计)。当然,如果你是高手,使用NotePad或Visual Studio6.0或是Visual Interdev也不稀奇,只是它们都不支持新的对象语法和服务器端控件。 ASP+的开发语言: VB(是时候对VBScript说ByeBye了),事实上,更准确地说是Visual Basic .NET。此外还可用C#以及JScript来开发。 二. ASP+的四大新特性 1. ASP+基于全新的架构 ASP+是完全基于NGWS运行时框架的。 NGWS运行时框架(NGWS runtime framework)是Microsoft提出的面向下一代web的.NET架构的核心组成部分。NGWS运行时是一种全新的针对Windows的底层基础架构,它位于Windows的运行和用户程序之间,被用来管理代码的执行。它在开发者和操作系统之间提供一种封装,使Windows编程变得更加简单。NGWS运行时是完全基于对象的,它扩展了COM(Component Object Model,组件对象模型)的结构,为可扩展分布式应用程序提供了更多的新的增强性服务。有了NGWS运行时,我们再不必为忘记将ASP+页面中某个对象清零而担心,因为它会自动处理内存垃圾回收。同时一些对操作系统至关重要的底层服务的访问也变得更为轻松,安全性,认证,文件系统访问,网络信息,等等等等。。。一切都不成问题! 2.ASP+通过编译来执行 ASP+针对ASP的执行表现作了许多改进,页面脚本不再通过解释来执行,而是通过NGWS(Next Generation Web Services,下一代web服务)兼容的编译器编译来执行。别误会!我们所指的编译不是要你生成.EXE文件。 你仍然和以前一样编写代码,编译工作在脚本代码第一次收到请求并运行时由NGWS运行时自动完成,同时保存一份缓存的拷贝。当脚本再次收到请求时,系统直接运行缓存的拷贝,从而大大加快了执行速度,因为我们现在运行的是经过编译的代码。 如果源脚本有了改动,运行时会自动从缓存中丢弃旧的编译版本,以便下次收到执行请求时重新编译代码。 3.数据缓存技术 好了,现在我们有了一个更快的编译过的ASP+,但是这还是不够。设想一下这样的情形:你有一个动态生成的ASP+页面,该页面的内容源于一个后台数据库,而这个数据库可能好几天才得以更新一次。。。现在,假设你的服务器收到了来自客户端的一个请求,服务器会与数据库建立连接,执行查询,取回记录,反馈给用户,很简单,对吗?可是当服务器在同一时间要处理成千上万的相同的请求,会产生什么样的后果呢?毫无疑问,结果是无谓的重复运算与可怕的系统资源占用。 这就是为什么要用到数据缓存技术。 在ASP+中,当服务器第一次从数据库中取回数据后,数据被保存在变量中,当服务器接到相同的请求后,经过缓存的数据直接从服务器传递到客户端,现在我们可以不必打搅数据库了。 当然,你得在代码中设定数据的缓存期限,到了规定的时间或满足特定的条件,就清空缓存,取回新的数据。至于如何来设定缓存的期限,就完全取决于你的需求与技巧了。 4.ADO+,更易于使用的ADO 好马配好鞍,Microsoft在推出ASP+的同时,也推出了全新的ADO,即ADO+。ADO+以一种n维(n-dimensional)的,面向对象的方式来处理数据。在ADO中,数据以二维的形式表现出来,即行,列。但如果RecordSet中有一个特定的行列本身又是一个RecordSet,从而形成一个新的维度呢?这样的情况在ADO中很棘手,而用ADO+创建这样的多维RecordSet却只是举手之劳。 事实上,上面所说的RecordSet在ADO+中已不复存在,取而代之的是DataSet。在ADO+中,DataSet相当于RecordSet的集合,DataView则类似于RecordSet。 三.服务器端控件 ASP+的另一个诱人之处就是增加了更多好用的服务器端控件,Microsoft显然很好地听取了web开发者的反馈,新增的控件不仅增强了ASP+的功能,同时将以往让开发者们头痛的许多繁琐重复的工作都交给控件去完成了。以下是对这些控件的大致分类: 1.List controls 这类控件使你在客户端浏览器中创建列表变得更加轻松简单,同时给你更多的可定制性,现在你可以花更少的精力在页面布局上了。例子有:Repeater, DataList以及DataGrid controls 2.Rich controls 这类控件被用来在客户端生成更复杂,丰富的HTML元素。如:calender Control 3.Validation controls 验证控件属于隐式控件,它们被用来执行客户端与服务器端的验证。这类控件的数量相当之多,可以完成以前需要手工编写代码的各式各样的验证任务,程序员现在可以省去大量的If... else语句了。如:RequiredFieldValidator control, CompareValidator control, RangeValidator control, and RegularExpressionValidator control 4.其他 包括Intrinsic controls,以及我们渴望已久的SendMail组件,加/解密组件,可以自定义的执行表现记数器,可以读写NT日志的组件,网络访问组件。。。等等。 四. ASP+的最终版本 很显然,预览版的ASP+与运行时框架还不是十全十美的。虽然它们足以体现ASP+的新特性,然而最终版本的ASP+要比我们正在讨论的这个版本支持更多的功能,而且更加完善,它包含一些我们目前无法实现的特性: 1.支持多种Windows平台 这些平台包括:Windows 2000,Windows NT4.0,Windows95/98。而预览版本仅支持Windows 2000 server与Windows professional。针对Windows 95/98的ASP+在功能上有所限制,所以只能称其为“个人版”。 2.XHTML兼容 目前,由服务器端ASP+控件产生的输出是基本的HTML3.2,和XHTML并不兼容。XHTML由W3C(World Wide Web Consortium)推荐,如果输出和XHTML兼容,那么XML语法分析器就能正确地操控这些内容,否则就会出错。 Microsoft正试图让ASP+最终版的服务器端控件能够生成XHTML兼容的代码,然而由于客户端浏览器的差别,兼容的程度现在仍很难预测。 3.新的管理工具 最终版的ASP+将包含能让你轻松维护与配置程序的管理工具。你将看到能管理诸如config.web,global.asax之类文件的工具,它能以图形化的界面让你看到程序的执行状况,以及调试整个程序时的跟踪细节。 |
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比