代码改变世界

ASP程序开发规范

2018-02-08 11:22  Evan  阅读(55)  评论(0)    收藏  举报
  • 开发工具和平台
    1. 代码编辑工具:VS2005、notepad,editplus;
    2. 程序运行在本地,数据库连接SERVER1;
  • 代码规范
    1. 程序目录的定义:对应的模块有对应的目录,更细一级别也有对应的目录设置,如果需要增加,Email通知大家
    2. ASP文件的定义:
      • 文件名反映了页面的功能和逻辑动作,必须用英文小写来定义,单词间用下划线分开比如:event_new.asp,event_save.asp
      • 文件名中通用词
        • 新建输入页面:xxxx_new.asp
        • 新建/修改/删除保存页面:xxxx_save.asp
        • 查询条件输入页面:xxxx_query.asp
        • 查询结果/列表页面:xxxx_list.asp
        • 详细业务对象信息修改/查看页面:xxxxx_detail.asp
        • 选择器页面:xxxxx_finder.asp
    3. 目录及菜单:
      • 根目录下程序框架中的菜单文件: menu_crm.xml,menu_eng.xml为系统菜单文件,中、英文需要修改同步;
      • 图片资源(images):为所有资源图片,不要加入任何无意义的图片;
      • 包含文件文件夹(include):该文件夹中为前后端包含文件,包括公共ASP函数和Javascript函数及其css文件,通用功能函数必须在这些文件中定义;
      • 上传文件(doc):需要上传或生成文件时,必须将文件放到跟目录DOC文件夹下;
      • COM组件(dll):系统所需的所有COM组件必须放在应用程序根目录\dll下,到酒店安装的时候也必须如此;
    4. ASP页面内元素定义:
      • 包含文件
        • asp: include/conn.asp
        • js: include/checkinfo.js;include/cele_date.js
        • css: include/main.css
      • 声明变量:
        • 与数据库对象映射相关的变量,用户页面间接收传递,变量名称应该与数据库对象保持一致:比如字段对应界面控件;
        • 过程中使用的其他变量使用标准编码规范:类型+名称:比如:strSQL,iCount等等;
        • 声明变量要放在页面顶端;
      • 界面控件
        • 命名采用与数据库中对象保持一致,小写英文,界面间传递需要用Hidden控件传递,不要用Session和?QueryString;
        • 页面跳转及所有功能操作都用JS事件来触发解决;
        • 给界面上的控件设置初始值时,一定注意要加双引号,特别是用变量赋值时一定注意增加双引号,例如:
          正确:
          <input name="abc" value="120"> 
          <input name="abc" value="<%=变量%>"> 
          错误:
          <input name=abc value=120> 
          <input name=abc value=<%=变量%>> 
          
      • Javascript:Java函数代码应该写在<head></head>;
      • VBscript:除非特殊情况(COM调用),否则不建议使用VBScript来前端验证;
    5. 中英文双语:
      • 通过Conn里面的特殊函数和页面rs变量实现
      • 开发过程中直接用中文描述界面元素,功能实现完毕之后,通过T.Exe工具实现双语
    6. sql语句编写注意事项:
      • 所有insert语句时一定要将表中的字段列出来,例如:
         insert dic_color(code,name,sort_id) values(' '...)
        不能使用
         insert dic_color values(...)
        
      • 对于拼接语句时,注意增加单引号,例如:
         where hotel_code='1000001'
        Or
         update hotels set type='2003'
        
      • 左右连接两个表尽量用join on,因为2005中不支持‘*=’了;

SQL语句中的变量,该用什么型,就用什么型,如果需要格式拼装,通过中间变量或者convert加上格式参数的方式,看看SQL Convert函数就什么都明白了。 SQL帮助中有CAST和convert函数的对比,大家可以研究一下;

这个问题延伸出另一个问题:

  • 有些sp中需要接收2个时间做查询条件,页面上要求做年、季度、月、日报表;
    • 第一种是在页面处理时间,不管做什么时间类型的报表,都处理成完整的日期类型,即yyyy-mm-dd;
    • 第二种是在sp中处理时间,这样做传入的参数就不是一个完成的日期类型参数,可能是年,可能是年+月,这样变量就不能定义成日期类型,只能定义成varchar;

在我们的程序规范中,一般用第一种,大家注意一下,是个小技巧问题。