[ASP中使用三层架构] 3.使用三层架构的好处
对于三层架构的概念性意义,网络上有很多专文探讨,若想深入了解,可以自寻解答.本文仅作为一种应用性探讨,讲的更多的是实现的细节.
简单地讲,三层架构是将代码按其作用分成三部分,每部分解决自己负责的流程.
从表入深,分别是:
界面层-UI 处理页面的数据显示,及用户体验
逻辑层-BLL 业务功能的实现过程,生成结果,提交给UI
数据层-DAL 访问数据库,将结果提供给BLL
可以想象成一个做面包过程,DAL负责从容器中取来面粉+鸡蛋+水,BLL负责搅和成可用的面浆并烘烤,UI负责把烤好的面包包装好放在货柜上等待被买走.
三层架构强调程序的可复用性,在这一点上并不独特.
在传统的ASP编程中,通常将可复用的代码封装在function,sub中并放在例如mainfunction.asp之类的文件中,通过<!--#include file="mainfunction.asp" -->来调用. 事实上,本文所讲的三层架构的代码复用方式,也是用<!--#include file="**.asp" -->实现的,跟传统方式是一致的.所以如果仅仅是开发一个小型web程序,例如留言本之类,用上三层架构就显得很啰嗦了.
三层架构的功用之处,在于驾驭大型web程序的结构,使之便于管理和扩展.
在设计UI的时候,我们不需要关心其中的逻辑和数据问题,只需要空出对应的位置,用于放置数据. 在设计和修改的时候,要解决的只是HTML的结构,代码看起来干净利落,做起来也是干净利落.
UI直接将程序逻辑的任务丢给BLL,BLL就开始构建具体的实现细节.BLL的创建依赖于业务. 例如一个文章系统,BLL_Aticle就表示它是用于对文章的处理的.BLL_Aticle可以提供给UI一个文章列表的recordset,显示在UI的预留位置. 当BLL_Aticle需要从数据库中获取数据的时候,就将任务丢给DAL层
DAL层专门负责和数据库打交道,它从BLL获取参数,组织一个有效的SQL,建立数据库连接,执行SQL进行更新或获取,将返回的数据交给BLL.
每一部分的业务都集中于一个UI-BLL-DAL的链中,上下清晰了然. 至于是怎样的便于管理和扩展,将在后面结合实例进行分析.
复杂的生命形式必有复杂的生存法则,若想在自己的项目中应用好三层架构,需要多用点心体会其中的应用法则.
&nbs
相关文档:
看到有朋友说前面一章讲得没必要,想想也确实.本来是没有打算讲这些基础的,只是行文起来没有约束,就荡开到基础知识上面了.
从这节开始,将会给大家介绍ASP中的三大通用类,它贯穿于我所设计的三层架构中,是对ASP语法的扩展,可以提高很多细节处理上的效率,可以算是一点点框架的味道.
& ......
asp衔接Mssql的办法及常见的差错
//第一种写法:
MM_conn_STRING = "Driver={SQL Server};server=(local);uid=sa;pwd=;database=infs;"
Set conn = Server.Createobject("ADODB.Connection")
conn.open MM_conn_STRING
SET RS=SERVER.CreateObject("ADOBD.recordset")
SQL="SELECT * from TABLE ORDER BY ID DESC"
R ......
记得在建立一个文件夹"updata"
saveannounce_upload.asp 上传页
------------------------------------
<html>
<head>
<style type="text/css
">
body {font-size:9pt;}
input {font-size:9pt;}
</style>
<title>文件上传</title>
</head& ......
很多时候,我们采用原始的方法来解决一行内循环3张图片,如果上传者只上传了2张图片,那么2张图片间的距离会很大,因为缺少了一个<td> </td>.
<table border="0" cellpadding="0" cellspacing="0">
<%
dim rs,sqltext
set rs = Server.CreateObject("adodb.recordset")
sqltext="sel ......