zoukankan      html  css  js  c++  java
  • WCF初探-1:认识WCF

    1.WCF是什么?

     

    WindowsCommunication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,它是.NET框架的一部分,由.NET Framework 3.0开始引入,与Windows Presentation Foundation及 Windows Workflow Foundation并行为新一代Windows操作系统以及WinFX的三个重大应用程序开发类库。

    在.NETFramework 2.0以及前版本中,微软发展了Web Service(SOAP with HTTP communication),.NET Remoting(TCP/HTTP/Pipeline communication)以及基础的Winsock等通信支持,由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性(例如.NET Remoting可以开发SOAP, HTTP通信),对于开发人员来说,不同的选择会有不同的程序设计模型,而且必须要重新学习,让开发人员在用户有许多不便。同时,服务导向架构(Service-Oriented Architecture)也开始盛行于软件工业中,因此微软重新查看了这些通信方法,并设计了一个统一的程序开发模型,对于数据通信提供了最基本最有弹性的支持,这就是Windows Communication Foundation。

     

    2.WCF能做什么?

     

    根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。

     

    3.WCF示例

     

    我们通过VS2010自带的模板创建一个WCF程序,来认识一下WCF服务

    第一步:打开VS2010,选择WCF模板中的"WCF服务应用程序",将解决方案的名称改为WcfTest,名称改为Service

     

    第二步:创建完成后,解决方案中生成3个文件,服务契约接口和服务实现类,以及服务寄宿文件和配置文件

     

     

     

     

     

    第三步:对服务进行寄宿,点击Service1.svc在浏览器中进行查看,既可以寄宿该服务

     

     

     

    第四步:服务寄宿后,我们就可以查看其元数据的信息以及调用服务产生客户端代理类

     

    点击链接就可以看到服务的元数据信息如下:

     

     

    第五步:我们通过svcutil.exe工具生成客户端代理类和客户端的配置文件

    svcutil.exe是一个命令行工具,位于路径C:Program Files (x86)Microsoft SDKsWindowsv7.0ABin下,我们可以通过命令行运行该工具生成客户端代理类

    1.在运行中输入cmd打开命令行,输入 cd C:Program Files (x86)Microsoft SDKsWindowsv7.0ABin

    2.输入svcutil.exe /out:f:TestProxy.cs /config:f:App.confighttp://localhost:10998/Service1.svc?wsdl(注意:端口号改成本机服务寄宿的端口号)

     

    此时,你可以在你的f盘的根目录查看到你刚刚生成的客户端代理文件和配置文件TestProxy.cs 、App.config

     

    第六步:创建一个控制台应用程序的客户端(Client),将生成的代理文件拷贝到该工程中(也可以点击引用"添加服务引用",靠VS2010自动生成客户端代理类)

    此时你会看到客户端代理类中出现错误,原因是我们并未对服务需要的程序集进行引用。我们引用System.Runtime.Serialization和System.ServiceModel

    在客户端的Program.cs中输入如下代码

     

    设置客户端(Client)未启动项目,运行程序就可以看到第一个服务程序运行的结果

     

    到此,我们完成了一个简介的WCF程序,下一篇,我们将自己手动编写一个wcf服务程序

    作者:wangweimutou
    关注技能:ASP.NET、ASP.NET MVC、ASP.NET WEB API、WCF、MSSQL、ORACLE
    感谢您阅读本文,如果您觉得有所收获,麻烦点一下右边的【推荐】,您的支持是对我最大的鼓励!
    由于作者能力有限,本文只做学习交流使用,如有不正之处,欢迎指出
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留原文链接,否则保留追究法律责任的权利
  • 相关阅读:
    cocos2dx 菜鸟实习生学习篇(四) 锚点的理解
    cocos2dx 菜鸟进阶篇(三) scrollView(下)
    2012年终总结!
    cocos2dx 菜鸟进阶篇(二) 重力感应
    cocos2dx 菜鸟进阶篇(三) ScrollView(上)
    cocos2dx 菜鸟进阶篇(一) 在游戏中添加music
    Mobile Web项目中碰到的问题及解决
    struts验证框架的使用
    错误解决办法收集
    JSONP跨域访问实现登录验证
  • 原文地址:https://www.cnblogs.com/wangweimutou/p/3833077.html
Copyright © 2011-2022 走看看