2011-10-31 48 views
1

我正在制作Prism桌面应用程序,并打算使用WCF服务在我的模块中的视图内填充列表框等。Prism Desktop应用程序中的棱镜模块和WCF服务引用

我已经阅读从覆盖引导覆盖,并建立了我的解决方案,使我有: -

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

在模块1我有一个包含一个ObservableCollection 客户由视图模型中直接调用WCF服务填充的视图模型。

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

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

在这种情况下,其他/最佳选择是什么?界面是否仍然在基础架构项目中,服务引用和实现是否在模块中?不同选择的优缺点是什么?

任何提示和建议最受赞赏。

由于

亚历

回答

2

的基础设施模块仅用于基础设施,即,用于具有模块一起工作的类型。这些主要是用于通信,事件聚合,异常处理等类型。我不会把服务适配器放在那里。他们不属于基础设施。

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

如果您的服务器提供了很多服务,您可以将服务模块拆分为更具体的服务,例如,具有会话管理,用户管理,权限管理等用户管理服务模块。