Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 说服管理层使用WCF_.net_Wcf_Architecture - Fatal编程技术网

.net 说服管理层使用WCF

.net 说服管理层使用WCF,.net,wcf,architecture,.net,Wcf,Architecture,我问了另一个问题,说明我无法在新的Web服务项目中使用WCF,并且已经看到它似乎是在可扩展性和安全性方面使用的技术 我的问题很简单: 我如何说服管理层(以及开发人员)转而使用WCF而不是其他web服务技术(ASMX/CFC)?他们不关心类型之间的比较(特别是关于ASMX),只关心可以获得什么好处。好处实际上取决于您的特定场景,但总的来说,有很多 WCF从一开始就是为处理服务而设计的,它以一种非常干净的方式处理服务。它解决了其他技术的许多缺点。主要区别在于WCF带来的灵活性 例如,使用ASMX或W

我问了另一个问题,说明我无法在新的Web服务项目中使用WCF,并且已经看到它似乎是在可扩展性和安全性方面使用的技术

我的问题很简单:


我如何说服管理层(以及开发人员)转而使用WCF而不是其他web服务技术(ASMX/CFC)?他们不关心类型之间的比较(特别是关于ASMX),只关心可以获得什么好处。

好处实际上取决于您的特定场景,但总的来说,有很多

WCF从一开始就是为处理服务而设计的,它以一种非常干净的方式处理服务。它解决了其他技术的许多缺点。主要区别在于WCF带来的灵活性

例如,使用ASMX或WCF进行RESTful服务非常容易。但是,如果以后需要添加SOAP、转换、更复杂的身份验证、与富客户机的异步通信等,您可以轻松地重新配置和调整WCF服务应用程序以适应这些需求。使用以前的技术,您将陷入重新架构或重写的困境


作为对您关于安全性的评论的回应,我建议您也阅读MSDN上关于安全性的内容。实际上,在服务架构方面,它远远优于所有较旧的Windows技术,因此,如果安全性是重点,那么WCF肯定是一条出路


如果您处理的是多个身份验证源,则尤其如此。WCF身份验证模型基于标准,但可扩展。实现可通过多种形式的身份验证访问的安全服务要简单得多,尤其是当您需要与其他身份验证服务集成时。

如果不至少间接地比较这两种类型,您就无法真正说明可以获得什么,否则您就没有改进的基准

不过,WCF通常会为您提供以下信息:

  • 不限于肥皂。这可以使服务更易于使用,而且性能更高。作为一名ASP.net开发人员,这可能是我心目中最大的问题

  • 表演。WCF可以更快

  • 任何东西都可以承载WCF服务,因此您不限于IIS。为您的体系结构提供了更大的灵活性


你能做的最好的事情就是阅读关于它的MSDN文档,因为微软正在大力推广WCF而不是ASMX,并且已经提供了很多关于其优势的文档

Plain vanilla ASMX根本不支持WS-Security或任何其他WS-*扩展。为了实现这些功能,您需要使用Microsoft的Web服务增强功能(WSE)

WSE是微软为了满足.NET Web服务符合WS-*规范的需要而匆忙实施的一个搁置解决方案。WCF不仅仅是一个升级,它是一个彻底的替代品。正因为如此,WSE(以及随后的ASMX,如果您想使用WS-*协议)正式成为不受支持的产品

那么-您的管理层是否希望使用官方不支持的产品启动新项目

以下是WSE无法提供的所有功能:

  • 技术支持。也许有人可以帮助你,但微软不能

  • 错误修复。WSE 3.0(最新发布的版本)的Visual Studio集成在Visual Studio 2008中不起作用。如果您运行的是Vista x64或Windows 7,则它在Visual Studio 2005中也不起作用

  • 新功能。WCF提供了性能改进、REST协议、消息队列、TCP/命名管道上的二进制序列化、WCF数据服务(Linq over Web Services)以及大量新机会。使用WSE/ASMX,您将永远无法获得任何这些

  • Active Directory集成。哦,当然,它在WSE中使用kerberos断言“起作用”——非常非常糟糕。WCF很容易与Active Directory集成,因此默认情况下是通过这种方式进行安全保护的

  • 过失契约。WSE/ASMX中的异常处理非常残酷,一切都以
    SoapException
    ResponseProcessingException
    的形式出现。使用WCF,您实际上可以将强类型异常(故障)发回客户端

  • 收回合同。要在客户端启动一些长时间运行的操作,并从服务器收到完成/状态更新的通知吗?难-希望你喜欢写轮询循环

  • 与新技术的互操作性。有时,您可以让WSE3服务与WCF或Java服务进行对话,但不一定相反。如果您使用的是WSE 3.0之前的版本,请忘记它。相比之下,WCF能够通过一些简单的配置更改来支持Azure和MSMQ

使用ASMX/WSE启动一个新项目相当于在.NET1.1框架上启动一个新项目。在编写第一行代码之前,您的产品将是“遗留的”

如果你的管理层理解“遗留技术”这个术语,我想他们也理解,那么你可能想把它抛诸脑后。也可以是“过时的”,也可以是“不受支持的”

我认为WCF已经存在了4年了。这是足够的时间在野外发现任何严重的问题。没有任何理由不相信它是一项技术

事实上,WSE3是在2005年底发布的,所以它并不比WCF老多少!信任一项5年的技术而不是一项4年的技术是不合逻辑的,特别是当对5年的技术的支持在2年前停止时。

WCF提供SOA-

  • 保证消息传递
  • 交易
  • 二进制序列化
  • 互操作