当前位置:编程学习 > C#/ASP.NET >>

asp.net(C#)的三层架构开发项目

   有三层架构开发项目经验的大虾指教一下,本人有点迷茫,刚刚接触,不吝赐教! --------------------编程问答--------------------     所谓三层开发,就是将业务数据与功能数据分开,表现层与资料层分开。具体来讲,就是用户UI只管设计UI,只管数据以何种方式呈现,不考虑数据是什么内容,而程序和其他规范性文件也单独设计。简单的理解,如果把UI当作第一层,那么程序就是第二层,数据库是第三层。
    举个简单的例子,如ASP.NET的WEB项目,前台页面HTML只管做自己的UI设计,相关联的CSS和JS都由单独的文件导入HTML构成ASPX文件,而功能实现的程序即.CS文件单独设计,关联到ASPX文件,已支撑UI到数据库之间的联系。
    尽管这样理解有点粗浅,但这对于入门的童鞋来说,是最能够容易理解的吧。 --------------------编程问答-------------------- http://baike.baidu.com/view/687468.htm
详细介绍 --------------------编程问答-------------------- 刚开始学三层不要做太难的东西,做个简单的比如用三层写个用户登录的功能O(∩_∩)O~
三层体系架构
  1.表示层(USL):主要表示WEB方式,也可以表示成WINFORM方式。如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
  2.业务逻辑层(BLL):主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。
  3.数据访问层(DAL):主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。

具体区分
  1.表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
  2.业务逻辑层:主要负责对数据层的操作,也就是说把一些数据层的操作进行组合。
  3.数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作,而不必管其他操作。
总结
  三层结构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。 --------------------编程问答-------------------- 很简单,业务逻辑层应该是在多个asp.net程序、或者asp.net程序与winform、wpf、windows service等程序中复用的。而你的asp.net页面上只是简单地(单向或者双向)绑定业务逻辑层的功能,例如使用ObjectDataSource用在DataList、DetailsView等等控件中,而当业务逻辑改变时(比如你改变了一个用户操作授权、或者你改变了一个业务的计算行为)它们本身并不做丝毫的重新编码和编译。 --------------------编程问答-------------------- 如果你查10年以前的文献,传统意义上的真正的三层架构,其实最初是伴随c/s架构而产生的,它是一种网络架构,前端跟应用服务器是不同的进程。但是你在一个小型的asp.net应用程序这种没有什么网络架构的程序中也可以使用,此时就可以简化,都是进程内的东西了。 --------------------编程问答-------------------- 从实际出发,你可以尝试一下做个实验,看看你的业务逻辑层软件工程(这个DLL以及其引用的DLL),能不能被其它asp.net应用程序、windows service程序来直接引用呢?其它应用是“重新发明车轮子”,还是直接调用跨进程的同一套通用的业务逻辑处理程序呢? --------------------编程问答-------------------- 这个你把三层的含义弄清楚了就 OK了
你才接触说理论很空旷
--------------------编程问答-------------------- 有DAL数据层、BLL逻辑层、Model实模层 web(UI)

Model里面大部分都是实体。

DAL是只与数据库交互的都在DAL里

比如
 public class userdb
    {
        public bool adduser(Model.user model)
        {
            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString);
            con.Open();
            using (SqlCommand cmd = new SqlCommand("INSERT INTO qzzm_user(Name) VALUES(@Name)", con))
            {
                cmd.Parameters.AddWithValue("@Name", model.name);
                if (cmd.ExecuteNonQuery() > 0)
                    return true;
                else return false;
            }
        }
    }
//这里都是数据库操作了!


BLL是完成业务逻辑 处理业务逻辑 需要与数据库交互啊  这样就要调用DAL里的方法了。。

比如
 DAL.userdb db = new DAL.userdb();
        public bool adduser(Model.user model)
        {
            return db.adduser(model);//这个只是调用db.adduser(model)这个方法
        }
//这个里面没有业务逻辑 如果有的话要复杂的多。。


web(UI)

是接受业务层 处理后的逻辑。。

比如
  BLL.userbll ub = new BLL.userbll();//实例业务逻辑类
            Web.showmessage sm = new Web.showmessage();
            if (ub.adduser(us))//调用ub.adduser(us) 这个方法返回BOOL啊 就是处理后的信息



WEB调用业务逻辑(BLL) 

BLL调用 数据库访问(DAL)

然后处理数据返回给WEB

随便去网上搜索一下一大堆。。

三层 --------------------编程问答-------------------- 先把三层的理论弄懂 然后下载个三层的例子 慢慢的看看 在看理论 多理解一下 应该不知不觉就学会了 --------------------编程问答-------------------- 所谓三层的最直白的解释,就是 数据、运算、表现,三层分开,上层通过下层的接口获取数据或者进行操作。其实这是多层结构的一个具体化而已。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,