WCF总结

1、WCF(原代号为Indigo)是一个用于创建和运行分布式系统的技术集合,使用它能创建安全的、可靠的、跨平台的的分布式解决方案。它的面向服务的编程模型,整合了.Net平台下以往全部的分布式开发技术,是微软在SOA领域推出的一款主打产品。

2、WCF是微软为SOA(Service-Oriented  Architecture)而设计的一套完整的技术框架

3、通过WCF技术可以创建服务

跨进程

跨机器

跨网络

4、WCF 提供了创建安全的、可靠的、事务服务、多种协议的统一框架

5、WCF 整合和扩展了现有分布式系统的开发技术,如Microsoft .Net Remoting、Web Services、Web Services Enhancements (WSE)等等。

6、优点:

开放性好,跨平台。

使用80端口穿透防火墙

数据格式简单

7、缺点:

安全性不高

不能方便的跨域访问

不支持双工模式

对于复杂的数据类型无法进行传递,需要使用中

间件技术进行扩展或,自行开发序列号支持

Wcf在该方面做成了很大的改进

8、WCF通信模型

a) 服务端可以提供的服务

i. 指定一个规则

ii. Contract

iii. 协定,契约,合同

b) 协定分类

i. Service Contract       ----服务契约

1. 定义了服务的类型,用一个接口或类订阅WCF的Service Contract。

ii. Operation Contract

1. 定义了WCF 服务中提供给外部系统访问的方法

iii. Data Contract     ----数据契约

1. 自定义的复杂数据类型

iv. Message Contract     ----消息契约

1. 用于控制SOAP消息的规则

v. Fault Contract        -----错误契约

1. 用于捕获服务端错误消息

9、宿主(Service Hosting):我们把承载WCF服务的进程称为宿主(Service Hosting)

常见的寄宿方式:

1、使用应用程序(winform 、控制器)开放。

2、使用IIS(Web项目、Web网站、ASP.NET MVC)开发。

3、WCF服务应用程序

10、WCF中的基本概念-ABC

a) A:Address    ------地址决定了服务的位置,解决了服务寻址的问题;

i.  where -服务在哪里

b) B:Binding    -------绑定实现了通信的细节,包括网络传输模式、消息编码,以及其他为实现某种功能(比如安全、可靠传输、事务等)对消息进行的相应处理

i.  how  -通过什么协议取得服务

c) C:Contract     -------契约是对服务操作的抽象,也是对消息交换模式以及消息结构的定义

i. what -定义的服务是什么

10、Binding的作用

a) 指明通过什么方式(协议)连接WCF 服务。

b) 常用协议

11、Address地址的作用

A)  通过一个URI Endpoint告诉潜在的WCF service的调用者如何找到这个WCF Service。

B)   表现形式

12、消息模式

a) 客户端与服务器之间是进行消息通讯的方式

b) 三种主要消息模式

i. 单向 One Way

ii. 请求/答复Request/Reply

iii. 双工Duplex

13、单向模式

a) One Way Call

b) 指的是发送端负责把消息发送给对方并且收到本地发出信息的确认消息之后,就完成交互的方式。

14、特点

a) 未知:消息是否最终到达服务的终节点

b) 已知:消息发送成功

c) 一般只能为返回void 的操作指定单向消息交换

d) Operation Contract Attribute的IsOneWay 属性需要设置为True,默认为false.

15、请求/答复模式

a) Request/Reply

b) 客户端发送一个消息并且接收一个返回消息来完成一次交互

16、特点

a) 请求方(客户端应用程序)发出请求以后,一直等待对方(WCF方)答复。

b) 这是默认的模式

[OperationContract]

void Method();

17、双工模式

a) duplex

b) 客户端和服务端都可以任意地向对方发送消息,而对方也可以以任意的次序来接收消息。

c) 服务端 :

i. 1 需要设计用于回调的服务协定,

ii. 2 将该回调协定的类型分配给ServiceContractAttribute Attribute的CallbackContract property。

d) 客户端:

i. 1 要对该接口实现

18、经典错误

解决方案:把wcf配置文件中的“<serviceDebug includeExceptionDetailInFaults="false" />”修改成“<serviceDebug includeExceptionDetailInFaults="true" />”

Wcf步骤

Demo1、在wcf接口中实现对数据的增删改查

一、引入类库“DBHeleper”

二、连接字符串

三、在接口定义增删改查四种方法

四、实现接口的连接字串

五、实现接口中的增删改查

六、启动项目

WCF小结的更多相关文章

  1. PHP调用WCF小结

    新工作第三周,做了3年多的.Net,突然急转弯做PHP,漂移过弯,速度180迈 由于数据的整合,在项目中不得不使用PHP调用WCF 一头的雾水,网上相关的资料少又少,在phpChina发个帖子,还没有 ...

  2. WCF Data Service 使用小结(二) —— 使用WCF Data Service 创建OData服务

    在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主要说明在.NET的环境下,如何使用 WCF Data Se ...

  3. WCF使用小结:(1)WCF接收HTTP POST数据的处理方法

    在WCF 4.0中,为我们创建Restful API有了更好的支持.通过定义UriTemplate,WebInvoke就可以快速开发API接口. 这里我记录一下HTTP POST数据时要如何接收POS ...

  4. WCF Data Service 使用小结 (一)—— 了解OData协议

    最近做了一个小项目,其中用到了 WCF Data Service,之前是叫 ADO.NET Data Service 的.关于WCF Data Service,博客园里的介绍并不多,但它确实是个很好的 ...

  5. WCF Data Service 使用小结 —— 了解OData(一)

    最近做了一个小项目,其中用到了 WCF Data Service,之前是叫 ADO.NET Data Service 的.关于WCF Data Service,博客园里的介绍并不多,但它确实是个很好的 ...

  6. WCF再学习小结

    http://www.cnblogs.com/jillzhang/archive/2010/04/04/1704388.html http://leelei.blog.51cto.com/856755 ...

  7. IIS8中添加WCF支持几种方法小结[图文]

    方法一 最近在做Silverlight,Windows Phone应用移植到Windows 8平台,在IIS8中测试一些传统WCF服务应用,发现IIS8不支持WCF服务svc请求,后来发现IIS8缺少 ...

  8. WCF服务端开发和客户端引用小结

    1.服务端开发 1.1 WCF服务创建方式 创建一个WCF服务,总是会创建一个服务接口和一个服务接口实现.通常根据服务宿主的不同,有两种创建方式. (1)创建WCF应用程序 通过创建WCF服务应用程序 ...

  9. web service && WCF 学习小结

    Web Service和WCF技术都提供了应用程序与应用程序之间的通信.它们都是基于soap消息在客户端和服务端之间进行通信,由于soap消息是一种xml格式,因此传输的数据格式为XML.每次客户端向 ...

随机推荐

  1. 高吞吐量的分布式发布订阅消息系统Kafka-- 管理工具 Kafka Manager

    一.概述 Kafka在雅虎内部被很多团队使用,媒体团队用它做实时分析流水线,可以处理高达20Gbps(压缩数据)的峰值带宽. 为了简化开发者和服务工程师维护Kafka集群的工作,构建了一个叫做Kafk ...

  2. Windows下修改Oracle默认的端口1521

    数据库最好不对公网开放,如果要开放,最好把默认端口改掉,防止一些针对 1521端口的入侵 1.找到 product\11.2.0\dbhome_1\NETWORK\ADMIN 下面的  listene ...

  3. [Javascript] Decorators in JavaScript

    First, what is 'High Order function', basic just a function, inside the function return another fuct ...

  4. Openvswitch原理与代码分析(8): 修改Openvswitch代码添加自定义action

    有时候我们需要自定义一些自己的action,根据包头里面的信息,做一些自己的操作.   例如添加一个action名为handle_example   第一.修改ofp-actions.c文件   首先 ...

  5. [转]BloomFilter——大规模数据处理利器

    Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合. 一. 实例 为了说明Bl ...

  6. 理解WebSocket

    WebSocket的动机是什么? 目前的Web通信使用的是HTTP协议,HTTP协议是基于TCP协议的应用层协议,HTTP协议的工作模式是request/response模式.在一次通信中,必须首先由 ...

  7. ODAC(V9.5.15) 学习笔记(十八) 数据集缓冲模式

    数据集的缓冲模式(Cached mode)是将数据库服务器的数据缓冲在客户端内存中进行处理,不再依赖服务器.只有当数据需要提交数据库服务器进行保存时,才将变更数据一次性提交数据库服务器. 数据集缓冲模 ...

  8. 关于float /double、string类型的hash函数/hash表实现(转)

    #include <ext/hash_map> #include <math.h> #include <stdio.h> using namespace std; ...

  9. 删除数据库数据,自增id清理

    方法一:Delete Form 表名 方法二:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 D ...

  10. QT在windows下实现截屏操作并保存为png图片

    QPixmap originalPixmap = QPixmap::grabWindow(QApplication::desktop()->winId()); QString format = ...