【问题标题】:Motivation to use WCF over simple TcpListener?使用 WCF 而不是简单的 TcpListener 的动机?
【发布时间】:2014-12-01 03:47:02
【问题描述】:

我需要实现一个可以在内部网络上工作的打印服务(Android 设备也是网络的一部分)。

它目前由接受连接请求(JSON 格式)的 TcpListener 实现,当接收到请求时,其流被读入字符串并使用 JsonConvert 类反序列化。

我的印象是,对于大多数性能不重要的操作来说,使用 WCF 比使用 TcpListener 更可取,但即使对于这样简单的场景也是如此吗?

即使使用 TcpListener,我所需要的只是获取请求流并对其进行反序列化,这似乎并不麻烦,我是否仍然更喜欢 WCF?

【问题讨论】:

    标签: c# json wcf tcpclient tcplistener


    【解决方案1】:

    WCF 允许您的代码专注于您的业务逻辑,而不是传输机制和序列化/反序列化。

    现在,您只需要您的服务接受 TCP 连接,将接收到的 JSON 数据反序列化为您的对象,并将这些对象传递给您的业务逻辑。为了论证的缘故,您接下来决定添加第二个服务。您添加逻辑以解析 HTTP 标头并选择要调用的适当业务方法。对于第二个服务,您还需要支持读取 (HTTP GET) 和写入 (HTTP POST)。过了一会儿,您意识到您正在编写一个自定义 HTTP 服务器。

    假设一年后您与另一家公司达成交易,该公司希望通过 SOAP、消息队列或其他机制调用该服务。你想重构你的代码吗?从理论上讲,WCF 允许您更改配置文件以公开新端点。

    WCF 是一头复杂的野兽,学习起来并不简单。更新的版本添加了一些快捷方式,让我们的生活更轻松。对于一个简单的自托管 JSON 服务,设置起来并不难。以下是一些可以帮助您入门的内容:

    How to: Host a WCF Service in a Managed Windows Service

    Create a REST service with WCF and consume it using jQuery

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2020-11-23
      • 1970-01-01
      相关资源
      最近更新 更多