• [WCF菜鸟]什么是WCF


    一、概述

      Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。

      WCF的最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息。

      WCF合并了Web服务、.net Remoting、消息队列和Enterprise Services的功能并集成在Visual Studio中。

      WCF专门用于面向服务开发。(SOA)

    二、由来

    微软斥巨资打造WCF的目的:实现其对现有的分布式技术的整合以及顺应SOA的浪潮

    对于技术的发展,“统一”是一个主线:

    为了让基于Web的开发可以采用我们基于Windows Form的事件驱动、基于控件开发模式,我们有了ASP.NET;

    为了使具有不同结构的数据(.NET Object, XML, Relational Data etc)采用相同的操作方式,我们有了LINQ

    同样,对于一个分布式系统的开发,将不同的分布式技术整合起来,提供一个统一的编程模型是绝对有必要的,WCF就是基于这样的一个目的发展起来的。

    二、基于Asp.net 的应用程序开发与面向服务开发

    wcf

      在基于Asp.net 的应用程序开发中,我们由客户机的浏览器访问应用程序服务器,然后通过应用程序服务器中的数据库连接去连接数据库服务器,读取或是操作数据,有时候可能会多一个文件服务器。大家可以观察到,基本上所有的应用都放在了一台服务器上,但对于一个,由于业务上的需要(如:与外部系统交互),一台服务器很难支持所有的应用。我们再看下面的图:

    wcf

      客户机使用浏览器访问服务器A,服务器A为了业务需要与其他各种应用部署在服务器B、C、D....再通过WCF技术互相通信,相互访问...然而面向服务的好处不仅仅在此,他还提供了不同语言不同操作系统的可交互性..由于本文不是介绍SOA的文章,感兴趣的同学可以参见:SOA

    三、第一个WCF程序

      1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序。建立完成后如下图所示:

    wcf

      2.删除系统生成的两个文件IService1.cs与Service1.svc。

      3.添加自定义的WCF【服务文件】User.svc,此时vs2010会自动生成WCF接口文件IUser.cs,我们在IUser中定义WCF方法ShowName,在User.svc.cs对该接口的方法进行实现。

    代码如下:

    using System.ServiceModel;
    
    namespace WcfService1
    {
        // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IUser”。
        [ServiceContract]
        public interface IUser
        {
            [OperationContract]
            void DoWork();
        }
    }
    
    namespace WcfService1
    {
        public class User : IUser
        {
            public string ShowName(string name)
            {
                string wcfName = string.Format("WCF服务,显示姓名:{0}", name);
                return wcfName;
            }
        }
    }

      大家可以看到,在WCF中的接口与普通接口的区别只在于两个上下文(特性),其他的和我们正常学习的接口一样。定义这个上下文要添加System.ServiceModel的引用。

      [ServiceContract],来说明接口是一个WCF的接口,如果不加的话,将不能被外部调用。

      [OperationContract],来说明该方法是一个WCF接口的方法,不加的话同上。 

      此时我们的第一个WCF服务程序就建立好了,将User.svc“设为起始页”,然后F5运行一下试试,如下图所示,VS2010自动调用了WCF的客户端测试工具以便我们测试程序:

      

     异常:添加服务失败。服务元数据可能无法访问。请确保服务正在运行并且正在公开元数据。

    我重新创建项目就好了

    参考:

    1.《我的WCF之旅》博文系列汇总

    2.无废话WCF入门教程一[什么是WCF]

  • 相关阅读:
    曾国藩家书人但有恒、事无不成
    pythonredis
    tableSorter使用介绍
    Python模块学习 subprocess 创建子进程
    曾国藩家书用人必先知人
    身份证号码的规则及验证原理
    KeyDown,KeyPress 和KeyUp 之我谈(更新版本)
    Python基础综合练习
    熟悉常用的Linux操作
    大数据概述
  • 原文地址:https://www.cnblogs.com/code1992/p/10496486.html
Copyright © 2020-2023  润新知