WCF 入门概念

来源:互联网 发布:php源码学习 编辑:程序博客网 时间:2024/05/16 17:16

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:
是否使用异步操作,由客户端说了算,服务器端不管
优点:提高性能,异步能增强健壮性,改善用户体验;
缺点:滥用异步会影响性能;
增加编程难度;

0 0
原创粉丝点击