WCF
WCF可以理解为WebService的升级版, 能够通过配置兼容WebService,同时又拥有一些WebService不具备的优势,比如:
1)WCF可以不依赖于IIS(在VS环境下)
2)WCF 支持多种通信协议 Http/Https 、TCP/UDP、MSMQ、命名管道、对等网、消息可达性、事务流等
3)WCF 安全性要强:支持对称安全、非对称安全、消息安全、传输安全、SSL 流安全、Windows 流安全等
4)WCF支持多种格式化方式。DataContractSerializer、XmlSerializer、 DataContractJsonSerializer
以下基本概念应该清楚:
- 契约(CONTRACT)
WCF使用契约来定义“服务端”与“客户端”之间“服务”及“数据”等内容的格式,一般来说,主要包括服务契约,数据契约,消息契约,错误契约等, 契约的声明应当是建立WCF服务的第一步
- 服务的功能实现(ServiceBehavior)
实现WCF服务中的具体功能, 以实例应用为例,需要在SilverLight中调用WCF服务访问Oracle数据库,那么就需要实现访问数据库的功能,以及根据用户传入的参数,返回结果的功能
- 寄宿(Host)
Service中,仅有功能的实现,但要使得WCF服务能够被网络上的其它客户端访问到,还需要经过一个寄宿的过程,通过这个过程,WCF将获得一个可访问的地址,能够被其它程序所访问。 除地址之外,在寄宿过程中,还可以配置WCF的许多属性(服务描述 Service Description),比如通信协议,服务类型等 WCF不仅可以通过IIS来寄宿服务,还可以通过其它方法,例如将WCF寄宿到EXE中,执行EXE文件来开启WCF服务
- 客户端访问(Client)
通过寄宿这一过程,WCF获得了一个可访问的服务地址,客户端可以通过访问这个服务地址,调用其中的功能
Hello World
一、新建
【Visual C#】=>【WCF】=》【WCF service application】 新建一个项目。
二、运行
什么都不用管。直接在项目中【Service1.svc】上右键=>【在浏览器中查看(Google Chrome)】。然后你可以看到:
嗯。就这样。
三、客户端
运行好了服务端。我们随便建立一个客户端测试一下。
【Visual c#】=》【控制台应用程序】
新建完之后。项目右键=》【添加】=》【服务引用】
四、调用
修改控制台应用程序,Program.cs
修改如下:
class Program
{
static void Main(string[] args)
{
ServiceReference1.Service1Client service = new ServiceReference1.Service1Client();
Console.WriteLine(service.GetData(1314));
Console.Read();
}
}
直接运行,命令行打印如下
You entered: 1314