日期:2013-01-06  浏览次数:21114 次

怎样创建鲁棒性、正确性、可维护性和性能俱佳的ASP应用程序?要做什么?不做什么?本文以提纲的形式,给出了主要的Check-Points(检查点)。

什么是ASP

Active Server Page,简称ASP,是:

l连接网友界面(HTML)和商业逻辑(Business Logic);

l提供一致的、容易使用的、有状态保持的、基于WEB的客户端;

l为那些需要事务处理的WEB 应用提供应用程序环境。

ASP不是:

l         实现商业逻辑(Business Logic)的地方;商业逻辑应该通过COM+、MTS或者数据库来实现。

ASP的使用者应该有下面的教训:

l         开发应用程序,而不是开发一个一个的孤立ASP页面;

l         对输入和输出进行缓存;

l         在发布之前要测试;

l         选择性能较好的部件;

l         减少数据库的存取:缓存变换后的结果;

l         使用MSMQ来处理有时间延迟的工作;

站点设计
u       你的站点想提供什么?

u       信息架构:80/20准则;

u       站点导航;

u       页面布局;

u       可用性;

n         使用ALT和Title属性;

n         不使用图片或者Image Map的导航;

u       适合大多数低版本浏览器,考虑他们对ActiveX、RDS、XML、DHTML、Java Applet的支持状况;

u       屏幕分辨率和屏幕颜色数

n         是否支持WebTV、PDA…?

n         设置IMG的width和height属性。

u       非浏览器的访问,如自动机器人(Spider);

u       使用帧(Frame)?

u       使用Cookies的个性化;

u       避免坏连接;

u       使用meta标签;

u       内容审核;

u       内容检索;

u       结果反馈:用户反馈和跟踪;

u       减少下载时间;

三层、四层应用设计



可读性、可维护性
u       使用注释;

u       在VBScript脚本中使用<%Option Explicit%>;

u       使用字符串变量存储SQL字符串:便于调试;

u       使用Server.MapPath和相对路径;

u       使用ADODB.INC或者<!—metadata typelib=somelib file=somedll-->来引用常量,不要直接使用常量数值。

u       指定ADO调用的缺省参数,避免出错;

u       使用库或者部件来封装代码。



正确的方法:

u       使用Server.URLEncode

u       错误捕获和处理

国际化:

u       使用<%CodePage%>

u       使用Session.CodePage

u       在IIS5.0中,Response.write支持UTF8

其他:

u       使用#include 重用代码

u       使用分页技术

站点安全:

u       客户身份验证

u       输入验证

u       #include 文件不要使用.INC后缀,使用.ASP或者设置.INC的应用程序映射

u       把MDB文件存放在非WEB路径下;

u       使用ADSI做安全管理



Session和Application状态
Session的使用:

u       使用起来很方便但是很有问题;

u       HTTP是一个无状态的协议;

u&