精华内容
下载资源
问答
  • WCF应用场景

    2014-02-10 13:27:00
    WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是...根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Orie...

    WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。
    根据微软官方的解释,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大门的钥匙。

       以上的内容也是微软给出的官方介绍。既然它是集大成者,那么它久应该可以做以上技术可以做的事情:

    1.WCF比较适合应用到什么开发当中呢:

    比如,
    例子1:
    某个银行的技术平台主要是微软的技术平台,现在要开发一个服务,暴露出去给其它客户使用(类似于公司查询财务信息的服务),当然你可以使用asp.net Web服务,也可以使用WCF服务来发布你的服务。但是考虑到安全的问题的时候,使用WCF开发会更方便一些。
    例子2:公司内部已经有一个基于.NET开发的人力资源管理系统,现在你想利用这个系统,在开发一个asp.net的公司网站,页面显示公司的人员结构,或者招聘信息。公司因为安全问题不允许连人力资源系统的数据库。你可以开发一个WCF服务,来提供查询功能。因为网站也是基于.NET平台,整合起来久比较容易。

    2.有没有特别不适合的应用的场景呢:
        比如,要做一个视频,或聊天软件。大家都认为WCF可以做这些功能,其实WCF是基于.NET的一个通信框架。托管代码实现。
    在开发类似视频传输,或者语音聊天软件的时候,会出现性能等问题。直接c++使用SOCK编程,更好。


       WCF虽然具备了很多功能。但是不是所有的事情都要由WCF实现。能简便的方式实现,就使用最简单的。开发系统的时候,也要做个权衡,综合多方面的因素。

    转载于:https://www.cnblogs.com/iwenwen/p/3542698.html

    展开全文
  • WCF使用

    2015-06-02 12:24:54
     Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。  WCF的最终目标是通过进程或不同...

    一、概述

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

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

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

      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对该接口的方法进行实现。

    代码如下:

    复制代码
     1 using System.ServiceModel;
     2 
     3 namespace WCFService
     4 {
     5     [ServiceContract]
     6     public interface IUser
     7     {
     8         [OperationContract]
     9         string ShowName(string name);
    10     }
    11 }
    12 
    13 
    14 namespace WCFService
    15 {
    16     public class User : IUser
    17     {
    18         public string ShowName(string name)
    19         {
    20             string wcfName = string.Format("WCF服务,显示姓名:{0}", name);
    21             return wcfName;
    22         }
    23     }
    24 }
    复制代码

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

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

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

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

      我们双击上图中的 ShowName() 方法,出现如下图:

      在请求窗口中的值中输入参数“你的姓名”,然后点击“调用”,在响应窗口中会出现返回值“WCF服务,显示姓名:你的姓名”,说明测试成功,点击下面的XML也可以看到XML的数据传输。我们现在建立好了服务的应用程序和业务逻辑,即非常简单的打印姓名的方法,测试也成功了。那么我们怎么用呢?

    四、场景

      我们设计的场景是在生产中经常应用的场景,把WCF程序寄宿在IIS之上。假设场景如下:A服务器和B服务器。我们把我们刚刚建立的WCF程序“部署”在B服务器上(本教程的A,B服务器都放是我自己的一台机器),我们的目标是在A服务器的应用程序来访问B服务器的WCF程序,实现服务器端的应用程序通讯。

    五、将WCF程序寄宿在B服务器的IIS之上

      首先我们将WCF应用程序发布一下,然后部署在B服务器的IIS之上,如下图所示:

     

      鼠标右键浏览Uesr.svc,在游览器中出现如下图所示,说明服务部署成功。

       上图中的http://localhost/User.svc?wsdl即为我们要引用的服务地址。

    六、在客户端[A服务器]创建服务的引用

      我们这里以Web应用程序为例,建立地物理地址为本机,但是大家可以想像成B服务器是远程计算机,localhost为一个其他的IP地址。

      新建解决方案,并且创建ASP.NET Web应用程序的项目。命名为:WCFClient,如下图所示:

     

      (1)新建Asp.net页面,命名为:WcfTest.aspx。

      (2)添加在第五步中部署的服务的引用。如下图所示:

    wcf

      此时弹出添加服务引用的窗体,如下图所示:

      我们在地址里写上我们寄宿在IIS上的WCF服务的地址服务路径,此处为:http://localhost/User.svc?wsdl,在名称空间处填写WCFService[此名称空间要在下面的客户端中引用]然后点击“前往”-->“确定”按钮。此时我们完成了对服务的引用。我们再次查看解决方案,里面多了Service References的文件夹,通过资源管理器打开后里面多了些文件,这些文件用于客户端向服务端的调用,现在先不用管他。

     七、使用WCF服务端的方法

      WcfTest.aspx的代码如下:

    复制代码
     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WCFTest.aspx.cs" Inherits="WCFClient.WCFTest" %>
     2 
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4 <html xmlns="http://www.w3.org/1999/xhtml">
     5 <head runat="server">
     6     <title></title>
     7 </head>
     8 <body>
     9     <form id="form1" runat="server">
    10     <asp:TextBox ID="txtName" runat="server"></asp:TextBox><br />
    11     <asp:Button ID="btnSubmit" runat="server" Text="测试WCF服务" OnClick="btnClick" />
    12     </form>
    13 </body>
    14 </html>
    15 
    16 using System;
    17 using System.Collections.Generic;
    18 using System.Linq;
    19 using System.Web;
    20 using System.Web.UI;
    21 using System.Web.UI.WebControls;
    22 
    23 //引用WCF服务的名称空间
    24 using WCFClient.WCFService;
    25 
    26 namespace WCFClient
    27 {
    28     public partial class WCFTest : System.Web.UI.Page
    29     {
    30         protected void Page_Load(object sender, EventArgs e)
    31         {
    32 
    33         }
    34 
    35         protected void btnClick(object sender, EventArgs e)
    36         {
    37             UserClient user = new UserClient();
    38             string result = user.ShowName(this.txtName.Text);
    39             Response.Write(result);
    40         }
    41     }
    42 }
    复制代码

      上面中的UserClient类是在添加引用的时候生成的服务端User类的客户端代理类,一般客户端代理类名称都会是**Client。我们运行一下看下效果。

      通过以上的例子,我们完成了由A服务器的应用向B服务器中WCF提供的方法的调用。这个例子比较简单,对于经常开发B/S结构应用程序的同学们来说比较好理解。

    八、说明:因为网上的入门教程比较少,本教程只做入门,后面会继续讲些其他入门的东西,深入的请看园子里:Artech 大哥的文章。

    九、代码下载:

      10 WCF 教程

    十、版权

      转载请注明出处:http://www.cnblogs.com/iamlilinfeng

    活到老,学到老,练到老...
    展开全文
  • WCF的基础ABC和Endpoint,对于常见的场景如果这么多的组合显然也很复杂,实际的应用中根据具体的场景选择对应的方式 图书”Programming WCF Services”(WCF服务编程) 对这个组合进行了详细的总结,如下: 【对于WCF...
    WCF的基础ABC和Endpoint,对于常见的场景如果这么多的组合显然也很复杂,实际的应用中根据具体的场景选择对应的方式
    图书”Programming WCF Services”(WCF服务编程) 对这个组合进行了详细的总结,如下:
    【对于WCF的基础知识可以参阅图书或其他资料】 

    绑定和安全场景

    绑定

    局域网场景

    互联网

    B2B场景

    匿名场景

    无安全场景

    BasicHttpBinding

    No

    No

    Yes

    No

    Yes

    NetTcpBinding

    Yes

    Yes

    No

    Yes

    Yes

    NetPeerTcpBinding

    No

    No

    No

    No

    Yes

    NetNamedPipeBinding

    Yes

    No

    No

    No

    Yes

    WSHttpBinding

    No

    Yes

    Yes

    Yes

    Yes

    WSFederationHttpBinding

    No

    No

    No

    No

     

    WSDualHttpBinding

    No

    Yes

    Yes

    Yes

    Yes

    NetMsmqBinding

    Yes

    No

    No

    Yes

    Yes

    安全场景特性

    特性

    局域网场景

    互联网

    B2B场景

    匿名场景

    无安全场景

    Transport

    Yes

    No

    No 

    No

    No

    Message

    No 

    Yes

    Yes

    Yes

    No

    Service authentication

    Windows

    Ceritificate

    Ceritificate

    Ceritificate

    No

    Client authentication

    Windows

    ASP.NET

    Ceritificate

    No

    No

    Authorization

    Windows

    ASP.NET

    No/ASP.NET

    No

    No

    Impersonation

    Yes

    No

    No

    No

    No

    实现参考

    该书描述了一个基于声明的框架类库,使用这个库可以方便的建立以上不用场景的应用,基于这个我实现了一个demo的演示,通过这个过程对WCF有了比较深入的了解,对于小组人员的入门和快速使用比较有用。

    demo下载地址: http://cid-56b433ad3d1871e3.office.live.com/self.aspx/.Public/ProgWCF.rar 

    详细运行参考代码中的Readme.txt和注释

    Intranet

    Transport保护

    使用tcp绑定

    windows集成的安全

    Internet

    只能使用Message形式的保护,需要数字证书

    tcp wsHttp绑定

    使用Membership进行安全认证

    Anoymous

    使用Message形式的保护,需要数字证书

    tcp wsHttp绑定

    None

    消息不保护

    http tcp wsHttp绑定

    B2b

    BasicHttpBinding WSHttpBinding WSDualHttpBinding

    参考:Programming WCF Services [ISBN: 978-0-596-80548-7]

    展开全文
  • WCF的应用场景

    千次阅读 2017-03-17 15:36:58
    WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET ...根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Or
    WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。
    根据微软官方的解释,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大门的钥匙。

       以上的内容也是微软给出的官方介绍。既然它是集大成者,那么它久应该可以做以上技术可以做的事情:

    1.WCF比较适合应用到什么开发当中呢:

    比如,
    例子1:
    某个银行的技术平台主要是微软的技术平台,现在要开发一个服务,暴露出去给其它客户使用(类似于公司查询财务信息的服务),当然你可以使用asp.net Web服务,也可以使用WCF服务来发布你的服务。但是考虑到安全的问题的时候,使用WCF开发会更方便一些。
    例子2:公司内部已经有一个基于.NET开发的人力资源管理系统,现在你想利用这个系统,在开发一个asp.net的公司网站,页面显示公司的人员结构,或者招聘信息。公司因为安全问题不允许连人力资源系统的数据库。你可以开发一个WCF服务,来提供查询功能。因为网站也是基于.NET平台,整合起来久比较容易。

    2.有没有特别不适合的应用的场景呢:
        比如,要做一个视频,或聊天软件。大家都认为WCF可以做这些功能,其实WCF是基于.NET的一个通信框架。托管代码实现。
    在开发类似视频传输,或者语音聊天软件的时候,会出现性能等问题。直接c++使用SOCK编程,更好。


       WCF虽然具备了很多功能。但是不是所有的事情都要由WCF实现。能简便的方式实现,就使用最简单的。开发系统的时候,也要做个权衡,综合多方面的因素。
    展开全文
  • WCF的基础ABC和Endpoint,对于常见的场景如果这么多的组合显然也很复杂,实际的应用中根据具体的场景选择对应的方式图书”Programming WCF Services”(WCF服务编程) 对这个组合进行了详细的总结,如下:【对于WCF的...
  • wcf使用注意

    2019-08-07 03:19:12
    选择适合具体场景的绑定,能够使用TCP协议就不使用HTTP,能够使用二进制编码就不选择文本编码,如果不需要安全机制,就将安全模式设置成None,如果需要消息安全,不需要Negotiation,就Negotiation关闭,如果不需...
  • WCF中如何实现登陆,典型的场景如下: [ServiceContract] publicinterfaceILogin{ [OperationContract] boolSignin(stringuserName,stringpassword); } [ServiceCont...
  • Javascript是一个很好的解决方案,但它只是在客户端工作,而有一些场景,我们真的需要有在服务器端工作的解决方案。例如,在数据库中存储数据或在服务器端处理数据。有两种流行的技术,一种是Sig...
  • WCF 的通信中 使用 WSAtomicTransaction11 来管理Oracle的分布式事务
  • wcf

    2011-05-13 10:45:00
    Posted on 2009-05-05 00:10 Frank Xu Lei 阅读(5023) 评论(66)编辑收藏 WCF除了支持经典的请求应答(Request-Reply)模式外,还提供了什么操作调用模式,他们有什么不同以及我们如何在开发中使用这些操作调用模式...
  • 这一篇文章,是总结一下WCF技术,以及基于这个技术发展出来的几个典型应用场景,并且我将尝试对这些不同的WCF实现的原理进行一些比较分析。 关于WCF这个技术的基本概念,如果你不是很清楚,可以参考一下有关的文档 ...
  • Wcf

    2007-11-30 17:10:00
    使用Web服务的每一种主要语言或平台都把与自身相关的特性集合在一个名字下,Java开源开发人员使用Axis,PHP阵营则使用PEAR,而基于微软工具的开发则使用WCF (Windows Communication Foundation). WCF曾被称为Indigo...
  • WCF

    2007-12-20 14:06:00
    使用Web服务的每一种主要语言或平台都把与自身相关的特性集合在一个名字下,Java开源开发人员使用Axis,PHP阵营则使用PEAR,而基于微软工具的开发则使用WCF (Windows Communication Foundation). WCF曾被称为Indigo...
  • WCF支持经典的C/S部署方式 多种Windows认证方式(NTLM或Kerberos) NTLM: 在网络环境中,NTLM 用作身份验证协议以处理两台计算机(其中至少有一台计算机运行 Windows NT 4.0 或更早版本)之间的事务。具有此配置的...
  • WCF 创建WCF

    2019-10-01 13:16:45
     Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分。由 .NET Framework 3.0 开始引入。  WCF的最终目标是通过进程或不同...
  • 上一篇 我总结介绍了WCF技术的背景,核心要素,和典型场景,目的是希望让大家更好地掌握WCF技术,并且在工作中知道如何选择。 由于篇幅较长,这一篇继续写完第二部分。 应用场景WCF 从发布到现在的将近5年左右的...
  • wcf是一款基于面向服务的架构的通讯框架平台,在分布式框架中得到了广泛使用wcf入门非常简单,只要花几分钟就能编写一个完整的wcf程序,而实际上WCF是概念非常多的一门技术,需要花很大精力去深入研究。 二、...
  • 无论对于Web Service还是WCF,Client和Service之间交互的唯一形式是通过发送和接收Soap Message。在我们对Web Service和WCF进行深入学习的时候,借助一些So

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,929
精华内容 2,771
关键字:

wcf使用场景