Kyl*_*ndo 2 .net architecture wcf
我问了另一个问题,说我无法在新的Web服务项目中使用WCF,并且已经看到它似乎是在可扩展性和安全性方面使用的技术.
我的问题很简单:
我如何说服管理层(以及开发人员)转而使用WCF而不是其他Web服务技术(ASMX/CFC)?他们不会关注类型之间的比较(特别是关于ASMX),只需要获得什么.
Plain-vanilla ASMX根本不支持WS-Security或任何其他WS-*扩展.为了实现这些,您需要使用Microsoft的Web服务增强功能(WSE).
WSE是一种暂缓实施的解决方案,以满足.NET Web服务符合WS-*规范的需求.WCF不仅仅是对它的升级,它还是一个平坦的替代品.因此,WSE(以及随后的ASMX,如果您想使用WS-*协议)正式成为不受支持的产品.
那么 - 您的管理层是否希望使用官方不支持的产品启动新项目?
以下是WSE无法获得的所有内容:
技术支援.也许Stack Overflow上有人可以帮助你,但微软却不能.
Bug修复.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,您实际上可以将强类型异常(故障)发送回客户端.
回调合约.想要在客户端启动一些长时间运行的操作,并从服务器收到完成/状态更新的通知?艰难 - 希望你喜欢写轮询循环.
与新技术的互操作性.有时你可以获得一个WSE 3服务来与WCF或Java服务进行通信,并进行一些讨论,但不一定相反.如果您使用3.0之前的WSE版本,请忘掉它.相比之下,WCF能够通过一些简单的配置更改来支持Azure和MSMQ.
使用ASMX/WSE启动新项目相当于在.NET 1.1框架上启动新项目.在编写第一行代码之前,您的产品将是"遗留的".
如果您的管理层理解"遗留技术"这一术语,并且我怀疑他们这样做了,您可能想要稍微抛出一点.也"过时了".也"不支持".
我认为,WCF已经存在了4年了.这是在野外发现任何严重问题的时间.没有任何理由不相信它作为一种技术.
事实上,WSE 3于2005年底发布,所以它并不比WCF年龄大!相信一项已有5年历史的技术而不是4年前的技术是不合逻辑的 - 特别是2年前停止对这项已有5年历史的技术的支持.
归档时间: |
|
查看次数: |
222 次 |
最近记录: |