[英]Winforms application server communication
我正在构建需要与后端通信的Winforms客户端。 该后端是使用Nhibernate(具有非常丰富的域模型),消息队列等构建的。
现在,我确实知道如何通过Internet(主要是mq的东西)进行通信,但是我完全不知如何让我的Client Winforms App与Application Server通话以调用服务。
做这个的最好方式是什么 ? 我已经阅读了有关Nhibernte,DDD,WCF,远程处理等的全部内容,但是我只是看不到如何正确地做到这一点? 如何设计服务(由于该模型已扩展,因此它将是一个非常健谈的界面与一个非常不完整的界面)
因此,基本上:使winforms应用与后端对话(分层)的最佳方法是什么,以及关于如何实现这一点的良好示例(包括所有层,因为大多数示例都停留在Service Boundry:s上)
我将使用WCF和几个接口来定义用于访问后端的服务。
Application.BusinessLayer
定义所有WCF接口+域实体。 由winform和后端使用。
接口看起来像这样:
[ServiceContract]
public inteface IUserService
{
[OperationContract]
IEnumerable<User> Find(string searchWord);
}
定义WCF服务仅需这些。
Application.Service
您的后端。 实现所有接口。
您可以使用配置文件或通过代码配置WCF。 WCF服务可以在ASP.Net应用程序或ServiceHost中运行。
Application.WinClient
您的Winform应用程序。
如果将WCF服务托管在asp.net中,则可以将应用程序引用服务添加到Web服务中。 否则,您将使用ChannelFactory创建服务代理。
我喜欢Ayende在此MSDN文章中描述的方法,尽管我自己没有尝试过。
值得一试。
我个人想使用ASP.NET MVC寻求精益的REST + JSON,但最安全的选择是WCF。 这里有很多例子:
在设计接口方面,请分解对粒度功能的调用。
作为WCF提供的RPC(远程过程调用)的替代方法,您还可以考虑将后端实现为通过消息进行通信的服务。
您可以设计此类服务以单向和/或请求响应进行通信。
要通过消息实现应用程序之间的通信,可以考虑使用Eneter Messaging Framework 。 它是轻量级的,您的应用程序可以基于NamedPipes,Tcp或Http进行通信。
如果您有兴趣,可以在此处获取更多技术信息。
您可以在eneter.blogspot.com上找到更多示例,也可以从www.eneter.net下载该框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.