您的位置:首页 > 其它

WCF 入门概念

2014-12-10 22:23 197 查看

WCF入门
1.SOA概念:面向服务,是一种软件系统架构

原则:边界清晰

    服务自治

    兼容性基于策略

    共享模式和契约

2.WCF概念:是面向SOA架构的应用程序的框架(windows communication foundation)

        是微软发展的一组数据通信的应用程序开发接口

        服务是被动的,客户端是发起者

        跨平台:J2EE,NET

        性能:

    提供统一的,可用于建立安全,可靠的面向服务的应用的高效开发平台,具有统一性

    集合了:ASMX,WSE,ROMOTING(不能跨平台),Enterprise Service,MS MQ

3.接口与契约

    WCF接口:默认是public abstract

    例子:public interface MyInterface{void foo();}

  接口特性:接口不可以被实例

        实现类必须实现接口所有的方法

        实现类可以实现多个接口

        接口中的变量都是静态常量(静态属性)

接口是一种能力

接口是一种约定

关键字:

4:理解契约式编程:是编程的一种方法;

    Client 和 Server关系被打破,大家都是平等,核心就是接口

一. 实现接口:

    Using System.serviceModel;

    namespance OTS

    {

        [ServiceContract]

        pulic interface myInterface{

        [OperationContract]

            string getServiceTime();

        [OperationContract]

            string getServiceDate();

         }

    }

二. 引用接口并实现:

    namespace MyName

{

    public class myclass : OTS.MyInterface

{

    public string getServiceTime(){return ...};

    public string getServiceDate(){return ...};

}

}

三. 使用配置文件部署服务

1.WCF地址:服务三要素  ADDRESS BINDING CONTRACT

2.配置文件配置:

< system.ServiceModel>

<services>

    <service name="服务器名称" behaviorConfigaration="..">

        <host>

            <baseAddress>

                <add baseAddress="http://host:8002/test" />

            </baseAddress>

        </host>

        <endpoint address="" binding="baseHttpBinding" contract="接口名称" />

</services>

端点地址定义:

1)终结点的地址由EndpoinAddress类表示,该类包含一个表示服务地址的统一资源定位符(URI),其包含四个部分

例子:"http://www.sina.com.cn:3200/mathservice"

a)方案:HTTP

b)计算机:www.sina.com.cn

c)端口:3200

d)路径

五:WCF通信方式:

1.请求/响应模式 2.单工 3.双工

请求/响应模式:a)客户端向服务端发送消息,服务端响应.客户端在接收到服务端的响应之前,客户端不会继续执行任何操作;

b)它是默认的消息模式

c)返回值是void,也属于请求/响应模式

d)除非客户端有异步调用操作,否则客户端将停止处理,直到收到响应

缺点:降低客户端性能和响应能力

优点:响应消息可返回SOAP错误,可获取错误状况

2.单工模式:单项通信,客户端发送消息,服务端不会发送响应

设置:[perationContract(IsOneWay=true)] void insert();

用于自动模式

3.双工模式:提供异步体验,服务端和客户端均能够独立的向对方发送消息.若要设定双工协定,还必须设计回调协议,并将该回调协定的类型分配给标记服务协定的ServiceContractAttribute属性(attribute)的callbackContract 属性.

若要实现双工模式,必须创建第二个接口,该接口包含在客户端调用的方法声明

六 异步调用模式:

WCF异步的两种方式:

1)用svcuti生成异步功能的代理类

2)修改接口定义异步方法

服务端只提供同步接口,但是客户端调用的时候,生成异步操作;

操作:引用服务器接口的时候,选择异步调用,则会自动生成异步调用方法

代码1:

client.BeginHello("....",doCallback,client);

private void doCallback(IAsyncResult ar)

{

    string s  = (myservice.serviceClient)ar.Asyncstate1.EndHello();

}

}

代码2:

是否使用异步操作,由客户端说了算,服务器端不管

优点:提高性能,异步能增强健壮性,改善用户体验;

缺点:滥用异步会影响性能;

增加编程难度;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  wcf