none
关于WCF的应用场景 RRS feed

  • 问题

  • 1.WCF比较适合应用到什么开发当中呢?能举几个例子吗?

    2.有没有特别不适合的应用的场景呢?能举几个例子吗?

    非常感谢。
    2010年1月14日 3:31

答案

  • Hi,
    回答WCF能做什么的问题,首先知道WCF是什么,这样才能更好理解。
    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实现。能简便的方式实现,就使用最简单的。开发系统的时候,也要做个权衡,综合多方面的因素。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月14日 4:52
    版主

全部回复

  • Hi,
    回答WCF能做什么的问题,首先知道WCF是什么,这样才能更好理解。
    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实现。能简便的方式实现,就使用最简单的。开发系统的时候,也要做个权衡,综合多方面的因素。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月14日 4:52
    版主
  • 谢谢老徐的细心解答。

    2010年1月14日 5:37
  • 开发个游戏呢?小游戏呢?Silverlight效果好啊,啊哈哈
    2010年1月26日 2:15