ASP Framework (一) 简介

来源:互联网 发布:简明python教程 微盘 编辑:程序博客网 时间:2024/04/30 09:17

  前阵子刚完成一个B/S架构的学校办公系统,体会就是表太多,文件太多,而每个文件中类似的操作(代码)也太多了,例如学生信息和教师信息操作,student.asp,teacher.asp,这两个文件要实现的功能有,添加、删除、修改、显示教师和学生信息,两个文件中就有很多相同的代码:比如:
  显示信息,do while not rs.eof,rs.movenxt
  添加记录,name = request.from("name"),sex=request.from("name")...

  所以整个系统的完成大致就是不停的复制文件,修改文件名,修改字段名,变量名等等,然后再加上各自不同的属性,如逻辑处理等。直接复制方便倒也方便,但是产生了很多重复的代码,这样一来,对将来的扩展和维护都会有很大限制。因此我开始在网上寻找可以提高开发效率的类或者框架,结果没有令我满意的,如数据库类只是简单的打包了一系列的函数,返回的还是RS,用的时候还是得do while not rs.eof,要么就是一些函数库,将一大堆函数整合成一个文件.....等等,因此本人计划整一个ASP版的Framework。

  相信看完上述文字,应该可以大致了解该Framework的主要目的,即最大化的精简代码,而且要保证系统的可扩展性,即可以灵活的应用于各个领域的WEB开发(ASP)。当然,由于水平有限,难免会有很多需要改善的地方,希望大家多多指教,提出好的建议,把它做的更好。

  废话不多说,进入主题,该Framework是由我最近的一个项目中所写的框架改进而来,目前只整理了数据库操作,其它部分等完成后一起放出。下面结合实例讲解一下如何使用。


运行环境:
IIS+ASP+ACCESS(MSSQL)

文件目录:
include文件夹[只需要配置config.asp文件]:
  [config.asp] 故名思义,用于网站配置,如数据库类型,登录账号,密码,网站语言等
  [function.asp] 函数库,主要功能,简化ASP常用内置对象,如response.write(str)=echo(str),response.querystring=q(str),数组操作,FSO操作,表单各项输出简化...
  [class.ctrl.asp] 网站控制类,实现从URL参数转入相关处理的模块,为了适应潮流,该类也即将实现URL[伪伪]静态,如www.****.cn/?/news/list/1.html,
  [class.db.asp] 数据库操作类
  [class.view.asp] 模板类,为什么不叫tpl而是view,大概也是受到了MVC的影响吧,呵呵,当然这并不代表该框架能实现MVC模板开发,框架只为提高效率而写。

mods文件夹:
  该文件夹存放了很多类似mods_news.asp,mods_user.asp这样的文件,他们基本上与数据库的表名相对应,每个文件下放着该模块所用到的函数,他们与URL参数相对应,如?/news/list/将返回mods_news.asp中list函数的运行结果,然后将结果交给view统一处理,再显示最终页面给客户端,这些都是自动完成的,你只需要新建类似的文件,然后在里面添加各个操作函数即可,当然函数返回的内容会有一定的约束,比如他们都是一个一维数组,必须包含模板文件名等,这在以后详细解释。

view文件夹
  不多说,里面放了各个模块所需要用到的模板

[index.asp] [可根据需要自定义配置]:
  该文件存放于根目录,理论上可实现对整个网站操作入口的统一管理,他将统一处理URL参数,并将控制权转给对应mods文件中的对应函数,由函数返回结果或直接转入提示页(如删除,添加等操作完成后只需要转到提示页即可,而不需要返回结果),index.asp再将函数运行结果与对应模板结合,最终显示给用户。
  当然有些地方分开也好,比如网站前台和后台管理这并不需要统一入口,可以复制一个index.asp文件放入对应的文件夹,修改一下include file路径。

暂时就这么多,将来还会有upload和用户权限相关的操作,正在整理中...

来个小实例进一步了解一下

该实例不需要用到数据库,因此config.asp也不需要改什么配置了

第一步:定义网站模块
打开index.asp,找到
d.add "default", array("default")
在该行下面新加一个模块,名称自己定义,如
d.add "news", array("list","add","del","update")

第二步:制作模板文件
在view文件夹中新建一个HTML文件,如news_list.html,同样,名称自己定义
然后在里面加一些代码,如:
<title>{web_title}</title>
<h1>{test}</h1>
<p>{my}</p>
{}这里面就是自定义标签了,名字随便起

第三步:建立mods逻辑处理函数
在mods文件夹新建一个名为mods_news.asp,这个名字可不能随便起了,其中的news与第一步中的news是相对应的
然后在里面写如下代码:
<%
'函数名与第一步中的list对应,且函数都不可带参数
function list()
    dim web_title,test
    web_title = "这是网站标题"
    test = "测试一下"
    dim return(3)
    return(0) = "news_list.html"   '数组中第一个固定为模板名
    '下面替换模板中的标签,"标签名|要替换的值"
    return(1) = "web_title|"&web_title
    return(2) = "test|"&test
    return(3) = "my|我随便写的"
    list = return
end function

'del,add,update等操作我就不详写了
function del()
    '.................
    conn.execute("delete ....")
    '转到提示信息页
end function
%>

好了,打开浏览器,输入http://localhost/?do=news,list,就可以看到模板文件被替换后的结果了。

 

官方网站:http://quickwork.anyyes.cn/

原创粉丝点击