上一篇:ASP.net随机数应用实例 >>
asp.NET特写
创建动态Web页面的新技术已经以CLR服务为基础全部重新改写。到目前为止,所有.NET提供的语言都可用于编写ASP.NET页面,但页面的扩展名和ASP 3.0的不同。具体地说,简单Web页面以“.aspx”为扩展名,Web服务以“.asmx”为扩展名(来源于“Assembly”),一种称为Pagelet的ASP.NET页面可重用部件以“.aspc”为扩展名。
.NET应用能够流畅地同时运行.asp和.aspx页面。旧式的ASP页面将由asp.dll直接运行,但它不能利用CLR的功能。
现在,.aspx页面不再解释执行,而是在第一次调用出现时被编译成MSIL代码,然后再以中间代码运行,就象J2EE环境下的JSP一样。一个合乎逻辑的结论是性能会有所提升,Microsoft宣称它可以与Visual Basic 4升级到编译版本5时应用性能的提升程度相媲美。
除了理解VB.NET引入的所有新概念之外,这些根本性的改变还要求对ASP页面的编写方式作较大的改动。为了了解从ASP迁移到ASP.NET所要做的工作,下面我们来分析一下主要改动之处。
这些改动分属三个层次:
API中的改动
页面结构的改动
vb script和VB.NET之间的改动
ASP.NET只允许每个页面使用一种语言。在DNA中,ASP页面可以同时使用JScript和vb script;但ASP.NET不再允许这种用法。
在ASP.NET中,函数必须用HTML < SCRIPT >标记包围,而且不允许把用于生成HTML代码的函数分割成多个部分。例如,ASP.NET不允许出现下面这种代码:
相反,我们必须代之以如下代码:
< SCRIPT LANGUAGE="VB" runat=server >
Function SayHello()
Response.Write ("< b >< i > ")
Response.Write (" Hello ! ")
Response.Write ("< /i >< /b > ")
End Function
< /SCRIPT >
括起函数调用参数的括号现在是必需的。另外,有的兼容性问题可能源于所有ASP.NET的数组下标都从0开始,而在ASP 3中有的从0开始,有的从1开始。
在VB.NET中,默认情况下参数以值(ByVal)传递,而在当前的vb script中,参数默认以引用传递(ByRef)。最后,VB.NET将不再支持默认值或关键词Set、Let。
虽然这些改动都不是重大的、根本性的,但如果要利用CLR以及编译代码的优势就必须修改现有的代码,这些改动会占据开发者大量的时间。Microsoft已经宣布,用于代码迁移的工具会随同.NET平台一起发布,但从现在起就养成合适的编码习惯无疑是有益无害的。
至于COM组件,ASP.NET将采用封装的形式使得原有的COM组件仍旧能够运行,但这些COM组件将运行在CLR受管理的环境之外,而且受管理以及非受管理环境之间的切换会牺牲一定的性能。因此,很多用户可能会决定重新把COM组件编写成COM + 2.0。
ASP.NET引入了服务器端控件,它可能是ASP.NET吸引开发者使用它的一个重要原因。使用这些控件,ASP.NET页面能够利用可视或者非可视控件提供的如下高级服务:TreeView(树形视图), ListBox(列表框), Calendar(日历),等等。所有这些控件都会分析调用它们的客户程序类型,然后生成合适的表现代码。一般地,Web页面中的输入框使用客户端java script进行输入合法性验证,但如果浏览器不支持java script或者禁用了java script,用户输入验证就会转到服务器端。
下一篇:ASP.NET中Cookie编程简明参考 >>
相关文章:
- · ASP.NET中的状态管理
- · ASP.Net生成静态HTML页
- · 关于ASP.NET中的缓存问题的几种方式
- · asp.net中datareader对象的简单使用
- · ASP.Net状态管理
- · ASP.NET 中 Session 实现原理浅析 [2] 状态管理器
- · ASP.NET 中 Session 实现原理浅析 [1] 会话的建立流程
- · Asp.net 在DataGrid中使选中的页码变成突显的颜色
- · 给Asp.Net初学者的关于继承和多态性的例子
- · ASP.NET编程中的十大技巧
- · ASP.NET环境下完整的treeview使用类
- · asp.net下的日历控件源代码
- · ASP.NET中上传文件到数据库
- · ASP.NET开发经验积累
- · ASP.NET组件设计Step by Step(8)
- · 在VB.NET下面如何显示和保存缩放图像
- · 在ASP.NET 中实现单点登录
- · 一个ASP.NET调试错误
- · asp.net 2.0的新功能!
- · 如何同一时间一个帐号只有一个用户使用?(asp.net)
- · ASP.NET网站建设之代码分离
- · Aspx中导Excel
- · ASP.NET之Web打印-终极解决篇
- · 使用.NET实现视频播放
- · Aspx中导Excel
- · ASP.NET之Web打印-终极解决篇
- · ASP.NET编程中的十大技巧
- · 发发牢骚,关于ASP.NET读取XML新闻的问题
- · ASP + XML + javascript 实现动态无限级联动菜单
- · Asp.Net页面输出到EXCEL
- · 关于ASP.NET中Resonse.QueryString函数汉字参数传递错误的处理办法
- · Asp.net中的代码与表现分离
- · 在 ASP.NET 中实现 Page Controller
- · 在 ASP.NET 中实现 Page Controller
- · [ASP.net]DataGrid鼠标事件处理
- · ASP.NET页面间的传值的几种方法
- · 在asp.net中发送带有smtp验证的邮件
- · [ASP.net]DataGrid鼠标事件方法
