当前位置:编程学习 > asp >>

asp.net三层框架的简单理解

对于三层框架我是在培训的时候用到的,尤其是在测验的时候用的比较多!由于本人也是新人!对于三层了解的不是很透彻,下面我只把我自己所知道的所了解到的给大家说说,希望高手多多批评。

对于三层我简单的说下大概意思,三层顾名思义,三层就是有三个层次组成,分别是:表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL),三层的主要目的是“高内聚,低耦合”它的精髓在于功

能的层次清晰,代码可读性高,复用性高。

表示层的意思就是把界面显示给用户所看到的。业务逻辑层可以说是表示层和数据库访问层的一个桥梁,它是对数据业务逻辑的处理,有时也可以写一些验证。数据库访问层是直接对数据库的操作,

主要是对数据的增、删、改、查。

在三层中有个特殊的层Model,这个不算是一个层,是个实体类主要是用于封装字段,是数据的载体。

下面详细的介绍下,首先表示层用于用户接口的展示,以及用业务层的类和对象来“驱动”这些接口。该层包括aspx页面、服务器控制、用户控制以及某些于安全相关的类和对象。
业务逻辑层是用于访问数据层,把数据库访问层的数据进行提取、修改以及删除,然后把取得的数据放到DataReader或者DataSet中返回给表示层,主要是对数据层的一个方法的调用。
数据库访问层里面主要是写一些增删改的方法,具体就是对数据库的操作,就是把数据库中的数据用SQL语句读出来然后业务逻辑层调用。
我简单的说下把数据从数据库中读到表示层也就是简单的增删改例子,首先在Webconfig中写连接数据库的代码比如:<connectionStrings>
  <add name="ConnectionSQL" connectionString="server=192.1.1.253;database=NewSpring;uid=sa;pwd=sa"/>
    </connectionStrings>

然后建立一个实体类类库Model在其中把数据库中的数据写入比如:private string yourname;
              public string YourName
              {
                   get { return yourname; }
                   set { yourname = value; }
               }
之后就是三层了,先在DAL中建立DBHelper类在此类中先进行数据库的连接操作比如:
private static string connectionString = ConfigurationManager.ConnectionStrings["ConntectionSQL"].ToString();
        /// <summary>
        /// 连接数据库的方法
        /// </summary>
        /// <returns>返回数据库的连接</returns>
        public static SqlConnection Getconn()
        {

            if (conn == null)
            {
                conn = new SqlConnection();
                conn.ConnectionString = connectionString;
                conn.Open();
            }
            if (conn.State == System.Data.ConnectionState.Closed)
            {
                conn.Open();
            }
            return conn;
        }

然后是在DAL中写一些增删改查的方法比如:

   /// <summary>
        /// 查询方法  使用拼接字符串 返回DataTable对象(拼接字符串方法)
        /// </summary>
        /// <param name="sqlstring">sql语句</param>
        /// <returns>DataTable</returns>
        public static DataTable SelInfoRetrunDTbyString(string sqlstring)
        {
            try
            {
                conn = Getconn();
                cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = sqlstring;
                SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                dt = new DataTable();
                dt.Load(reader);
                reader.Close();
                return dt;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }

然后还是在DAL中写Service类这个主要是对数据库中的数据读取比如:
        /// <summary>
        /// 得到日志表里的所有内容查询页面加载时需要显示所有的文章信息
        /// </summary>
        /// <returns>返回一个范型集合</returns>
        public static IList<Articles> GetArticels()
        {
            string sql = "select * from Articles";
            DataTable dt = DBHelper.SelInfoRetrunDTbyString(sql);
            IList<Articles> list = new List<Articles>();
            foreach (DataRow dr in dt.Rows)
            {
          &

补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,