当前位置: 首页 > 图文教程 > 网络编程 > ASP > 如何写出优秀的ASP应用

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

如何写出优秀的ASP应用


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 153 ::
收藏到网摘: n/a

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

什么是ASP

Active Server Page,简称ASP,是:

. 连接网友界面(HTML)和商业逻辑(Business Logic);
. 提供一致的、容易使用的、有状态保持的、基于WEB的客户端;
. 为那些需要事务处理的WEB 应用提供应用程序环境。

ASP不是

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

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

. 开发应用程序,而不是开发一个一个的孤立ASP页面;
. 对输入和输出进行缓存;
. 在发布之前要测试;
. 选择性能较好的部件;
. 减少数据库的存取:缓存变换后的结果;
. 使用MSMQ来处理有时间延迟的工作;

站点设计

. 你的站点想提供什么?
. 信息架构:80/20准则;
. 站点导航;
. 页面布局;
. 可用性;
. 使用ALT和Title属性;
. 不使用图片或者Image Map的导航;
. 适合大多数低版本浏览器,考虑他们对ActiveX、RDS、XML、DHTML、Java Applet的支持状况;
. 屏幕分辨率和屏幕颜色数
. 是否支持WebTV、PDA…?
. 设置IMG的width和height属性。
. 非浏览器的访问,如自动机器人(Spider);
. 使用帧(Frame)?
. 使用Cookies的个性化;
. 避免坏连接;
. 使用meta标签;
. 内容审核;
. 内容检索;
. 结果反馈:用户反馈和跟踪;
. 减少下载时间;

三层、四层应用设计

可读性、可维护性

. 使用注释;
. 在VBScript脚本中使用<%Optio. Explicit%>;
. 使用字符串变量存储SQL字符串:便于调试;
. 使用Server.MapPath和相对路径;
. 使用ADODB.INC或者<!—metadata typelib=somelib file=somedll-->来引用常量,不要直接使用常量数值。
. 指定ADO调用的缺省参数,避免出错;
. 使用库或者部件来封装代码。

正确的方法

. 使用Server.URLEncode
. 错误捕获和处理

国际化

. 使用<%CodePage%>
. 使用Session.CodePage
. 在IIS5.0中,Response.write支持UTF8

其他

. 使用#include 重用代码
. 使用分页技术

站点安全

. 客户身份验证
. 输入验证
. #include 文件不要使用.INC后缀,使用.ASP或者设置.INC的应用程序映射
. 把MDB文件存放在非WEB路径下;
. 使用ADSI做安全管理

Session和Application状态

Session的使用

. 使用起来很方便但是很有问题;
. HTTP是一个无状态的协议;
. 设计购物推车特别有用;
. 不利于可伸缩性设计(Scalability);
. 在不需要Session的页面中使用<%EnableSessionState=false%>
. 尽可能完全避免使用Session;
. 在多个web服务器情况下不适合;
. 某些部件使Session运行在单一线程模式,减少了吞吐量;
. 消耗内存;
. Session有超时的问题
. 需要客户端的浏览器打开cookie设置;
. 不要在session中保存recordset,或者缓存connection对象;
. 在global.asa不要使用空的Session_OnEnd;
. 可选方案:
. cookies
. 直接状态编码:简单、容易、不安全
. 后端数据库的ID作为状态值
. querystring 参数
. 如amazon的url方式
. 隐藏的