我的问题是关于三层架构的。
我的项目是简单的类似下面的东西,但是什么让我恼火的是我插入一个新的列在我的数据库后,我必须更新除了BLL的所有字段。在表示层,我创建了一个OBJ以及在DAL内部加上在DAL内部,有一个SQL查询。我必须手动更新所有这些字段。
如果我用"正常"的方式,我把所有这些放在展示层中,并在一个地方更新。
我是否正确地应用了这个三层架构?使用这个分层架构的优势是什么?
第二个问题是:
在DAL中,我通过_view收集数据。我想知道的是,我是否应该为每个视图再写一个BOboj ??我已经有一个BOboj类,但它不包含所有字段。
插入数据时,我必须使用我的BOboj_view,然而,当列出数据时,我使用视图,在这种情况下,我应该为每个视图或其他东西创建另一个BOboj_view类吗?最简单的方法是什么?
例如;我有20个视图和40个类,映射到sql server上的每个表,我的视图收集不同表的数据(这意味着不同的对象)。除了40个代表视图的类之外,我应该再创建20个吗?
OBJ
class BOboj {
private int _PId;
private string _Name;
.......
.......
}
木豆
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; }
}
.......
.......
}
Presantaon层
protected void Add(object sender, DirectEventArgs e)
{
BOboj_BLL bll_= new BOboj_BLL ();
BOboj obj_ = new BOboj
{
Name = Name.Text,
..............
...............
};
bll_.Add(obj_ );
}
谢谢。
DA对象应该以某种方式表示您的数据库模式,并且应该严格绑定到database活动。
业务层这是您应该使用特定于您的项目逻辑操作数据的地方。您的业务对象并不总是与DA对象相同(请想象DA对象具有两个属性名称和姓氏),但是由于某些原因,您的BO对象只有一个属性姓氏,因为名称从未在逻辑中使用。
当企业改变主意,他们也想要操纵name时,你必须只在这一层添加它)。表示层对象应该严格绑定到视图。不应该有任何逻辑。这些对象应该仅用于显示活动。
当你试图保持这些规则代码时,它不仅对你来说更清晰,更容易维护,对你的团队成员来说更是如此。扩展分隔良好的代码更容易。
还请记住,在某些情况下,例如在使用web服务的项目中,可以使用面向服务的对象实现第四层。
From MSDN Article -
n层/3层架构风格的主要优点是:
<
- 可维护性/strong>。由于每个层都独立于其他层,因此可以在不影响系统的情况下进行更新或更改
- 可伸缩性strong>。因为层是基于层的部署,所以扩展应用程序相当简单。
- 灵活性strong>。由于每个层都可以独立管理或扩展,因此增加了灵活性。
- 可用性strong>。应用程序可以利用模块化体系结构,使用易于扩展的组件来启用系统可用性。
你有紧密耦合的层。尽量使它们松耦合。
首先,以下visual studio解决方案模板可能会对您有所帮助-
分层架构解决方案指南2010