BLL,DAL,OBJ和3层架构

时间:2013-06-05 10:13:00

标签: c# architecture data-access-layer layer bll

我的问题是关于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_ );
}

谢谢。

2 个答案:

答案 0 :(得分:5)

  1. DA对象应以某种方式表示您的数据库架构,并且应严格绑定到数据库活动。

  2. 业务层这是您应该使用特定于项目逻辑的数据进行操作的地方。您的业​​务对象并不总是与DA对象相同(请想象具有两个属性Forename和Surname的DA对象,但由于某些原因,您的BO对象只有一个属性Surname,因为Forename从未用于逻辑。当业务改变他们的想法和他们也希望用Forename操作,你只需要在这个图层中添加它。)

  3. 表示层对象应严格绑定到视图。不应该有任何逻辑。这些对象应仅用于显示活动。

  4. 当您尝试保留此规则代码时,它不仅对您而且对您的队友来说更加清晰和易于维护。扩展分离良好的代码更容易。

    还请记住,在某些情况下,例如在使用Web服务的项目中,可以使用面向服务的对象实现第四层。

答案 1 :(得分:2)

来自MSDN文章 -

  

N层/ 3层架构风格的主要好处是:

     
      
  • 可维护性即可。由于每个层独立于其他层,因此可以在不影响其他层的情况下执行更新或更改   整个申请。
  •   
  • 可扩展性即可。因为层是基于层的部署,所以扩展应用程序是相当简单的。
  •   
  • 灵活性即可。由于每个层都可以独立管理或扩展,因此可以提高灵活性。
  •   
  • 状况即可。应用程序可以利用易于扩展的组件来实现启用系统的模块化架构,这会增加   可用性。
  •   

你有紧密的耦合层。尽量让它们松散耦合。

首先,遵循visual studio解决方案模板可能会帮助您 -

Layered Architecture Solution Guidance 2010