由于公司要使用WCF,进行网站的运营;初次接触WCF觉得有点步可思议,感觉有点麻烦,
但仔细想想发现用了wcf的话好像把业务独立出来处理,比现在的处理要安全多,
现在我们网站是直接一锅端,什么东西都丢在一个服务器(意思是一个服务器处理多个功能能,不是分摊到各个服务器单独使用)
WCF是面向服务的体系结构(Service-Oriented Architecture,SOA)的一种
WCF简介
WCF是Windows Communication Foundation的缩写,原来代号为Indigo,它是MS为SOA(Service Oriented Architecture 面向服务架构)
而设计的一套完整的技术框架。利用它能够开发出分布式(Distributed)应用程序, WCF是目前微软平台下最先进的SOA框架,具有很多优点,总结起来,其最大的特征在于:
1. 充分整合了原来的.NET Remoting,ASP.NET Xml Web Service(ASMX, Web服务),MSMQ(Message Queuing 消息队列),WSE(Web Services Enhancements),
Enterprise Service(COM+)等多项分布式技术。
2. WCF是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、
安全、可靠和支持事务处理的企业级互联应用解决方案。
3. WCF提供了现有ASP.NET Web Service、.NET Remoting、Message Queuing和Enterprise Services技术的全部功能。现有解决方案均有各自的优点,也有相应的缺点,WCF综合了上述技术的优点,形成了一种新的技术。
WCF简介之WCF提供了如下特性:
1. 驻留组件和服务:与使用定制主机、.NET Remoting 和WSE一样,可以把WCF服务放在ASP.NET库中、Windows 服务上、COM+过程中,或Windows Form程序上,进行对等计算。
2. 声明性操作:不是必须从基类中派生(.NET Remoting中远程对象从MarshalByRefObject派生),可以使用属性定义服务,类似与ASP.NET的Web服务(以[WebMethod]属性说明方法,标记为可通过Web服务访问)。
3. 通信信道:.NET Remoting 在改变通信信道方面非常灵活,而WCF是一个很好的替代品,它提供了相同的灵活性。WCF可以使用HTTP、TCP、IPC(Internet Process Connection进程间通信)信道进行通信。并且支持使用UDP信道。
4. 安全体系结构:要实现独立于平台的Web服务,必须使用标准的安全环境。现有提供的标准是用WSE2.0实现的,在WCF中继续使用它WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。
5. 可扩展性:.NET Remoting 有丰富的扩展功能,它可以创建定制的信道、格式化器和代理程序,还可以在客户机和服务器的消息流中插入功能。WCF提供了类似的可扩展性,但这些扩展功能使用SOAP标题实现。
6. 兼容性:使用WCF,无需重写分布式解决方案,WCF可以与已有的技术很好的集成。WCF提供一个信道可以使用DCOM与所服务的组件通信。以ASP.NET Web服务创建独立于平台的服务也可以很方便实现与WCF的集成。
WCF简介之WCF作用:
在win32中,应用程序是运行在进程(Process)的线程(Thread)中的,.Net平台出现之后,出现了AppDomain(应用程序域),其实就相当于在进程和线程之间又有了一层包装,类似于子进程的概念,在一个进程(或应用程序域)中的对象能进行直接的访问和控制,但超出这个范围,便不能进行直接的访问和控制了,所以进程(或应用程序域)有一定的隔离作用,如果是分布在不同网络,不同操作系统上的不同进程,他们进行通讯的难度就更大,而分布式应用程序要求的就是将原本被隔离的作用域通过一定的契约联系起来,从而达成多个系统的沟通协作。比如在Win32时代,经常使用映射内存文件来实现进程之间的互操作问题,还有在Windows程序中,用Windows消息wm也能实现不同进程之间的通讯问题,但这些都有局限性,因为他们不能很好的解决跨平台,跨网络问题,而WCF可以。
就介绍这么多,这些资料都是网上找的,了解下就行,大家不必在意这些概念性问题,只要了解就行了,有个大概的印象。哦也是只读过一遍
最简单的WCF,我把它分为了:契约接口层、契约实现层、宿主层、客户层
1.契约接口:根据这个名字来说它就是我们的一个接口层,不过接口中的方法与类名都用了WCF固定的申明进行了说明,其中用到的关键字有“ServiceContract”、“OperationContract”;
2.契约实现层:就是继承契约接口,用来实现具体的契约方法,可以在类的内部申明ServiceBehavior,也可以在宿主的配置文件中具体声明;
3.宿主层:用于提供服务,分布式调用 客户端发过来的请求;宿主中是一个程序来进行服务分配,可以用win32,winform,webservice进行
4.客户层:就是客户端,客户端来实现调用wcf中的方法;