2010-11-17 84 views
-1

我很抱歉我的问题可能会看到一个旧的重复问题,但我正在开始Linq到SQL我想讨论应该使用多少层(体系结构)?Linq到SQL层/体系结构?

我正在研究网络上的大多数网站和小到中等规模的网络应用程序。我明白将应用程序分为多个层面有助于维护和增强,但坦率地说,我想要一些平衡的方式,这也给我快速的开发和代码重用能力。我无法在这些不需要的图层管理上花费太多时间。

在我使用4层(业务对象,BLL,DAL和用户界面)之前,由于不同的人描述了不同的图层,我对此产生了疑惑。请指导我使用什么和多少层?谢谢

回答

-2

我决定为小型项目使用一层(DAL + BLL),对于大型应用程序,我们将使用DAL & BLL的不同层。我将在DAL中使用Linq,并且funtiosn将返回IQueryable。

1

从架构的角度来看最重要的方面是关注的分离。关注点分离导致干净的代码,易于维护,可扩展的,等这就是说,我建议根据以下标准来决策的基础:

  • 尝试构建您的系统以松散耦合的方式。因为消息传递是可靠的,可伸缩的,异步的,松散耦合的等,所以使用消息传递而不是RPC。您可以使用MSMQ或NServiceBus(用于基于服务总线的体系结构)。
  • 根据关注点分离创建图层概念。对于例如您可以选择仅具有UI层,业务逻辑层(业务规则+工作流)和数据访问层或更细粒度(如UI层,服务层(外观),业务逻辑层,数据访问层)的典型3层架构,等等。使用IoC /依赖注入将使生活变得简单,因为没有任何层会有直接的依赖性。此外,它促进了单元测试,因为您注入模拟而不是单元测试的实际实现。有很多可用的IoC框架(NInject,Autofac,Castle Windsor,结构图等等)
  • 尝试使用EF代替Linq到SQL,因为后者仅适用于SQL,而EF可与任何数据库。此外,在我看来,EF是微软创新的地方,我认为Linq to SQL可能会在一天内退休。
1

很好的问题haansi。这是我在建设中小型网站时经常遇到的问题。在创建一个能够提供最大灵活性并支持快速部署的体系结构的过程中寻求这种平衡是我认为我们都需要在所有工作中努力的结果。

就这么说,我发现使用Repository Pattern对LINQ to SQL项目非常有帮助。我将它与Model View Presenter模式(用于WebForms或其他项目)结合在一起,它为重复使用最小层提供了一个很好的基础。

我的Webform调用一个Presenter类,它依次负责填充视图。要填充该视图,演示者可以调用N个存储库。 Repository是封装你的DataContext类和你的LINQ to SQL调用的地方。这些调用返回模型类。

无论应用程序的规模如何,一个巨大的好处就是可以很好地重用您的存储库,您可以最大限度地使用LINQ,并且使用了其他软件开发人员可以轻松读取的一些模式,支持。

的另一大好处是,你现在已经创建了一个简单的架构,可以使用单元测试的演示,测试回仓库,但不会一吨的努力中获益。

祝你好运!