代码改变世界

WCF 入门 基础知识(一)

2014-04-18 16:22  初阳  阅读(274)  评论(0)    收藏  举报

什么是WCF?

  不少的初学者理解不了什么是WCF,不清楚WCF与WebService有什么区别。

  首先我们来看看什么是wcf:

  wcf说简单一点启示就是基于windows平台下开发和部署的SDK。

  往细了说wcf是微软对一系列的行业标准规范的框架实现。这个规范包括服务交互、类型转换、封送以及各种协议管理。WCF 由于集合了几乎由.NET Framework 所提供的通信方法,因此学习曲线比较陡峭,开发人员必须要针对各个部份的内涵做深入的了解,才能够操控 WCF 来开发应用程序。

 WCF 的基本概念是以契约(Contract) 来定义双方沟通的协议,合约必须要以接口的方式来体现,而实际的服务代码必须要由这些合约接口派生并实现。合约分成了四种:数据契约(Data Contract),订定双方沟通时的数据格式。服务契约(Service Contract),订定服务的定义。操作契约(Operation Contract),订定服务提供的方法。消息契约(Message Contract),订定在通信期间改写消息内容的规范。

一个简单的wcf契约

 1 using System;
 2  
 3 using System.ServiceModel;
 4  
 5 namespace Microsoft.ServiceModel.Samples{
 6  
 7 [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")] // 服务契约
 8  
 9 public interface ICalculator
10  
11 {
12  
13 [OperationContract] // 操作契约
14  
15 double Add(double n1, double n2);
16  
17 [OperationContract] //操作契约
18  
19 double Subtract(double n1, double n2);
20  
21 [OperationContract] // 操作契约
22  
23 double Multiply(double n1, double n2);
24  
25 [OperationContract] //操作契约
26  
27 double Divide(double n1, double n2);
28  
29 }
30  
31 }

什么是服务?

首先大家要明白一个基本的概念:wcf 服务中的服务是一组开放的或者说是公开的功能集合。

还有一点很重要服务的创建对外界是不透明的,外部客户端并不知道服务的内在细节,那外界是怎么知道这个服务的具体功能和使用方法呢?

大家要记住wcf是通过公开元数据,来描述提供的功能或者服务。也就是说客户端程序通过wcf的元数据描述,就能在自身的环境下通过CLR来运行wcf提供的服务。同理wcf也可以通过此方法来获取其他服务的使用。这样就最简单的总结出了wcf的一个优点,服务的跨语言,跨平台型。也就是有,只要知道服务的连接,通过连接就能获取元数据描述,wcf就能整合这个外部服务的功能。举个例子,wcf是C#编写的,若我们向其提供一个java编写的服务,它也能整合使用。

wcf的服务执行边界

 wcf 不允许客户端与服务直接进行交接。必须通过代理(proxy)。

废话不说,看两个图大家就会明白,wcf允许在同一个应用程序域、同一个进程、甚至是进程间的服务调用、通信。

同一台机器上

 跨越机器间的通信

 刚开始都是一些基础知识,相当的无聊啊,没办法,一门新技术都是这么慢慢来的。不了解基础也设计本不好的作品。

 让我们进入WCF 入门 基础知识(二)吧!!