题外话:
最近在看WebCast上一个【构建WCF面向服务的应用程序系统课程】,为了不会看过就忘掉呢,尝试记录一下学习中的笔记吧,以前没这么干过,学习的效果不太好,这次尝试一下这个方式。
记录按课程讲解的顺序来吧。
第一节:WCF概要
- WCF与SOA
- 典型部署场景
- 客户端与服务
- 生成元数据与代理
- WCF特性
WCF与SOA
什么是WCF?
WCF是Microsoft平台上的SOA架构,用于构建分布式和可交互操作的应用程序,统一ASMX,NET Remoting,与EnterpriseServices的开发模型,为各种应用提供单一的编程模型,基于配置驱动的协议选择,消息格式,进程分配等。
WCF使应用程序的开发更加灵活,也降低了分布式应用程序开发的门槛。
面向服务,构建面向服务的系统设计;简化实现SOA的方法
松耦合,并没有限制在特定的协议,编码格式,或者主机环境上;所有的选项都可配置。
WCF提供了很好的交互性,支持Web Services的核心标准:已经批准和还未被批准的内容。在可扩展性方面能够快速适用新的协议和更新。
WCF的整合性,整合了Microsoft早期技术,像COM,EnterpriseServices,MSMQ等。
普通的架构,直接将业务逻辑层暴露给了客户层,业务逻辑层与客户层之间所用的技术有直接限制。
在业务逻辑层与客户之间加入了Services层。通过服务层封装后,再暴露给客户层,当业务逻辑层有变化时,不会直接影响客户层,这样就形成了一种松耦合的关系,使应用程序的适应能力。
典型部场景
- WCF支持经典的C/S部署方式
- 多种Windows谁方式(NTLM或Kerberos)
- TCP/二进制 消息(效果高于使用HTTP传递SOA消息的方式)
- 通过Windows信任提供对消息的保护
- 服务可以跨进程或者主机的边界来分布
- Web Services部署方式
- WCF支持可以互操作的Web Services
- 由传输层(SSL)或者消息安全机制来提供传输的安全
- 用户名/密码验证
- 典型方案,但是也可以采用其它的方法
- HTTP/Text或者HTTP/MTOM
- 支持WS*协议
- 高业伙伴或者跨主机
WCF支持交互证书(mutual certificate)认证
由传输层(SSL)或者消息安全机制来提供传输的安全 证书认证 HTTP/Text或者HTTP/MTOM
用于商业伙伴的场景 TCP/Binary
用于防火墙后面的主机到主机之间的认证 Web应用程序
WCF能够将业务功能暴露给Web应用程序
防火墙后的交互证书认证 TCP/Binary用于提高效率 为ASP.NET应用程序提供了安全的边界 允许跨进程和主机边界的分布式工作
SOA
WCF服务是SOA的一部分策略 服务支持
Web应用程序 内部/外部客户端应用程序 商业伙伴整合 分布式的业务功能客户端与服务
客户端与服务端的直接通讯是由两端的Endpoint来完成的
客户端与服务的基本要求
服务器端:
定义和实现服务契约 为服务类型构建ServiceHost实例,暴露endpoints 打开通讯通道 客户端:
需要服务契约的一个副本和关于endpoints的信息 为特定的endpoint构建通信通道并且调用操作 客户端与服务的Endpoints生成元数据与代理
契约与元数据
客户端与服务之间应该共享契约(Contracts),而不是代码 Web Service Description Language(WSDL)
互操作契约(C) 描述服务和它的端点(endpoint)(A,B) 绑定(Binding)与操作 消息和类型定义 策略 用于生成客户端代码和配置 服务描述与元数据
WCF特性
契约与序列化 异常与错误处理 绑定(Binding)与协议 主机环境 实例与分流 安全性 可靠性消息和队列调用 事务(包括HTTP) 可扩展性学着教程写写了第一个WCF程序,载地址:Hello