WCF学习记录一

1、软件的设计思想经历了从函数到对象,从对象到组件,从组件到服务的过程。

2、客户端不允许直接访问服务,即不允许客户端直接访问本地机器内存中的服务,而是通过代理将调用转发给服务,代理公开的操作与服务相同,同时还增加了一些管理代理的方法。


3、过去,诸如DCom或者.net Remoting等分布式计算机技术,不管远程还是本地,都期望为用户提供相同的编程模型,本地调用时,客户端直接引用,远程调用时,使用代理。这样导致远程调用原比本地调用复杂。复杂度体现在生命周期管理,可靠性,状态管理,可伸缩性,以及安全性。WCF要求客户端保持一致的编程模式,既即是是本地调用也要使用代理完成,要求相同的配置和托管方式。

 

3.1 服务与地址,契约以及绑定有关,
地址定义了服务的位置,绑定定义了服务的通讯方式,契约定义了服务的内容。

 

4、WCF地址通常采用如下模式


   基地址(传输协议://机器名或者域名:端口号)/可选的URL
   http://localhost:8001/myservice
   net.tcp://localhost/myservice
   如果不设置端口,则为默认端口,http为80,tcp为808
   两个tcp可以共享一个端口 
   net.tcp://localhost:8002/service1
   net.tcp://localhost:8002/service2


5、契约分为4类,
   服务契约,相当于函数(由于是接口,所有和访问类型无关,都是public类型的)
   数据契约,相当于实体
   异常契约,错误处理
   消息契约,允许服务之间之间交互,不通过代理,很少使用


6、ServiceContract一般作用到接口上,提供类来实现,但是ServiceContranct也可以作用到类上,但是一般不这么做,这样不利于在不同的场合使用契约
7、一个类可以实现多个接口,来实现多个契约
8、可以使用ServiceContract类型的NameSpace属性类设置命名空间,来降低类型的冲突记录
   [ServiceContract(namespace="myNameSpace")] 默认的命名空间为http://tempuri.org
   默认情况下契约名称就是接口名,但是也可以起别名
   [serviceContract(name="IMyContract")]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值