我对WCF和其他Web服务(例如asp.net ASMX,.net Remoting)感到困惑,任何人都可以告诉我与WCF和其他人有什么区别,我应该何时使用它,谢谢!
解决方法
WCF是一个通信堆栈,允许通过HTTP(如ASMX)和TCP(如Remoting)以及命名管道(实际上是一个机器内跨进程调用),MSMQ和.NET 3.5 REST来公开服务.
@H_301_6@它允许这样做,因为它将服务的通信部分与业务逻辑分离开来.您需要做的就是使用适当的合同属性([SeriviceContract],[OperationContract]和[DataContract])分别装饰您的服务类,方法和DTO.)
@H_301_6@这样做的好处是能够编写一次服务,并允许许多不同类型的客户端使用相同的服务(即Java客户端可以使用HTTP,.NET客户端可以使用TCP,传统可以使用MSMQ等).
@H_301_6@WCF仍然允许您使用每个传输的所有功能,包括安全性,事务,可靠的消息传递等,但您需要谨慎使用.并非所有功能都适用于所有传输,您需要进行相应的设计. WCF允许您在合同中指定需要哪些功能.这可以防止somone以不支持所需功能集的方式尝试公开您的服务(即,如果您的服务需要事务,则WCF运行时将不允许通过基本HTTP端点访问服务).
@H_301_6@WCF还可以通过自定义行为(它影响WCF运行时的工作方式)和自定义通道(控制WCF服务如何与外部世界通信)进行扩展.
@H_301_6@与ASMX相比,WCF有一点学习曲线,但ABSOLUTLY的优势在于延缓了这一学习曲线的重要性.
@H_301_6@希望有所帮助.