选择显示字体大小

如何写出优秀的asp应用 (1)

     怎样创建鲁棒性、正确性、可维护性和性能俱佳的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、dhtmljava 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方式
  . 隐藏的表单
  
  application变量:
  
  . 共享变量
  . 不能持久保存
  . 多个web服务器时不行,除非只是只读变量。
  
  缓存
  
  . 对静态内容非常理想
  . 不要使用response.expires=0,使用负数:
  . response.expires=-10000;
  . response.addheader “pragma”,”no-cache”
  . response.addheader “cache-control”,”no-store”
  . 服务器缓存
  . proxy缓存
  . 客户端缓存
  
  
  
    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons