怎样创建鲁棒性、正确性、可维护性和性能俱佳的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&