WCF服务一:WCF服务简介

一、回顾开发历史:

软件架构的设计经历了:从面向对象程序,到面向组件程序设计,再到面向服务程序设计。这三种方式都致力于同一个目标:封装和重用。

面向对象程序设计:类封装功能并提供代码重用。

面向组件程序设计:用以共享封装了可重用类的二进制文档。最初,这一点只是针对本机,随着COM,DCOM和.NET Remoting的问世,才发展到分布式环境。虽然这些分布式的方法不尽相同,但是都可以实现跨进程、跨机器。面向组件程序设计有很多局限性,最明显的局限是与一些特定技术的耦合过深。例如:JAVA客户端如何调用COM组件,.NET如何调用EJB,这些局限的产生均是协议和通信格式的问题。

面向服务(SOA):解决了不同客户之间的通信,也就是不必担心彼此采用了不同的技术。

二、什么是WCF服务

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

WCF的优势:

1 统一性:WCF是对于.NET Remoting,Enterprise Service,MSMQ等技术的整合。
2 互操作性:由于WCF最基本的通信机制是SOAP协议,这就保证了系统之间的互操作性,即使是运行不同的上下文中。可以跨进程、跨机器甚至于跨平台的通信,只要支持标准的Web Service。应用程序可以运行在Windows操作系统下,也可以运行在其他的操作系统。
3 兼容性:WCF充分的考虑到了与旧有系统的兼容性。安装WCF服务并不会影响原有的技术。
4 高效开发:维护性、操作性、生产效率提升,开发环境的无缝集成。

时间: 2024-08-13 20:41:05

WCF服务一:WCF服务简介的相关文章

【ITOO】WCF——Client调用WCF服务

三步走已经走了两步,一个WCF服务发布好之后,就等待着用的人来调用了,它只向外提供一个接口,暴露地址和契约,不暴露服务是如何实现的.接下来就说说客户端调用WCF服务的事. 其实说到调用就很简单了,首先我们要让我们所需的服务识别我们,即配置好同样的终结点信息,然后添加服务的引用,最后调用相应的方法即可. 如配置文件中: <applicationSettings> <WebDemoClient.Properties.Settings> <setting name="We

使用C#创建及调用WCF完整实例 (Windows服务宿主)

关于WCF的概念.原理.优缺点等,在这里就不多说了,网上很多,可以自行搜索,比我解释的要专业的多. 这里直接说使用Windows 服务(Windows Service)作为宿主如何实现,其它方式不在此次教程之内 文章最后有本例的下载连接,包含源代码.说明教程.编译后文件 实例环境:Windows Server 2008 R2 + VS 2010(C#) 打开 VS 2010,选择 新建项目,选择 ”WCF”|”WCF 服务库 ”,注意这里是”WCF 服务库 ”,不是"WCF 服务应用程序&quo

WCF基础之配置服务

在WCF应用编程中配置服务是其主要部分. 配置可以定义和自定义如何向客户端公开服务,包括服务地址,发送和接受消息的传输和编码,以及服务的安全类型. 服务的配置有两种:编码和使用config文件,大多数是用配置文件进行配置. <system.serviceModel> <!--服务--> <services> <service> <host /> <endpoint/> </service> </services>

WCF 设计和实现服务协定

WCF 术语:? 消息 – 消息是一个独立的数据单元,它可能由几个部分组成,包括消息正文和消息头.? 服务 – 服务是一个构造,它公开一个或多个终结点,其中每个终结点都公开一个或多个服务操作.? 终结点 – 终结点是用来发送或接收消息(或执行这两种操作)的构造. 终结点包括一个定义消息可以发送到的目的地的位置(地址).一个描述消息应如何发送的通信机制规范(绑定)以及对于可以在该位置发送或接收(或两者皆可)的一组消息的定义(服务协定)- 该定义还描述了可以发送何种消息. – WCF 服务作为一个终

autofac 注入普通服务和WCF服务

using Autofac;using Autofac.Builder;using Autofac.Core; //实现Autofac扩展 public static AutofacRegisterWcf { public static IRegistrationBuilder<TServiceContract, SimpleActivatorData, SingleRegistrationStyle> RegisterWcfServiceContract<TServiceContrac

WCF初探-13:WCF客户端为双工服务创建回调对象

前言: 在WCF初探-5:WCF消息交换模式之双工通讯(Duplex)博文中,我讲解了双工通信服务的一个应用场景,即订阅和发布模式,这一篇,我将通过一个消息发送的例子讲解一下WCF客户端如何为双工服务创建回调对象. 双工服务指定一个回调协定,客户端应用程序必须实现该协定以便提供一个该服务能够根据协定要求调用的回调对象.虽然回调对象不是完整的服务(例如,您无法使用回调对象启动一个通道),但是为了实现和配置,这些回调对象可以被视为一种服务. 双工服务的客户端必须: 实现一个回调协定类. 创建回调协定

从开发的角度比较 ASP.NET Web 服务与 WCF

Windows Communication Foundation (WCF) 具有一个 ASP.NET 兼容模式选项,用户使用此选项可以对 WCF 应用程序进行编程和配置,使其像 ASP.NET Web 服务一样,并且还可以模仿这些服务的行为.以下各部分基于使用这两种技术开发应用程序的要求来比较 ASP.NET Web 服务和 WCF. 数据表示形式 一般情况下,使用 ASP.NET 开发 Web 服务首先要定义服务要使用的任意复杂数据类型.ASP.NET 依赖于 XmlSerializer 将

调用WCF不需要添加服务引用,使用一个WCFHelper类就可以

效果图: 调用过程: string WCFURL = "http://localhost:100/Service1.svc"; UserRequest user = new UserRequest { UserName = UserName.Text, Address = Address.Text, Email = Email.Text }; string request = "{\"request\":" + new JavaScriptSer

不引用服务使用WCF,编写客户端代理类

首先在解决方案中新建一个类库TestService.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; namespace WCFService { [ServiceContract] public interface IHelloWCFService { [

WCF运行错误:添加服务失败。服务元数据可能无法访问。请确保服务正在运行并且正在公开元数据。

使用WCF写了一个小程序测试一下它的功能在运行时报错.“添加服务失败.服务元数据可能无法访问.请确保服务正在运行并且正在公开元数据.” 如下图所示: 查了下资料把它解决了,记录一下. 解决方法: 将web.config中的 <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"/> 修改为 <serviceHost