三层架构这里简单说一下一个我用过比较多的,算是简单的三层吧,目前运用于CMS系统、建站或者博客。

三层架构主要使用MVC分为UI-BLL-DAL即ui层-业务层-数据访问层。ui层理解是MVC中view层而我们熟悉的control层是调用我们的业务层,这里还有分几个处理的类库。MODEL ,DBUtlity,Common。第一个是定义了数据类字段,第二个主要存放访问操作数据库的类,第三个是一些公共的功能。

截个图建了这几层.net/c#三层架构

这几层可以做出CMS建站和博客没有问题,上面没有讲到三层中ui、业务、数据访问层主要写一些什么下面简单,晒一晒代码,

大家意盈一下应该就能懂。

因为我们使用的是MVC所以本身ui层就是View了.net/c#三层架构

后缀是cshtml就是view的表现层,

业务层,处理一下业务例如增删改查功能,这里不用写sql语句,主要是处理一些逻辑然后调用数据访问层帮我们处理数据

代码意盈#region
        /// <summary>
        /// 根据id查询list
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static List<article> BllArticleListId(int id) {
            return DalArticle.DalArticleListId(id);
        }
        #endregion
        public static string BllArticleId(int id)
        {
            return DalArticle.DalArticleId(id);
        }

数据访问层,本身是写一些sql语句访问数据库的,通过业务层调用数据访问层,例如上面通过数据库查找文章内容返回list列表

return DalArticle.DalArticleListId(id);这一段就是业务层调用数据层返回的结果集出来。数据访问层代码意盈

#region
        /// <summary>
        /// 分类分页
        /// </summary>
        /// <param name="pageNum"></param>
        /// <param name="talcount"></param>
        /// <param name="pCount"></param>
        /// <returns></returns>
        public static List<article> Page(int pageNum, out int talcount, out int pCount)
        {
            int start = (pageNum - 1) * 5 + 1;
            int end = pageNum * 5;
            //获取分类信息
            DataTable dt = SqlHelper.ExecuteDataTable(@"
select *from(
select ROW_NUMBER()over(order by id)as num,* from article
) as s
where  s.num between @Start and @End", new SqlParameter("@Start", start), new SqlParameter("@End", end));
            //第一页:between 1and 10,第二页:11 between  11 and 21第pageNum页就是,(pageNum-1)*10+1 and pageNum*10
            int totalCount = (int)SqlHelper.ExecuteScalar("select count(*)from article");
            //总页数
            int pageCount = (int)Math.Ceiling(totalCount / 5.0);
            talcount = totalCount;

            pCount = pageCount;
            article a = new article();
            List<article> alist = new List<article>();
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    a.id = int.Parse(dt.Rows[i]["id"].ToString());
                    a.Title = dt.Rows[i]["Title"].ToString();
                    a.Image = dt.Rows[i]["Image"].ToString();
                    a.CategoryId = dt.Rows[i]["CategoryId"].ToString();
                    a.ArContent = dt.Rows[i]["ArContent"].ToString();
                    a.UserId = dt.Rows[i]["UserId"].ToString();

                    a.Flow = dt.Rows[i]["Flow"].ToString();
                    a.IsRecommend = dt.Rows[i]["IsRecommend"].ToString();
                    a.IsHot = dt.Rows[i]["IsHot"].ToString();
                    a.CNumber = dt.Rows[i]["CNumber"].ToString();
                    a.IsRand = dt.Rows[i]["IsRand"].ToString();
                    a.Date = dt.Rows[i]["Date"].ToString();
                    a.ArticleId = dt.Rows[i]["ArticleId"].ToString();
                    alist.Add(new article()
                    {
                        id = a.id,
                        Title = a.Title,
                        Image = a.Image,
                        CategoryId = a.CategoryId,
                        ArContent = a.ArContent,
                        UserId = a.UserId,
                        Flow = a.Flow,
                        IsRecommend = a.IsRecommend,
                        CNumber = a.CNumber,
                        IsRand = a.IsRand,
                        Date = a.Date,
                        ArticleId = a.ArticleId
                    });
                }

            }
            return alist;
        }
        #endregion

这里简单的三层基本就出来了,意盈了三层,简单理解三层的原理写代码就不会无思路,这个三层基本可以应付CMS网站,博客,建站之类的,我是用了这个建了一个CMS博客.net/c#三层架构

后面会详细说一下怎么做,这个可以练练三层。

相关文章: