【问题标题】:C# Client-Server applicationC# 客户端-服务器应用程序
【发布时间】:2014-10-29 09:53:17
【问题描述】:

我需要编写一个客户端-服务器应用程序。首先,我要编写一个应用服务器。我的应用服务器也应该连接到数据库(MS Sql Server)并将数据从它提供给客户端应用程序。所以,据我所知,我应该使用 WCF。这是个好主意吗?也许我需要看看别的东西?

【问题讨论】:

    标签: c# .net wcf client-server


    【解决方案1】:

    让我们从客户端-服务器架构开始。
    假设您已经确定需要客户端和服务器,但您是否仔细决定了架构?我的意思是你要创建什么类型的服务器和什么类型的客户端?

    让我们看看这里的选项:

    服务器
    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 足够好,它也可以处理您的专有数据类型。

    【讨论】:

    • 客户端将是一个 WinForm 应用程序。其实我也想做一个网络客户端。所以我会尝试使用WCF。谢谢你的建议。
    【解决方案2】:

    WCF 是个好东西,但我会使用 ASP.Net 自托管 Web-API。它更现代。而且你有一个完整的休息界面,这更受欢迎。

    这是一个比较:WCF and ASP.NET Web API

    这是一个很好的起点:Self-Host ASP.NET Web API 1 (C#)

    【讨论】:

    • WCF 非常现代,它只是主要面向 SOAP(以及 .NET 远程处理的替代品)。 WebAPI 更新,不是更现代,更流行于 http 传输场景(尤其是在移动平台中)。
    • 你是对的,两者都是现代的。但我认为从不同设备访问 WebAPI 更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多