Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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
C# Winforms应用程序服务器通信_C#_Winforms_Domain Driven Design_Communication - Fatal编程技术网

C# Winforms应用程序服务器通信

C# Winforms应用程序服务器通信,c#,winforms,domain-driven-design,communication,C#,Winforms,Domain Driven Design,Communication,我正在构建一个需要与后端通信的Winforms客户端。该后端是使用Nhibernate(具有非常丰富的域模型)、消息队列和其他方法构建的 现在我确实知道如何通过internet进行通信(主要是mq),但我完全不知道如何让我的客户端Winforms应用程序与应用程序服务器对话以调用服务 最好的方法是什么?我已经阅读了所有关于Nhibernte、DDD、WCF、远程处理等的内容,但我不知道如何以正确的方式来做?如何设计服务(由于模型是如此扩展,它将是一个非常健谈的接口,而不是一个非常笨重的接口) 那

我正在构建一个需要与后端通信的Winforms客户端。该后端是使用Nhibernate(具有非常丰富的域模型)、消息队列和其他方法构建的

现在我确实知道如何通过internet进行通信(主要是mq),但我完全不知道如何让我的客户端Winforms应用程序与应用程序服务器对话以调用服务

最好的方法是什么?我已经阅读了所有关于Nhibernte、DDD、WCF、远程处理等的内容,但我不知道如何以正确的方式来做?如何设计服务(由于模型是如此扩展,它将是一个非常健谈的接口,而不是一个非常笨重的接口)


那么基本上:让winforms应用程序与后端对话(分层)的最佳方式是什么?关于如何实现这一点,有没有好的示例(包括所有层,因为大多数示例都停留在服务边界上)

我个人希望使用ASP.NET MVC实现精益REST+JSON,但最安全的方法是WCF。这里有很多例子:


在界面设计方面,分解对粒度功能的调用

我将使用WCF和几个接口来定义用于访问后端的服务

应用程序.业务层

定义所有WCF接口+域实体。由winform和后端使用

接口可以如下所示:

[ServiceContract]
public inteface IUserService
{
    [OperationContract]
    IEnumerable<User> Find(string searchWord);
}
[服务合同]
公共接口服务
{
[经营合同]
IEnumerable查找(字符串搜索词);
}
这就是定义WCF服务所需的全部内容

应用程序服务

你的后端。实现所有接口

您可以使用配置文件或代码配置WCF。WCF服务可以在ASP.Net应用程序或ServiceHost中运行

应用程序。WinClient

您可以使用winform应用程序


如果在asp.net中托管WCF服务,则可以将应用程序添加到Web服务,然后添加服务引用。否则您可以使用ChannelFactory创建服务代理。

我喜欢Ayende在本文中描述的方法,尽管我自己没有尝试过


< p>作为WCF提供的RPC(远程过程调用)的替代品,您也可以考虑 将您的后端实现为通过消息进行通信的服务。
您可以将此类服务设计为单向通信和/或请求响应。
为了通过消息实现应用程序之间的通信,可以考虑使用<强> Enter消息框架<强>。它是轻量级的,您的应用程序可以基于命名管道、Tcp或Http进行通信。
如果您感兴趣,可以获取更多技术信息。

或者更多的例子可以在eneter.blogspot.com上找到,框架可以从www.eneter.net下载。

所以你会得到类似的东西:客户端视图模型/控制器WCF服务模型/存储库?是的,我会这么说。另一种选择是客户端视图模型/控制器ASP.NET MVC服务模型/存储库