Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 ADO.NET JavaScript LINQ AjaxPro DataGridView 面向对象 Extjs GridView XML DevExpress HTML教程 Oracle jQuery 分页 GDI+ Visual C++2010 MySQL Office2010 WPF MVC Dojo WCF4.0 VB.NET Sql2005 textbox cookie WCF WinForm Discuz!NT SQL经典语句 T-SQL checkbox ASPxGridView F# asp.net SQL VS2008新特性 DropDownList Access TreeView Ajax VS2008 页面执行时间 Flex 字符串 回调 VB2005 DataSet C#时间 ASP.NET性能优化 用户在线检测 动画
Framework C#技术 VB.NET VC.NET WCFWPF
当前位置: 主页 > WinForm教程 > WPF >

WCF学习序列(一):基本概念

时间:2009-10-13 23:24来源:未知 作者:admin 点击:

WCF 被关注的时间已经很长了,全名 "Windows Communication Foundation",它还有另外一个名字叫 Indigo,这应该是微软迈向 SOA 一个重要的标志。对开发者而言,一个统一的模型整合了以往零零碎碎的 WebService、Remoting、MSMQ 等技术,让分布式开发变得更加简单。

  SOA 现在很热闹,但它早已经出现。最初厂商和网站炒 "WebServices" 的时候,SOA 就已经是个热门词汇了。但是在实际开发中,WebServices 和 .NET Remoting 的使用度并不高,原因太多太复杂。不过 WCF 的出现,相信会推进这一进程。

  面向服务(SOA, service-oriented application)示意图


 

WCF 的架构模型和 .NET Remoting 有些类似,下图很好地说明了其执行的流程和相关结构。

  WCF 架构示意图


WCF 宿主架构示意图
 

作为一种边界清晰、中立、高度独立的开发模型,WCF 几乎可用于所有的分布开发模式。

  WCF 通讯方式示意图


 

  几乎所有的 WCF 的开发文章里都会提到一个名为 "ABC" 的说法,分别是 Address、Binding 和 Contract。Address表示服务的地址。比如 "http://localhost:8080/myservice.svc";Binding表示绑定策略。可以为单个服务添加多个绑定,如内部采取 NetTcpBinding(Binary),外网则采取 WSHttpBinding(Text),当然一个 Binding 也可用于多个服务;Contract表示服务契约。在 SOA 中客户端和服务器之间并没有直接的对象继承和引用关系,双方通过一种约定的格式来传递消息(Message),这种约定就是契约。

  在实际开发中,我们往往会将 "ABC" 反过来进行。首先定义及实现契约,然后选择合适的绑定模式,最后定义服务的地址。在 WCF 中,服务对象不再需要从 MarshalByRefObject 继承,我们也无需再关心 SAO、CAO 之类的区别,其模式更类似于 ASP.NET WebService,同样也支持 Session。WCF 更多地使用声明式编程模式,通过大量的特性(Attribute)来描述服务策略。

[ServiceContract()]
public interface ICalculate
{
  [OperationContract]
  double Add(double a, double b);
}
public class CalculateService : ICalculate
{
  public double Add(double a, double b)
  {
    return a + b;
  }
}

  除了上面这些,我们还会接触到 Behavior、Message 等信息。Behavior 用于对服务器进行一些设置,比如开放 WSDL 信息获取,反馈出错信息等。MessageContract 则可以自定义通讯消息,包括添加自定义的 Head。

  和 Remoting 一样,我们可以选择不同的宿主,包括 IIS、WinForm、Windows Service、Console 等。推荐使用配置文件来完成服务器和客户端设置,但同样支持编码方式。WCF 客户端依然是一个代理对象,这个代理类型的代码一般由 Svcutil.exe 工具来生成。

 

(责任编辑:admin)
Tags:WCF
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价