技术文章 > 将ASP移植到ASP.Net

将ASP移植到ASP.Net

2018-09-26 07:26

文档管理软件,文档管理系统,知识管理系统,档案管理系统的技术资料:
ASP.Net是面向下一代企业级的网络计算Web平台, 是对传统ASP技术的重大升级和更新。虽然ASP.Net的设计对传统ASP应用程序有着很高的兼容性,但在将ASP向ASP.Net的移植过程中仍有一些关键的地方需要注意,尤其是在利用ASP.Net的高性能、高可靠性、高扩展性方面。下面主要讨论在将ASP移植到ASP.Net的过程中所需注意的关键之处。
1. 多语言特性 ASP支持一个页面内的多语言实现(VB、JavaScript),而ASP.Net不支持这种多语言特性——它支持多语言实现(VB、C#、JScrip),但在一个页面内只能用一种语言实现。实际上这是由ASP和ASP.Net的内在执行引擎决定的——ASP是由执行引擎(asp.dll)对编制好的脚本文件直接解释执行,而ASP.Net是由执行引擎(aspnet_isapi.dll)先将脚本文件编译然后执行的。
2. 函数的实现 ASP.Net页面内创建的函数必须在内的语句块里声明并实现:

<%
MyFuntion();
%>
而不是像ASP那样可以在<%和%>之间的块语句里实现:
<%
Sub MyFuntion()
Response.Write “This is ASP!”
End Sub
MyFuntion()
%>
ASP.Net也不再支持传统ASP的HTML内嵌脚本函数:
<%Sub MyFunction ()%>

This is MyFunction


<%End Sub MyFunction%>
这也必须改写成ASP.Net下的函数:

<%
Call MyFunction()
%>
3. 编程语言 ASP支持的是Visual Basic Script脚本语言,而ASP.Net支持的是新一代的Visual Basic.Net编程语言。脚本语言由于是编程语言的微缩版本,因而功能有限,程序的健壮性也差; 而面向.Net平台的编程语言则具有强类型检查、高扩展性、功能强大等优点。而Visual Basic到Visual Basic.Net的语言上的变化也应引起注意,比如Visual Basic.Net不再支持Set/Let赋值语句,参数调用缺省为值(Value)参数类型,错误处理由原来的On Error Resume Next 和 On Error Goto语句改为Try、Catch和 Finally语句等诸多方面。
4. COM组件操作 ASP.Net通过Server.CreateObject(ProgId) API调用来实现支持与ASP下的传统COM组件的互操作性,这与ASP利用IDispatch接口来操作COM组件的机理一样:
Dim Obj As Object
Obj = Server.CreateObject(“ProgID”)
Obj. MyMethodCall()
也可通过创建运行时包装类(RCW)来实现受管代码与非受管代码之间的调用:
Dim Obj As New MyObject
MyObject. MyMethodCall()
后者有比前者更好的性能,后者实际上是早绑定,而前者是到运行时才进行的晚绑定。
5. 事务处理 ASP.Net通过<%@ Transaction=“Required”%>指示符来支持ASP下的事务操作。事务是实现一个操作集合的原子性操作(要么全实现,要么全不实现),在大规模数据处理的企业计算中有很高的应用价值。若不能完成事务,要通过ContextUtil.SetAbort的调用来回滚事务:
if (!MyTransaction()) {
ContextUtil.SetAbort();
}
6. 配置模型 传统ASP的应用程序信息存储在系统注册表和IIS元素库里; 而ASP.Net引入了基于XML文件的“零安装”配置模型。零安装的含义是只需将配置文件Web.config(每个ASP.Net的应用程序的主目录里都有这样一个文件,文件为XML格式)应用程序拷贝到系统指定的目录下即可,需要更改时直接在文件里更改并保存。而所有这些配置都是在和传统ASP应用程序完全分离的两套模型情况下进行的。也就是说ASP与ASP.Net可以共存于一个Web服务器上而互不干扰。下面简单列出一些常用的配置信息:
: 配置应用程序设置;
: 配置ASP.Net应用程序认证;
: 配置与页面元素有关的设置;
: 配置ASP.Net在IIS系统下的进程模型;
: 配置ASP.Net程序的阶段设置管理。
7. 安全管理 ASP.Net提供了比传统ASP更强大可靠的安全管理。除了在传统ASP下的IIS安全管理下,ASP.Net通过基于Web.config文件的设置来实现更高一级的安全策略。ASP.Net也支持基于微软Passport的安全认证服务。下面是一个简单的配置文件例子:







8. 数据获取 在数据获取方面,ASP.Net支持强大的新一代基于分离体系的ADO.Net数据获取模型。ASP.Net也可以通过COM组件代理来实现对传统数据模型ADO的支持,但那样的性能与ADO.Net相差很多。关于ADO.Net,其核心便是数据源和本地数据存储的分离,掌握了它,便抓住了ADO.Net的灵魂。
上面简要列出了将ASP向ASP.Net的移植过程中的一些关键的地方,当然在提高系统性能与优化等方方面面仍有很多工作要做,我们寻求的第一步是将传统ASP先成功移植到新一代ASP.Net平台下,其后更多的技巧要靠在实践中慢慢掌握。