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

Reference 从表示层引用业务对象的最佳方法。。?,reference,business-objects,presentation-layer,Reference,Business Objects,Presentation Layer,我想开发一个企业应用程序,包括WindowsForms表示层、用于业务逻辑和数据访问的中间层组件以及MsSQL服务器数据库。中间层组件应该包含一些业务对象,并将使用.NET远程处理从表示层调用。Whitch是从表示层引用这些业务对象的最佳方式(以及为什么) A) 创建类库项目,实现业务对象。从表示层和中间层引用此项目 B) 创建定义业务对象的接口库项目。创建实现接口的类库项目。从中间层引用类库项目。从表示层引用接口库项目 C) 为中间层和表示层创建单独的类库项目。从表示层引用相应的项目 对此可

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

  • A) 创建类库项目,实现业务对象。从表示层和中间层引用此项目
  • B) 创建定义业务对象的接口库项目。创建实现接口的类库项目。从中间层引用类库项目。从表示层引用接口库项目
  • C) 为中间层和表示层创建单独的类库项目。从表示层引用相应的项目
      对此可能没有明确的答案,这取决于你在做什么

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

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

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


      总而言之,在不确切了解您的应用程序域或范围的情况下,B是一个很好的起点。

      我看到这三种方法都很有效

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

      在简单的项目中,“业务对象”可以与表示层和持久层包含在同一个项目中——尽管这似乎是异端邪说,但使用不同的名称空间定义对象可以在“层”之间提供足够的分离


      您可能需要重新考虑使用.NET远程处理—WCF是一种更好的技术,而且更易于使用

      .NETRemoting评论+1(其余的也不错)。远程处理自3以来一直被认为是过时的。请参阅MSDN-或Vytas:您能否给出场景B的一些实现示例,或者是我可以找到此类示例的任何链接???这将是一个很大的帮助。提前感谢:)