WCF Tips之二
WCF应用程序通常属于分布式的SOA方案。为了体现服务契约的特点,有必要在设计WCF应用程序时,注意程序集的划分。
原则上,我们需要将服务契约、数据契约、服务实现分为单独的三个程序集,这样可以在一定程度上解除服务契约与服务实现的耦合,也便于对数据契约对象的管理。更重要的是,WCF客户端可以有效地重用服务契约程序集与数据契约程序集。
假定该应用程序名为WCFSolution,则各自的程序集以及命名空间为:
服务契约:WCFSolutionServiceContract
数据契约:WCFSolutionDataContract
服务实现:WCFSolutionServiceImplementation
三者的依赖关系为:服务契约依赖于数据契约,服务实现依赖于服务契约与数据契约。在部署客户端时,不需要提供服务实现类的程序集。
以上设计看似简单,然而一旦我们从一开始就养成了良好的设计习惯,会在以后进行WCF应用程序的开发时,起到事半功倍的效果。
实际上,这同样体现了分层式架构的思想。