首页 新闻 会员 周边 捐助

ASP.net 三层 严重问题,我总觉得 太繁琐,写的太垃圾,最后5分了 别嫌少

0
悬赏园豆:5 [已解决问题] 解决于 2011-05-26 13:12

想问个问题
我一直不太会 三层架构,用得不是得心应手,反而觉得三层很麻烦

我只是想写个 博客 练练手,可是发现写的过程中 有好多疑惑

下面是表结构,列出了必要字段
文章类别表:
create table Category(
@ID int,
@Name nvarchar(50)
)

文章表:
create table Article(
@ID int,
@Title nvarchar(200),
@content ntext,
@CID int -----------这个是文章类别ID
)

标签表:
create table Tags(
@ID int,
@Name nvarchar(50)
)


文章 与 标签 对应关系表(说明:文章可以有多个标签):

create table ArticleIDTagID(
@ID int,
@ArticleID int,
@TagID int
)


类是这样设计的:


//文章实体
class ArticleModel
{
int id;
int cid;
string title;
string content;
}

//文章 DAL
class ArticleDAL
{

public int ADD(ArticleModel Article) //返回添加的文章的标识 ID
public int DEL(int ID)
public list<ArticleModel>GET()
}
//标签 实体
class TagModel
{
int id;
string Name;
}
//标签 DAL
class TagDAL
{
public int ADD(TagModel) //返回添加的标签的标识 ID ,如果数据库中已经存在此 名称 的 标签,返回 存在标签的ID

}

//标签 文章对应关系 实体
class ArticleIDTagIDModel
{
int id;
int ArticleID;
int TagID;
}
//标签 文章对应关系 DAL
class ArticleIDTagIDDAL
{
public int ADD(ArticleIDTagIDModel) //添加文章 与 标签的 对应关系,如果存在 则不添加
}




//这个文章的ADD 是不能完成 所有任务的,因为还有标签的添加,我是这样处理的
//我觉得 这样写到这里 有点 不合理,这个只是添加 文章 ,就已经如此 复杂了,修改的时候就更复杂了,不知道 博主 有什么好的意见建议???
//觉得用三层 麻烦

//下面的操作 我是在 ADDArticle.aspx.cs 里面完成的

ADDArticle.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
string action=Request.QueryString["action"];

if(action=="save"){

//可是添加文章的操作 过程中 是比较复杂的
title =Request.Form["Title"];
cid
= Request.Form["Cid"];
int Cid=Convert.ToInt32(cid);
content
= Request.Form["Content"];
string Tags=Request.Form["Tags"]; //获得文章拥有的标签


int ArticleID= new ArticleDAL().ADD(new ArticleModel(title,Cid,content)); //获得添加的文章的ID
string[] Tags_Arr=Tags.split(','); //分割 标签 为数组

//添加标签,并添加 标签与 文章的 的对应关系
TagDAL tag=new TagDAL();
ArticleIDTagIDDAL aidtid
=new ArticleIDTagIDDAL();
for(i=0;i<Tags_Arr.Length;i++)
{
int tagID= tag.ADD(new TagModel(Tags_Arr[i])); //添加标签
aidtid.ADD(new ArticleIDTagIDModel(ArticleID,tagID));//添加 标签与 文章的 的对应关系
}
}
}


如下图所示

dbfox的主页 dbfox | 初学一级 | 园豆:2
提问于:2011-05-26 09:57
< >
分享
最佳答案
0

三层只是其中一种架构,没说一定要用三层

而且我觉得你没有真正理解到三层架构,你这样写根本不是什么三层!!业务逻辑都没有提取出来,全部放在aspx.cs里面了。

就这个例子来说,既然添加标签是在添加文章这个逻辑里,我觉得,应该把添加标签的逻辑封装在添加文章的逻辑里。添加文章逻辑的实现对表现层是透明的。

收获园豆:1
ailove | 菜鸟二级 |园豆:382 | 2011-05-26 10:18
其他回答(3)
0

动软生成的3层架构还是很好的···你还是好好看看吧··里面的方法都比较简单,比你现在用的要好的多哦

收获园豆:1
维人 | 园豆:10 (初学一级) | 2011-05-26 10:07
0

三层是根据你自身的需求而定!你不习惯用三层是因为你不知道三层的好处!

你可以看看三层的好处,在来谈三层!

收获园豆:1
剪、爱 | 园豆:211 (菜鸟二级) | 2011-05-26 10:46
0

我个人倒是比较喜欢三层,层次分明,条理清晰,易于排错,在团队中更容易发挥作用

收获园豆:1
风拂泪微,独依竹阁 | 园豆:381 (菜鸟二级) | 2011-05-26 11:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册