1.首先我罗列一下网站搜索并经过自己理解的WCF的含义:

1)WCF:(WIndows Communication Foundation)是由微软是由微软发展的一组数据通信的应用开发接口,可以翻译为Windows通讯接口,
             最终目标是通过进程或不同的系统、通过本地网络或是通过Internet收发客户和服务之间的消息,专门用于面向服务开发(SOA)

2)WCF整合了.NET远程技术(Remoting)、Web Service和微软消息队列服务等技术,它可以跨进程、跨机器、跨平台、跨子网、企业网乃至于 Internet

2.下面我新建一个WCF服务:

在visual studio 2012中新建项目,做如下图操作

删除系统生成的两个文件IService1.cs与Service1.svc,并且“添加新项”-->"WCF服务",命名User.svc,结果如下图

打开IUser.cs文件,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel; //必须
using System.Text; namespace First_Wcf
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IUser”。
[ServiceContract] //来说明接口是一个WCF的接口,如果不加的话,将不能被外部调用
public interface IUser
{
[OperationContract] //来说明该方法是一个WCF接口的方法,不加的话将不能被外部调用
string ShowName(string name);
}
}

打开User.svc,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel; //必须
using System.Text; namespace First_Wcf
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“User”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 User.svc 或 User.svc.cs,然后开始调试。 public class User : IUser
{
public string ShowName(string name)
{
string wcfName = string.Format("这是WCF服务,你输入的姓名是:{0}",name);
return wcfName;
}
}
}

程序写好了,下面测试看对不对。F5启动项目后出现下图弹出框

双击“ShowName()”,得到下图

在上图右侧把“(null)”修改为张三得到下图

到这一步说明WCF服务程序没有错误。

3.新建windows窗体应用程序,用来调用服务

窗体程序Test_First_Wcf如图并且设置为启动项目

右键“引用”,添加“服务引用”,出现下图弹出框

如果之前的WCF服务已经部署到IIS上的话,可以在地址栏中输入地址就可引用,现在我没有部署,所以点击“发现”得到下图

点击确定即可


在窗体文件Form1中拖来如下控件,Label2用来显示结果,所以把Label2的Text设为空

后台程序如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace Test_First_Wcf
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
ServiceReference1.UserClient uc = new ServiceReference1.UserClient();//实例化服务 string name = this.textBox1.Text; this.label2.Text = uc.ShowName(name);
}
}
}

F5运行程序如下

很简单的程序,WCF踏出了第一步,我将继续努力!!

我的第一个WCF程序,很简单适合我等菜鸟的更多相关文章

  1. 跟我一起学WCF(4)——第一个WCF程序

    一.引言 前面几篇文章分享了.NET 平台下其他几种分布式技术,然而前面几种分布式技术专注于某一特定的领域,并且具有不同编程接口,这使得开发人员需要掌握多个API的使用.基于这样的原因,微软在.NET ...

  2. WCF入门教程2——创建第一个WCF程序

    本节目标 掌握接口 理解契约式编程 创建宿主程序 创建客户端程序访问服务 什么是接口 认识一下接口 必须知道的接口特性 接口不可以被实例化(常作为类型使用) 实现类必须实现接口的所有方法(抽象类除外) ...

  3. 建立第一个wcf程序

    使用管理员权限启动vs (否者将导致ServiceHost开启失败 权限不足) 1.创建一个空的控制台程序 2.添加程序集引用 System.ServiceModel 3.写入一些代码 如下 usin ...

  4. WCF学习笔记(一)---我的第一个WCF程序

    一.创建WCF程序   1.创建一个控制台程序(WCFBlog)   2.添加wcf项目   3.将默认的IService1和Service1改成自己的名字   4.在ICalculateServic ...

  5. 一个神奇却很简单的css特效

    在网上看到一个前端大牛的主页,觉得他有一个特效特别酷,一开始还以为是要用什么javascript代码来实现,但仔细看一下,发觉只是用几行css代码就搞定了,我觉得挺好的. 他这个效果就是鼠标放在左半部 ...

  6. 我的第一个WCF程序

    写WCF,VS需要一管理员身份呢启动,否则服务无法访问. model层 using System; using System.Runtime.Serialization; namespace MyMo ...

  7. 第一个WCF程序

    WCF的服务需要寄宿在进程中,我们把服务端的叫做宿主,为服务指定宿主指定的过程叫服务寄宿.有两种方式一种是自我寄宿(Self-Hosting),一种是IIS寄宿方式.Self-Hosting我们通过一 ...

  8. 我的第一个unity3d Shader, 很简单,基本就是拷贝

    Shader "Castle/ColorMix" { Properties { // 基本贴图 _MainTex ("Texture Image", 2D) = ...

  9. 如何建立一个WCF服务并将其发布到IIS上

    在我们的软件开发中,经常会连接到数据库中,如果是常规的操作,我们经常会将连接数据库的字符串写在配置文件中,然后去读取数据库的连接字符串,其实这种方式是非常不科学的,这会直接暴露我们的数据库,直接暴露我 ...

随机推荐

  1. UOJ#35 后缀排序

    这是一道模板题. 读入一个长度为 n 的由小写英文字母组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置.位置编号为 1 到 n. 除此之外为 ...

  2. placeholder在不同浏览器下的表现及兼容方法

    1.什么是placeholder?    placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或 ...

  3. 李洪强-C语言关键字、标识符和注释

    一.关键字 C语言提供的有特殊含义的符号,共32个. 在Xcode中关键字全部高亮显示,关键字全部都为小写.如return.int等. 二.标识符 定义:标识符是程序员在程序中自定义的一些符号和名称. ...

  4. iOS开发项目之四 [ 调整自定义tabbar的位置与加号按钮的位置]

    自定义tabbar与按钮的添加 01 - 把系统的tabbar用我们自己的覆盖 LHQTabBar *lhqTabBar = [[LHQTabBar alloc]init]; [self setVal ...

  5. html5文章 -- 使用 jQuery Mobile 与 HTML5 开发 Web App ——开发原则 | Kayo's Melody

    最近专注研究 jQuery Mobile —— 一款很方便就可以把 Web App 包装成适合 Android 与 iPhone 等触屏移动设备的 Javascript 库,结合 jQuery Mob ...

  6. 转simhash与重复信息识别

    simhash与重复信息识别 在工作学习中,我往往感叹数学奇迹般的解决一些貌似不可能完成的任务,并且十分希望将这种喜悦分享给大家,就好比说:“老婆,出来看上帝”…… 随着信息爆炸时代的来临,互联网上充 ...

  7. PHP 错误与异常 笔记与总结(3)PHP 配置文件(php.ini)中与错误相关的选项 与 设置错误级别

    [PHP 配置文件中与错误相关的选项 ] 选项 描述 error_reporting 设置错误报告的级别 display_errors 是否显示错误 log_errors 设置是否将错误信息记录到日志 ...

  8. thread、operation、GCD

    // ViewController.m #import "ViewController.h" @interface ViewController () { //任务队列,能够自动管 ...

  9. Flink - Juggling with Bits and Bytes

    http://www.36dsj.com/archives/33650 http://flink.apache.org/news/2015/05/11/Juggling-with-Bits-and-B ...

  10. Freemarker的初次使用之FTL标签嵌套与map的使用

    入职第二周了,在熟悉了公司自动化测试脚本的编写(使用什么数据库,使用哪种语言,框架带了哪些方法)后,现在开始熟悉模拟器,我们把请求发到服务器1,服务器1根据请求参数处理后将结果发给模拟器,模拟器根据服 ...