【发布时间】:2014-10-29 09:53:17
【问题描述】:
我需要编写一个客户端-服务器应用程序。首先,我要编写一个应用服务器。我的应用服务器也应该连接到数据库(MS Sql Server)并将数据从它提供给客户端应用程序。所以,据我所知,我应该使用 WCF。这是个好主意吗?也许我需要看看别的东西?
【问题讨论】:
标签: c# .net wcf client-server
我需要编写一个客户端-服务器应用程序。首先,我要编写一个应用服务器。我的应用服务器也应该连接到数据库(MS Sql Server)并将数据从它提供给客户端应用程序。所以,据我所知,我应该使用 WCF。这是个好主意吗?也许我需要看看别的东西?
【问题讨论】:
标签: c# .net wcf client-server
让我们从客户端-服务器架构开始。
假设您已经确定需要客户端和服务器,但您是否仔细决定了架构?我的意思是你要创建什么类型的服务器和什么类型的客户端?
让我们看看这里的选项:
服务器
1. 您将使用哪种类型的主机?
2. 您的服务器需要处理什么类型的负载以及需要处理多少负载?
客户
1. 您的服务的消费者类型
2. 客户端需要部署在本地机器上还是基于网络?
显然有比上面更多的担忧。初始设计应尽可能灵活。
那么,现在让我们看一些有关架构的解决方案。
服务器:
1. Application Hosted WCF server:每次都需要管理服务器生命周期。此外,这是不可扩展的。因此,如果您正在寻找可扩展的架构,您需要了解更多。
2. IIS 托管 WCF 服务器:根据您的需要,这可能是一个好主意以及一些架构问题。
3. Web 方法:显然这是在 WCF 之后出现的,但 WCF 仍然在它的位置上。所以主要区别在于What is the difference between an asp.net web method and a wcf service?
现在客户:
1。 ASP.NET:这将使每个平台都可以使用单个客户端应用程序,显然是因为 HTML
2。 WPF/WinForms:作为客户端使用会有点棘手,因为您需要在用户机器上部署客户端应用程序,这就是数据安全问题。以前,您可以直接使用 SSL 或其他方式将数据发送到浏览器。在此,如果您不使用带有 HTTPS 的 WCF,并且有一些专有数据通过线路传输,则可能会引起关注。
如果您正在寻找服务器的跨平台使用情况,您可以使用 HTML。
结论:
您可以将服务器用作 WCF 托管服务(在 IIS 或自包含应用程序中),将客户端用作 ASP.NET。
-----------------
如果要求不够大,可以使用 ASP.NET 作为服务器,然后浏览器作为客户端(无需创建客户端)。
----------------------------
您可以将服务器创建为 WCF 作为 Web 方法,并将客户端部署在用户计算机上。
----------------
WCF 足够好,它也可以处理您的专有数据类型。
【讨论】:
WCF 是个好东西,但我会使用 ASP.Net 自托管 Web-API。它更现代。而且你有一个完整的休息界面,这更受欢迎。
这是一个比较:WCF and ASP.NET Web API
这是一个很好的起点:Self-Host ASP.NET Web API 1 (C#)
【讨论】: