首页 文章

在使用WCF服务时,通过WSDL直接引用数据协定的优缺点是什么

提问于
浏览
1

我们有一个由三个不同程序集组成的WCF服务:

  • 实体层(POCO)

  • BL Layer(业务逻辑和数据访问)

  • 服务层(WCF)

在使用服务时,直接引用实体dll与从服务的WSDL创建数据协定的优缺点是什么?

3 回答

  • 1

    如果你只在所有客户端上使用.Net,那么你最好只引用dll . 如果您有非.Net客户端无法引用程序集,或者您的.Net客户端因各种原因(例如安全性)无法执行此操作,则WSDL可以正常工作 .

  • 0

    Refence via WSDL

    生成的DataContracts自动为两个接口提供实现 .

    • INotifyPropertyChanged - 通常用于绑定到数据(WPF / Silverlight) . 因此,如果要在View / ViewModel中使用对象,则可以开箱即用 .

    • IExtensibleDataObject - 用于维护version compatibility without loosing data . 如果您的客户端具有较旧版本的代理,并希望与较新版本的服务和此类方案进行通信,则此功能非常有用 .

    Directly reference Entity Layer assembly

    假设您将业务层拆分为两个程序集 - 服务器和客户端 . 您希望显然在客户端上使用客户端业务层 . 但是,服务和客户端业务层程序集都引用了实体层程序集 .

    在这种情况下,如果从WSDL生成DataContracts,它们将是不同的类型(尽管具有相同的类名),并且您将无法轻松地将它们与客户端业务层程序集一起使用 . 在这里添加对实体层程序集的引用可能更有意义,在生成代理时,您应该选择从引用的程序集中重用类型 .

  • 2

    例如,在客户端重用业务逻辑 . 如果添加包含其他属性聚合的属性,则可以让客户端在需要时使用该属性,而不是始终通过网络发送它 .

相关问题