.net 说服管理层使用WCF
我问了另一个问题,说明我无法在新的Web服务项目中使用WCF,并且已经看到它似乎是在可扩展性和安全性方面使用的技术 我的问题很简单:.net 说服管理层使用WCF,.net,wcf,architecture,.net,Wcf,Architecture,我问了另一个问题,说明我无法在新的Web服务项目中使用WCF,并且已经看到它似乎是在可扩展性和安全性方面使用的技术 我的问题很简单: 我如何说服管理层(以及开发人员)转而使用WCF而不是其他web服务技术(ASMX/CFC)?他们不关心类型之间的比较(特别是关于ASMX),只关心可以获得什么好处。好处实际上取决于您的特定场景,但总的来说,有很多 WCF从一开始就是为处理服务而设计的,它以一种非常干净的方式处理服务。它解决了其他技术的许多缺点。主要区别在于WCF带来的灵活性 例如,使用ASMX或W
我如何说服管理层(以及开发人员)转而使用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
的形式出现。使用WCF,您实际上可以将强类型异常(故障)发回客户端ResponseProcessingException
- 收回合同。要在客户端启动一些长时间运行的操作,并从服务器收到完成/状态更新的通知吗?难-希望你喜欢写轮询循环
- 与新技术的互操作性。有时,您可以让WSE3服务与WCF或Java服务进行对话,但不一定相反。如果您使用的是WSE 3.0之前的版本,请忘记它。相比之下,WCF能够通过一些简单的配置更改来支持Azure和MSMQ
- 保证消息传递
- 交易
- 二进制序列化
- 互操作