与WCF和其他Web服务有什么不同?
我对WCF和其他Web服务(如asp.net ASMX,.net Remoting)感到困惑,有谁可以告诉我与WCF和其他人有什么不同,我应该什么时候使用它,谢谢!
WCF是一个通信堆栈,允许通过HTTP(如ASMX)和TCP(如Remoting)以及命名管道(这实际上是一个机器内跨进程调用),MSMQ以及.NET 3.5 REST公开服务。
它允许这样做,因为它将服务的通信部分从业务逻辑中分离出来。 你所需要做的就是用合适的契约属性([SeriviceContract],[OperationContract]和[DataContract]装饰你的服务类,方法和DTO。)
这具有能够编写服务一次的好处,并允许许多不同类型的客户端使用相同的服务(即Java客户端可以使用HTTP,.NET客户端可以使用TCP,传统可以使用MSMQ等)。
WCF仍然会允许您使用每个传输的所有功能,包括安全性,事务处理,可靠消息传递等,但您需要谨慎使用。 并非所有功能都适用于所有传输,您需要进行相应的设计。 WCF允许您在合同中指定哪些功能是必需的。 这可以防止somone尝试以不支持所需功能集的方式公开您的服务(即,如果您的服务需要事务处理,WCF运行时将不允许通过基本HTTP端点访问该服务)。
WCF通过自定义行为(影响WCF运行时的工作方式)和自定义通道(控制WCF服务如何与外部世界进行通信)也是可扩展的。
与ASMX相比,WCF有一点学习曲线,但绝对不会加重这一学习曲线的好处。
希望有所帮助。
WCF是通信库,它是.NET Remoting和“旧”ASMX Web服务的超集,以及这两个库的后续版本。
WCF Web服务对WS- *标准有更好的支持,并且互操作性问题更少。
基本上,你应该使用WCF,因为.net Remoting和ASMX可能被认为是一种理性(如果我没有记错的话,一些.NET远程处理错误只能在WCF中修复,而从不使用.NET Remoting本身)
我认为WCF可以取代ASMX和远程处理是公平的。 你可以通过ASMX和远程处理获得所有你可以做到的事情,并且可以通过WCF获得更多的功能,但是你有更多的功能,并且通常可以更好地控制正在发生的事情。
所以我相信,如果可以的话,你应该使用WCF。
链接地址: http://www.djcxy.com/p/71283.html