WCF - 基础介绍
2009-01-06 16:18
381 查看
1. 概念:
WCF(Windows Communication Foundation):一个用于创建和运行分布式系统的技术集合,使用它能创建安全的、可靠的、跨平台的分布式解决方案。它的面向服务的编程模型整合了.Net平台下以往全部的分布式开发技术,例如.Net Remoting,Asp.Net Xml Web Service,MSMQ,WSE,和Enterprise Service等,它可以支持跨应用程序域,进程,网络的进行数据通讯,而且能寄宿在诸如IIS,Windows Service,Console,Windows Application等多种宿主中。
2. 组成:
Contracts:类库项目,定义服务契约,应用System.ServiceMode程序集;
Services: 类库项目,提供WCF服务的实现。该项目中的所有WCF服务实现了定义在Contracts中相应的服务契约,所以Services具有对Contracts项目的引用;
Hosting: 控制台程序或其他应用程序,实现对定义在Services项目中的服务的寄宿,该项目需引用Contracts和Services两个项目和System.ServiceMode程序集;
Client: 控制台或其他应用程序模拟服务的客户端,该项目引用System.ServiceMode程序集。
3. 契约类型
服务契约、数据契约、消息契约和错误契约
4. WCF技术优势
常用的分布式技术有COM+、.NET远程技术(Remoting)、Web Service和微软消息队列服务,WCF技术将这些分布式技术整合为一个高效的API。常用的那些分布式技术只能解决项目开发中某个方面的问题,并且不同技术对平台要求不同。在项目中有时要使用到多种技术从而导致这些技术所提供的服务有重叠之处,并且整个项目的维护复杂性大大增加。WCF技术提供了一个完整统一的方案解决这些问题,它提供了一个用于访问各种分布式技术的通用API,并且增加了很多必要的服务。
5. 建立WCF程序
创建服务:由地址、契约、绑定三部分组成。
a.编写契约:其实是一个接口。
b.编写服务类型:是契约的实现。
创建宿主
a.添加引用: System.ServiceMode和WCF的服务WCFService
b.添加配置文件
c.编写宿主
编写客户端
a.添加服务引用
b.编写客户端代码
启动宿主,运行客户端程序。
引自:/article/1308585.html
参考:http://www.cnblogs.com/iamlilinfeng/category/415833.html
WCF(Windows Communication Foundation):一个用于创建和运行分布式系统的技术集合,使用它能创建安全的、可靠的、跨平台的分布式解决方案。它的面向服务的编程模型整合了.Net平台下以往全部的分布式开发技术,例如.Net Remoting,Asp.Net Xml Web Service,MSMQ,WSE,和Enterprise Service等,它可以支持跨应用程序域,进程,网络的进行数据通讯,而且能寄宿在诸如IIS,Windows Service,Console,Windows Application等多种宿主中。
2. 组成:
Contracts:类库项目,定义服务契约,应用System.ServiceMode程序集;
Services: 类库项目,提供WCF服务的实现。该项目中的所有WCF服务实现了定义在Contracts中相应的服务契约,所以Services具有对Contracts项目的引用;
Hosting: 控制台程序或其他应用程序,实现对定义在Services项目中的服务的寄宿,该项目需引用Contracts和Services两个项目和System.ServiceMode程序集;
Client: 控制台或其他应用程序模拟服务的客户端,该项目引用System.ServiceMode程序集。
3. 契约类型
服务契约、数据契约、消息契约和错误契约
4. WCF技术优势
常用的分布式技术有COM+、.NET远程技术(Remoting)、Web Service和微软消息队列服务,WCF技术将这些分布式技术整合为一个高效的API。常用的那些分布式技术只能解决项目开发中某个方面的问题,并且不同技术对平台要求不同。在项目中有时要使用到多种技术从而导致这些技术所提供的服务有重叠之处,并且整个项目的维护复杂性大大增加。WCF技术提供了一个完整统一的方案解决这些问题,它提供了一个用于访问各种分布式技术的通用API,并且增加了很多必要的服务。
5. 建立WCF程序
创建服务:由地址、契约、绑定三部分组成。
a.编写契约:其实是一个接口。
namespace WCFService { [ServiceContract] public interface IService { [OperationContract] string DoSomething(); } }
b.编写服务类型:是契约的实现。
namespace WCFService { public class Service : IService { public string DoSomething() { return "This is my first WCF Project!"; } } }
创建宿主
a.添加引用: System.ServiceMode和WCF的服务WCFService
b.添加配置文件
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <services> <service name="WCFService.Service" behaviorConfiguration="ServiceBehavior"> <host> <baseAddresses> <add baseAddress="http://localhost:8001/Services/" /> </baseAddresses> </host> <endpoint address="Service" binding="basicHttpBinding" contract="WcfService.IService" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="ServiceBehavior"> <serviceMetadata httpGetEnabled="true" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> </configuration>
c.编写宿主
using System.ServiceModel; namespace ServiceHost { class Program { static void Main(string[] args) { using (ServiceHost host=new ServiceHost(typeof(WCFService.Service))) { host.Open(); Console.WriteLine("WCF Services start!"); Console.ReadKey(); host.Close(); } } } }
编写客户端
a.添加服务引用
b.编写客户端代码
namespace UserClient { class Program { static void Main(string[] args) { using (WCFServices.ServiceClient client = new WCFServices.ServiceClient()) { string result = client.GetData(); Console.WriteLine("WCF Result!"); Console.ReadKey(); } } } }
启动宿主,运行客户端程序。
引自:/article/1308585.html
参考:http://www.cnblogs.com/iamlilinfeng/category/415833.html
相关文章推荐
- Android基础ConstrainLayout约束布局的介绍和使用
- #Java基础语法#(1)Java介绍及环境搭建
- Maven2基础介绍
- Nodejs基础:stream模块入门介绍与使用
- SORC基础介绍
- TCP/IP协议基础之二(TCP/IP协议介绍)
- 大数据生态系统基础:Apache Kafka基础(一):介绍和安装
- 廖雪峰Python教程阅读笔记——1. Python基础介绍
- 8天入门wpf—— 第一天 基础概念介绍
- android开发学习---linux下开发环境的搭建&& android基础知识介绍
- JAVA基础知识介绍,不断更新
- (4)Android入门——android四大组件基础介绍及打电话,发短信简单应用 &单元测试
- cocos基础教程(5)数据结构介绍之cocos2d::Map<K,V>
- Android基础入门教程——10.10 传感器专题(1)——相关介绍
- 【转】C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用
- Android基础之BottomSheet的介绍和使用
- Git基础(常用命令)介绍
- Core Animation之基础介绍
- Linux基础之加密原理及SSL的简单介绍
- [java相关]Java基础知识——JNI入门介绍(上)