【WCF】WCF简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xumuyang_/article/details/87900346

引言

我认为现在的学习有两种选择,一种是“知其然而不知其所以然”,只要掌握了基础知识,能够“学以致用”,就足够了,想要做到这一点也比较容易;另一种就是深度学习,挖掘其内部的东西,更加灵活地用于更广泛的领域,甚至进行扩展。然鹅,我这个菜鸟就处于“知其然而不知其所以然”的状态吧。

下面是我通过查阅资料学习到的一些关于WCF的基础,希望大家看完之后也对WCF有所了解。

WCF是什么?

我们学过面向对象程序设计,即类封装功能并提供代码重用。

还有一种面向组件程序设计:用以共享封装了可重用类的二进制文档。

而WCF是面向服务(Service Oriented Architect,简称SOA)的架构:解决了不同客户之间的通信,也就是不必担心彼此采用了不同的技术。

WCF:即Windows Communication Foundation(Windows通信基础)的简称,是微软分布式应用程序开发的集大成者,是对现有Windows平台下所有分布式通信技术的整合,例如.NET Remoting、MSSQ。以通信范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于Internet。WCF可以运行在ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+上面。WCF支持的协议包括TCP,HTTP。

从所处位置来看,WCF是包含在.NET 3.0之中的。因此,WCF是.NET框架的一部分。WCF是专门用于服务定制、发布与运行及消息传递的一组专门类的集合,也就是“类库”。它主要用于处理进程间乃至机器之间消息的传递与处理,同时它引入SOA的设计思想,以服务的方式公布并运行,以方便客户端跨进程和机器对服务进行调用。我们的番茄时钟就是这样使用的。

WCF的优势

1 统一性:WCF是对于.NET Remoting,Enterprise Service,MSMQ等技术的整合。

2 互操作性:由于WCF最基本的通信机制是SOAP协议,这就保证了系统之间的互操作性,即使是运行不同的上下文中。可以跨进程、跨机器甚至于跨平台的通信,只要支持标准的Web Service。应用程序可以运行在Windows操作系统下,也可以运行在其他的操作系统。

3 兼容性:WCF充分的考虑到了与旧有系统的兼容性。安装WCF服务并不会影响原有的技术。

4 高效开发:维护性、操作性、生产效率提升,开发环境的无缝集成。

为什么用WCF?

在Windows平台下,尤其是在.NET平台下开发面向服务的应用程序,或者开发分布式系统,最佳选择就是WCF。为什么呢?原因就在于WCF涵盖了之前微软推出的所有用于分布式开发的技术,包括Remoting、Web Services、WSE、MSMQ等,并以一种统一的编程模式来实现。

WCF既支持具有互操作性的Web服务,也能够实现.NET客户端与.NET服务端的通信,提供了分布式事务的支持,同时在安全性上,它完全遵循了WS-*的标准,此外,它还支持队列服务,可以非常方便地利用消息队列完成异步操作与脱机调用。而这些功能,以前的技术都只是部分的实现。如下表所示:
|特性|Web Service .NET Romoting||--|--||  |  |

WCF同时也使得面向服务编程更加简单而统一了。如果采用旧有的技术,由于各种技术的编程模型完全不一致,使得程序的迁移非常的困难。例如,最初采用.NET Remoting技术开发的分布式系统,由于业务需求的变化,要求发布具有互操作性的Web服务,就需要重新定义服务。并且,客户端的调用方式也发生了变化,需要添加Web引用,通过UDDI去发现服务。

采用WCF则不然。WCF引入了用通道,它封装了消息的通信细节,例如编码、事务处理、安全等,然后又通过引入绑定的概念,封装了通道的组成顺序与处理细节。最后,引入了独有的Endpoint元素,集成了地址、绑定和契约之间的“三位一体”,以最简单的方式定义和发布服务。

(…其实,目前以我的水平也看不太懂这个。。。)

之后会继续更新关于契约的知识,敬请期待。

猜你喜欢

转载自blog.csdn.net/Xumuyang_/article/details/87900346
WCF