三层架构这里简单说一下一个我用过比较多的,算是简单的三层吧,目前运用于CMS系统、建站或者博客。
三层架构主要使用MVC分为UI-BLL-DAL即ui层-业务层-数据访问层。ui层理解是MVC中view层而我们熟悉的control层是调用我们的业务层,这里还有分几个处理的类库。MODEL ,DBUtlity,Common。第一个是定义了数据类字段,第二个主要存放访问操作数据库的类,第三个是一些公共的功能。
截个图建了这几层
这几层可以做出CMS建站和博客没有问题,上面没有讲到三层中ui、业务、数据访问层主要写一些什么下面简单,晒一晒代码,
大家意盈一下应该就能懂。
因为我们使用的是MVC所以本身ui层就是View了
后缀是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博客
后面会详细说一下怎么做,这个可以练练三层。