我的问题是关于3层架构。
我的项目简要介绍如下,但令我恼火的是,在我的数据库中插入新列后,我必须更新除BLL之外的所有字段。在表示层中,我创建了一个OBJ以及DAL内部的DAL,还有一个SQL查询。我必须手动更新所有这些字段。
如果我以“正常”方式进行,我将所有这些放在表示层中并在一个地方进行更新。
我是否正确应用这种3层架构,使用这种分层架构有哪些优势?
我的第二个问题是:
在DAL中,我通过_view收集数据。我想知道,我应该为每个视图编写另一个BOboj吗?我已经有一个BOboj类,但它不包含所有字段。
插入数据时,我必须使用我的BOboj,但是,在列出数据时,我正在使用视图,在这种情况下,我应该为每个视图创建另一个BOboj_view类还是其他什么? 什么是easyies方式呢?
例如; 我有20个视图和40个类映射到sql server上的每个表,我的视图收集数据不同的表(这意味着不同的对象)。我应该再创建20个类,除了代表视图的40个?
OBJ
class BOboj {
private int _PId;
private string _Name;
.......
.......
}
DAL
BOboj_DAL {
public bool Add(BOboj obj)
{
using (SqlConnection con = Connect.connect)
{
string sql = "insert into Persons (Id,Name,
.......
.......
}
BBL
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; }
}
.......
.......
}
Presantaon Layer
protected void Add(object sender, DirectEventArgs e)
{
BOboj_BLL bll_= new BOboj_BLL ();
BOboj obj_ = new BOboj
{
Name = Name.Text,
..............
...............
};
bll_.Add(obj_ );
}
谢谢。
答案 0 :(得分:5)
DA对象应以某种方式表示您的数据库架构,并且应严格绑定到数据库活动。
业务层这是您应该使用特定于项目逻辑的数据进行操作的地方。您的业务对象并不总是与DA对象相同(请想象具有两个属性Forename和Surname的DA对象,但由于某些原因,您的BO对象只有一个属性Surname,因为Forename从未用于逻辑。当业务改变他们的想法和他们也希望用Forename操作,你只需要在这个图层中添加它。)
表示层对象应严格绑定到视图。不应该有任何逻辑。这些对象应仅用于显示活动。
当您尝试保留此规则代码时,它不仅对您而且对您的队友来说更加清晰和易于维护。扩展分离良好的代码更容易。
还请记住,在某些情况下,例如在使用Web服务的项目中,可以使用面向服务的对象实现第四层。
答案 1 :(得分:2)
来自MSDN文章 -
N层/ 3层架构风格的主要好处是:
- 的可维护性即可。由于每个层独立于其他层,因此可以在不影响其他层的情况下执行更新或更改 整个申请。
- 的可扩展性即可。因为层是基于层的部署,所以扩展应用程序是相当简单的。
- 的灵活性即可。由于每个层都可以独立管理或扩展,因此可以提高灵活性。
- 的状况即可。应用程序可以利用易于扩展的组件来实现启用系统的模块化架构,这会增加 可用性。
你有紧密的耦合层。尽量让它们松散耦合。
首先,遵循visual studio解决方案模板可能会帮助您 -