Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf Prism桌面应用程序中的Prism模块和WCF服务引用_Wpf_Wcf_Module_Prism - Fatal编程技术网

Wpf Prism桌面应用程序中的Prism模块和WCF服务引用

Wpf Prism桌面应用程序中的Prism模块和WCF服务引用,wpf,wcf,module,prism,Wpf,Wcf,Module,Prism,我正在制作一个Prism桌面应用程序,并打算使用WCF服务在我的模块中的视图中填充列表框等 我已从头到尾阅读了指南,并制定了解决方案,以便:- 1)壳牌项目 2) 基础设施项目 3) 模块1 4) 模块2 在模块1中,我有一个viewmodel,它包含一个ObservableCollectionCustomers,通过在视图模型中直接调用WCF服务来填充 我觉得这是不对的,我想遵循Prism的最佳实践来引用WCF服务。在这方面,参考实现似乎并没有真正帮助我 我的第一次尝试是在基础设施项目中创建一

我正在制作一个Prism桌面应用程序,并打算使用WCF服务在我的模块中的视图中填充列表框等

我已从头到尾阅读了指南,并制定了解决方案,以便:-

1)壳牌项目
2) 基础设施项目
3) 模块1
4) 模块2

在模块1中,我有一个viewmodel,它包含一个ObservableCollectionCustomers,通过在视图模型中直接调用WCF服务来填充

我觉得这是不对的,我想遵循Prism的最佳实践来引用WCF服务。在这方面,参考实现似乎并没有真正帮助我

我的第一次尝试是在基础设施项目中创建一个接口IWCFCustomerAdapter,并在调用WCF服务客户端时将其转发。它在基础设施项目中实施。服务引用也添加到基础设施项目中。每个模块都有一个对基础设施项目的引用,并使用WCF服务中定义的数据类型

在这种情况下,其他/最佳选择是什么?接口是否仍然可以放在基础设施项目中,服务引用和实现是否可以放在模块中?不同选择的利弊是什么

非常感谢您的任何提示和建议

谢谢


Alex

基础架构模块仅用于基础架构,即用于使模块协同工作的类型。这些类型主要用于通信、事件聚合、异常处理等。我不会将服务适配器放在其中。它们不属于基础设施

在我看来,专用服务模块是一个更好的地方。如果您的服务器提供多种服务,则可以引入包含所有服务适配器以及DTO的服务器通信模块。这些DTO也可以用作模型

如果您的服务器提供了大量服务,您可以将服务模块拆分为更具体的服务模块,例如带有会话管理、用户管理、权限管理等功能的用户管理服务模块