代码改变世界

WCF 第一章 基础 实现一个WCF服务

2011-06-22 20:57  DanielWise  阅读(2693)  评论(0编辑  收藏  举报

所以客户端代码可以简单的调用一个终结点。代理接口不必与服务签名保持一致,但是代理需要确保传输给服务的消息就是服务契约所描述的。app.config 文件包含了特殊绑定。


实现一个WCF服务

  这一部分描述怎么样使用WCF实现一个简单的服务。最简单的方式,我们将使用HTTP 协议,我们将使用文本形式的XML文档。对于安全,我们假设它已经在应用程序中进行了相关处理。我们使用了同步请求-回复方式而且我们的服务只支持一个操作,就是接受输入字符串返回double 型输出。在接下来的章节中,我们会改变所有这些假定,但是目前为止,我们需要排除不必要的复杂性。

仅仅是ABCs

  定义一个服务终结点,要记住ABCs:地址,绑定和契约。以下内容将会在在1.1 到1.3列表中描述。

    "A" 是地址,哪里。这个服务在http://localhost:8000/EssentialWCF 监听请求.
    "B" 是绑定,怎么样。这个例子使用basicHttpBinding,指导WCF使用WS-I 1.1 协议,最通用的web service 通信协议。
    "C" 是契约,什么。这是一个服务操作和服务需要什么样的输入输出消息的语法描述。在这个例子中,契约定义在StockService 类中。

  在这一部分我们将会实现这个服务两次。第一次我们将完全使用代码演示解决方案,ABCs直接使用代码来定义。这将减少额外的依赖。然后我们将使用配置文件再次实现这个服务。这将减少代码量也将由于代码和配置文件之间的依赖性而导致服务复杂性增加。在实际应用中,你可能会采取后一种方法,因为增加的复杂性会带来灵活性丰富的回报。灵活性源自于配置中暴露的一些特性,系统管理员可以修改它们,而在代码中暴露其他特性,却只能由程序员修改。

完全使用代码编写一个WCF服务
  在一个高的等级里,写一个WCF服务就像写其他服务一样,不考虑内部实现。你首先要写一些代码来实现一个功能;然后你在一个操作系统进程中运行这些代码,这个进程监听请求回复。WCF将这些步骤正式化而且使程序员能够更加容易的处理每一个节点。比如,使用系统提供的绑定和编码器,WCF 服务将可以与标准的SOAP消息通信。默认情况下,多线程,并发和实时也可以很好的实现而且有可预见的行为。