从表示层引用业务对象的最佳方法..?

时间:2010-03-30 19:26:58

标签: reference business-objects presentation-layer

我想开发一个企业应用程序,其中包括WindowsForms表示层,用于业务逻辑和数据访问的中间层组件以及MsSQL Server数据库。中间层组件应包含一些业务对象,并将使用.NET Remoting从表示层调用。 Whitch是从表示层引用这些业务对象的最佳方式(以及为什么)?

  • A)创建类库项目,实现业务对象。从表示层和中间层引用此项目。
  • B)创建定义业务对象的接口库项目。创建实现接口的类库项目。从中间层引用类库项目。来自表示层的参考接口库项目。
  • C)为中间层和表示层创建单独的类库项目。从表示层引用相应的项目。

2 个答案:

答案 0 :(得分:2)

这可能没有明确的答案,这取决于你在做什么。

    在很多情况下,
  • A 通常都足够好。对于小型“单个应用程序”项目,实际上没有任何理由不能直接从UI和BL层引用业务对象库。它当然是最简单的,有时简单性最好。

  • B 可能是“最好的”,你将抽象出你的实际实现,以便在不破坏合同的情况下进行未来的更改,如果你有接口,单元测试会更容易。这样做的另一个好处是,如果您认为有必要,将来发现从B切换到C将不会太困难。

  • 在大多数情况下,
  • C 可能过度杀伤。也就是说,在大型项目中,您可能会发现它是必要的。我曾经在大型客户端 - 服务器n层应用程序上工作,这些应用程序有多达三组独立的数据对象。 DA层中使用的一组映射和存储在数据库中。业务逻辑和网络层中的第二组用于处理和传递网络,第三组在客户端中用于绑定到UI。由于具有抽象优势,因此值得考虑使用C接口。

总而言之,如果不确切了解您的应用领域或范围, B 是一个很好的起点。

答案 1 :(得分:2)

我看到这三种方法都运作良好。

有时好的是从A开始,然后随着复杂性增加移动到B,然后是C.

在简单项目中,“业务对象”可以包含在与表示层和持久层相同的项目中 - 尽管它看起来可能是异端,但使用不同的命名空间定义对象可以在“层”之间提供足够的分离。

您可能需要重新考虑使用.NET Remoting - WCF是一种更好的技术,更易于使用。