我想开发一个企业应用程序,其中包括WindowsForms表示层,用于业务逻辑和数据访问的中间层组件以及MsSQL Server数据库。中间层组件应包含一些业务对象,并将使用.NET Remoting从表示层调用。 Whitch是从表示层引用这些业务对象的最佳方式(以及为什么)?
答案 0 :(得分:2)
这可能没有明确的答案,这取决于你在做什么。
A 通常都足够好。对于小型“单个应用程序”项目,实际上没有任何理由不能直接从UI和BL层引用业务对象库。它当然是最简单的,有时简单性最好。
B 可能是“最好的”,你将抽象出你的实际实现,以便在不破坏合同的情况下进行未来的更改,如果你有接口,单元测试会更容易。这样做的另一个好处是,如果您认为有必要,将来发现从B切换到C将不会太困难。
C 可能过度杀伤。也就是说,在大型项目中,您可能会发现它是必要的。我曾经在大型客户端 - 服务器n层应用程序上工作,这些应用程序有多达三组独立的数据对象。 DA层中使用的一组映射和存储在数据库中。业务逻辑和网络层中的第二组用于处理和传递网络,第三组在客户端中用于绑定到UI。由于具有抽象优势,因此值得考虑使用C接口。
总而言之,如果不确切了解您的应用领域或范围, B 是一个很好的起点。
答案 1 :(得分:2)
我看到这三种方法都运作良好。
有时好的是从A开始,然后随着复杂性增加移动到B,然后是C.
在简单项目中,“业务对象”可以包含在与表示层和持久层相同的项目中 - 尽管它看起来可能是异端,但使用不同的命名空间定义对象可以在“层”之间提供足够的分离。
您可能需要重新考虑使用.NET Remoting - WCF是一种更好的技术,更易于使用。