请参见下图,了解在Cient和主机之间实现WCF的VS2008解决方案。客户端是一个简单的Windows窗体应用程序,主机是一个控制台应用程序。我打算使用Windows服务作为主机,但现在我正在使用控制台应用程序进行简单和调试。初学者WCF设置/实现设计方法
两者之间的通信是DCCService(WCF部分)使用netNamedPipeBinding;客户端和主机都将驻留在同一台机器上。另外,我知道将WCF服务与主机分开是一种很好的做法,所以主机可以很容易地更改,这对我来说很好。
这里是我的难题:应该在哪里工作,做的是客户会打电话?
我希望我的服务所做的工作是在设定的时间间隔内不断地在后台轮询硬件控制器。虽然DCCService将方法公开给任何想要了解这些数据的客户端。
在DCCService项目或主机项目中是否应完成硬件控制器代码(setup(),connect(),work()等)?如果在主机项目中完成,DCCService类如何从Host项目的Controller类中获取数据?同样,如果Controller类在DCCService Project中,这将如何完成?哪个更好?
我想我错过了这里相当基本的东西。我很感谢帮助或建议。如果我需要更清楚,请让我知道。
瑞安R.
感谢您的真棒回答。一个重要的警告是控制器一次只能有一个活动连接。当第二个客户端调用'Start()'这将如何处理?或者在这种情况下,一次只能有一个“收集器”。因此,一次只有一个客户端可以从Controller中获取数据? **我有一个想法:**要有多个客户端,是否有可能在主机启动时运行'Collector',并让客户端使用WCF服务从这个'Collector'获取数据? – 2011-03-17 19:14:00
请参阅编辑我的回复。 – 2011-03-17 19:34:00