C# BLL、DAL、OBJ和三层体系结构
我的问题是关于三层架构 我的项目大致如下所示,但让我恼火的是,在我在数据库中插入一个新列后,我必须更新除BLL之外的所有字段。在表示层中,我创建了一个OBJ,在DAL中,还有一个SQL查询。我必须手动更新所有这些字段 如果我以“正常”的方式进行操作,我会将所有这些内容放在表示层中,并在一个地方进行更新 我是否正确地应用了这个3层架构,使用这个分层架构的优势是什么 我的第二个问题是: 在DAL内部,我通过_视图收集数据。我想知道的是,我应该为每个视图编写另一个BOboj吗?我已经有了一个BOboj类,但它不包含所有字段 当插入数据时,我必须使用我的BOboj,然而,当列出数据时,我使用的是视图,在这种情况下,我应该为每个视图或其他什么创建另一个BOboj_视图类吗?? 最简单的方法是什么 比如,; 我有20个视图和40个类映射到sql server上的每个表,我的视图收集不同表的数据(这意味着不同的对象)。除了40个表示视图的类之外,我是否应该再创建20个类 OBJ 达尔 BBL 前安塔顿层C# BLL、DAL、OBJ和三层体系结构,c#,architecture,data-access-layer,layer,bll,C#,Architecture,Data Access Layer,Layer,Bll,我的问题是关于三层架构 我的项目大致如下所示,但让我恼火的是,在我在数据库中插入一个新列后,我必须更新除BLL之外的所有字段。在表示层中,我创建了一个OBJ,在DAL中,还有一个SQL查询。我必须手动更新所有这些字段 如果我以“正常”的方式进行操作,我会将所有这些内容放在表示层中,并在一个地方进行更新 我是否正确地应用了这个3层架构,使用这个分层架构的优势是什么 我的第二个问题是: 在DAL内部,我通过_视图收集数据。我想知道的是,我应该为每个视图编写另一个BOboj吗?我已经有了一个BOboj
protected void Add(object sender, DirectEventArgs e)
{
BOboj_BLL bll_= new BOboj_BLL ();
BOboj obj_ = new BOboj
{
Name = Name.Text,
..............
...............
};
bll_.Add(obj_ );
}
谢谢。来自文章-
N层/3层体系结构样式的主要优点是:
- 可维护性。因为每一层都独立于其他层,所以可以在不影响系统的情况下执行更新或更改 应用程序作为一个整体
- 可扩展性。因为层是基于层的部署的,所以扩展应用程序相当简单
- 灵活性。因为每一层都可以独立管理或扩展,所以灵活性增加了
- 可用性。应用程序可以利用模块化体系结构,使系统能够使用易于扩展的组件,从而提高 可用性
还请记住,在某些情况下,例如在使用web服务的项目中,可以使用面向服务的对象在第四层实现。仔细阅读这个有用的问题-是的,这是正确的实现。这种方法的优点是,您可以在每一层捕获异常,优雅地使用u进行edditing。您的意思是什么“紧密耦合层”您不能在不修改BLL的情况下更改DAL。您的DAL也紧密耦合到底层数据库类型MS SQL。尝试使用接口(理论上称之为契约)与DAL互动。@sakirayanoglu-给我一点时间,我会在回答中更详细地发布它。你能给我一个如何实现的详细示例或一个链接吗?谢谢你谢谢你的回答。你对这个问题也有什么看法。@Sakir-我对你提供的链接中的第二个问题感到困惑。我不明白你到底需要做什么例如,通过view,我收集连接不同表的个人信息,但是我也有一个table person和一个person类,这与view收集的不同。我是否应该为此创建一个新类?我不理解,例如,您有数据库视图PersonalInformation,它为您返回来自例如table person的数据在这个例子中,有三个类Person,DetailedInformation和PersonInformation,它们都有Person和DetailedInformation类的实例,比如公共类PersonInformation{public-Person-Person{get;set;}public-DetailedInformation-DetailedInfo{get;set;}
BOboj_DAL {
public bool Add(BOboj obj)
{
using (SqlConnection con = Connect.connect)
{
string sql = "insert into Persons (Id,Name,
.......
.......
}
BOboj_BLL {
.......
.......
public bool Add(BOboj_DAL obj)
{
BOboj_DAL bb_dal = new BOboj_DAL();
try
{
return bb_dal.Ekle(obj);
}
catch (Exception)
{
throw;
}
finally { bb_dal = null; }
}
.......
.......
}
protected void Add(object sender, DirectEventArgs e)
{
BOboj_BLL bll_= new BOboj_BLL ();
BOboj obj_ = new BOboj
{
Name = Name.Text,
..............
...............
};
bll_.Add(obj_ );
}