WCF全称为Windows Communication Foundation,是Microsoft平台上的SOA架构,用于构建分布式和可交互操作的应用程序。它统一ASMX, .NET Remoting, 与Enterprise Services的开发模型,为各种应用提供单一的编程模型,基于配置驱动的协议选择,消息格式,进程分配等。

开发环境:Visual Studio 2010 + NET Framework 4.0。

本章我们通过一个简单的DEMO来创建一个WCF程序。
1、打开VS2010,选择C#语言下的创建WCF程序,选中WCF Service Library,修改解决方案名称为HelloWCF与项目名称为HelloServiceLibrary,点击确定。
2、删除HelloServiceLibrary项目中生成的IService1.cs与Services1.cs文件。
3、新建IHelloWCF接口文件,代码如下:

//OperationContract为服务契约
[ServiceContract]
public interface IHelloWCF
{
//OperationContract为方法契约
[OperationContract]
string GetMessage(string msg);
}

4、新建HelloWCF文件,代码如下:

public class HelloWCF : IHelloWCF
{
public string GetMessage(string msg)
{
return string.Format("The server received message is : {0}", msg);
}
}

5、修改HelloServiceLibrary中的App.config文件:
修改服务名称为:<service name="HelloServiceLibrary.HelloWCF">
修改端契约为:<endpoint address="" binding="wsHttpBinding" contract="HelloServiceLibrary.IHelloWCF">
修改服务地址为:<add baseAddress="http://localhost:8732/Design_Time_Addresses/HelloServiceLibrary/HelloWCF/" />

配置如下

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<system.web>
<compilation debug="true" />
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<services>
<service name="HelloServiceLibrary.HelloWCF">
<endpoint address="" binding="wsHttpBinding" contract="HelloServiceLibrary.IHelloWCF">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8732/Design_Time_Addresses/HelloServiceLibrary/HelloWCF/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information,
set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="True"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>

</configuration>

6、新建控制台应用程序Client,添加Service Reference,修改名称空间为HelloServiceLibrary。

7、在Program类中的Main函数中添加代码。

代码

static void Main(string[] args)
{
Console.WriteLine("------------------HelloWCFClient Begin------------------");
HelloServiceLibrary.HelloWCFClient client = new HelloServiceLibrary.HelloWCFClient();

Console.WriteLine("The client sent message is :Hello WCF");
Console.WriteLine(client.GetMessage("Hello WCF"));

client.Close();

Console.WriteLine("------------------HelloWCFClient End------------------");
Console.ReadLine();
}

8、F5运行调试程序,在控制台上我们将看到客户端调用WCF服务端返回的结果。

------------------HelloWCFClient Begin------------------
The client sent message is :Hello WCF
The server received message is : Hello WCF
------------------HelloWCFClient End------------------

至此,一个简单的WCF应用程序创建完成了,下章将详细介绍WCF的契约设计。

点击下载DEMO。

作者:心海巨澜
出处:http://xinhaijulan.cnblogs.com
版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/xinhaijulan/archive/2010/10/07/1844903.html

WCF面向服务应用程序系列之一:Hello WCF相关推荐

  1. WCF面向服务应用程序系列之十:绑定-标准绑定(HTTP/TCP)

    上一章我们介绍了WCF绑定的自定义绑定,这一章我们通过一个DEMO来介绍如何创建一个基于HTTP或者TCP协议的程序.在绑定时,我们要指定WCF的地址:要为不在IIS里承接的服务指定基地址:要为所有相 ...

  2. 【培训稿件】构建WCF面向服务的应用程序(包含ppt,源代码)

    今天在整理电脑的时候,从目录中搜出了之前公司的培训演讲稿件,这个是我第一次在部门里面做内部培训,当时反映还不错.于是整理下这份稿件.大家如果有兴趣可以下载看看. 构建WCF面向服务的应用程序(ppt, ...

  3. WCF 面向服务的4个原则

    边界清晰 在面向服务里,服务可以与每个其它的服务通过消息交互.换句话说,服务可以穿越边界发送消息给其它服务.服务可以发送和接收消息,并且能被发送和接受的消息形状定义了服务的边界.这些边界被良好地定义, ...

  4. AJAX应用服务器端:面向服务与WCF

    WCF作为AJAX服务平台的优势                 WCF为启用AJAX的Web服务提供管道形式服务,并未服务器与客户端之间的通信提供了统一的编程模式.WCF运行环境非常灵活,它包含了能 ...

  5. 《WCF技术内幕》翻译2:《WCF技术内幕》绪论

    绪论 总述     服务是现代软件架构的一个主要部分,WCF是构建基于Microsoft Windows系统的服务程序平台.WCF编写的服务可以与其它供应商的服务交互(例如, IBM, BEA, an ...

  6. 我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的继承...

    当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对SOA,对面向服务产生误解.其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替. ...

  7. Sharepoin学习笔记—架构系列—Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1

    Sharepoin学习笔记-架构系列-Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1 Sharepoint服务是Sha ...

  8. [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店...

    原文:[.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店 一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Bytear ...

  9. 一起谈.NET技术,使用WCF实现SOA面向服务编程—— 架构设计

    SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是ser ...

最新文章

  1. Nginx 主要应用场景
  2. 强化学习gym库中的Pendulum-v1/CartPole-v1游戏介绍
  3. 青龙面板-傻妞sillyGirl xdd机器人频繁掉线解决方法
  4. 4、Flutter 采坑记录篇二_依赖库不兼容
  5. java get方法不序列化_Java中的Json序列化,不容忽视的getter
  6. 支付宝的架构到底有多牛逼?还没看完我就跪了!
  7. php tipask yii 单点登录_php实现单点登录实例
  8. LeetCode(268)——缺失数字(JavaScript)
  9. 谷歌不修用户泪流:已遭利用且影响所有安卓版本的严重 0day 漏洞 StrandHogg 详情遭曝光...
  10. c语言银行家算法模拟程序,银行家算法C语言模拟程序
  11. L1-051 打折 (5 分)—团体程序设计天梯赛
  12. 你知道地球上还剩多少石油吗?
  13. 斗战神总是显示连接服务器失败,全民斗战神怎么进不去 全民斗战神进不去的原因和解决办法...
  14. android screenshot流程,APP中,Screenshot的设计要领和各发布渠道的要求
  15. 杨老师课堂之基于注解的SSH整合案例
  16. html页面禁止竖屏,关于移动端页面强制竖屏的方法
  17. 搜狗微信爬虫获取文章信息
  18. 用新浪SAE免费搭建自己的应用
  19. 大数据告诉你:凌晨4点的中国人都在做什么?
  20. H5网页头部的声明应该是用 lang=zh 还是 lang=zh-cn?

热门文章

  1. 线程间通信及虚假唤醒
  2. C++虚函数与多态性
  3. STM32开发 -- 进制与字符串间的转换
  4. MPU6050开发 -- 卡尔曼滤波
  5. vysor原理代码实现(V2.0)
  6. FT到底值多少钱——再议Fcoin机制及估值模型
  7. IPFS:Filecoin和复制证明
  8. 一文看懂谷歌 NYC 算法与优化业务全景:三大项目组12个子领域详解(附重点论文下载)
  9. 【问链-EOS公开课】第七课 EOS 宪法草案与 BP 协议
  10. linux的模块化,GoboLinux 017 发布,模块化的 Linux 发行版