.net,业务逻辑与DAL之间的C#接口

Joe*_*oel 6 c# data-access-layer bll .net-3.5

我正在从头开始研究一个小应用程序并用它来尝试自学架构和设计概念.它是一个.NET 3.5,WPF应用程序,我使用Sql Compact Edition作为我的数据存储.

我正在研究业务逻辑层,刚刚开始编写DAL.我只是使用SqlCeComamnds发送简单查询和SqlCeResultSet来获得结果.我开始设计我的插入和更新方法,这就是问题 - 我不知道从BLL到DAL获取必要数据的最佳方法.我是否通过了通用收藏?我是否有一个包含数据库所有数据的大量参数列表?我是否只是传入实际的业务对象(从而将我的DAL绑定到BLL中的conrete?).

我想过使用接口 - 简单地将IBusinessObjectA传递给DAL,这提供了我正在寻找的简单性,而不会让我紧紧抓住当前的实现.你们有什么感想?

Cap*_*ble 5

我不认为你的问题有一个简单的答案,因为根据具体情况有很多选择.我发现阅读下面的两本书有助于我更好地理解你描述的问题.

  • MS .NET:为企业架构应用程序(Esposito,Saltarello)
  • MS应用程序体系结构指南,第2版.

第二本书可在线获取.你看这里.


Dam*_*ell 2

如果我处于您的位置,我可能会使用 LINQ to SQL 来定义我的数据访问层 - 它会为您节省维护所有 SqlCeFooBar 内容的大量工作,并为您提供一个(某种程度的)设计器来维护您的数据库。否则会缺少,使用 SQL CE。

因此,在这种情况下,我可能会将业务逻辑层与 L2S 层公开的实体紧密耦合。理由是实体业务对象,尽管没有任何服务。

不过,我可能不会让实体达到与 UI 一样高的层次结构。在这个级别上,使用专门用于视图的模型更有意义 - 特别是考虑到您正在使用 WPF。

当然,所有这些都取决于应用程序的大小和复杂性。鉴于您使用的是 SQL CE,我假设它是一个规模相当小的应用程序(单用户?)。