菜菜从零学习WCF一(WCF概述)

简介:   菜菜刚开始接触WCF,一切都要从零开始,所以在此也记下笔记,以作日后翻看,大家也可以多多指点。   在了解WCF概述之前,我们也先来了解一下,在WCF版本还未进行发布之前,都是使用的什么技术呢? Asp.Net Web 服务(ASMX)   这种技术用于与基于J2EE的现有预定应用程序,以及与Internet上的合作伙伴应用程序进行通信。

  菜菜刚开始接触WCF,一切都要从零开始,所以在此也记下笔记,以作日后翻看,大家也可以多多指点。

  在了解WCF概述之前,我们也先来了解一下,在WCF版本还未进行发布之前,都是使用的什么技术呢?

Asp.Net Web 服务(ASMX)

  这种技术用于与基于J2EE的现有预定应用程序,以及与Internet上的合作伙伴应用程序进行通信。因此目前大多数平台都支持基本的Web服务,所以在WCF发布之前,这是实现跨供应商互操作性的最直接的方法。

Asp.Net FrameWork远程处理

  远程处理专门为紧密耦合的.NET到.NET通信而设计,因此它为本地网络中的应用程序提供了无缝而直接的开发体验。

企业服务

  该技术可用来管理对象的生存期和定义分布式事务,在与应用程序进行通信和集成时,这些功能会很有用。但是企业服务仅支持有限的一组通信选项。

WSE(ASMX的加强版)

  可与ASMX一起使用,以便与基于J2EE的预定应用程序以及合作伙伴应用程序进行通信,它实现了最新定义的一些Web服务协议(统称WS_*规范),因此只要相关所有应用程序都支持这些新规范的兼容版本,WSE就可提供更加灵活的Web服务安全性。

Microsoft消息队列(MSMQ)

  用于与基于Windows的合作伙伴应用程序进行通信,这些应用程序对数据传送、工作量分离以及应用程序生存期均要求有保证。消息队列提供持久稳定的消息传送,这通常是间歇式连接的应用程序的最佳解决方案。

那么如果使用WCF:

  WCF可使用Web服务进行通信,因此与同样支持SOAP的其他平台(例如基于J2EE的主流应用程序服务器)建的胡曹祖行就变得简单明了。

  还可以对WCF进行配置和扩展,以便与使用并非基于SOAP的消息(例如RSS这种简单的XML格式)的Web服务进行通信。

  性能是大多是业务中至关重要的考虑事项,开发WCF的目标就是要使之成为Microsoft所开发的速度最快的分布式应用程序平台之一。

  当通信双方都简历在WCF上时,为获得最理想的性能,可使用线上编码这是XML信息集的一个优化的二进制版本。消息仍遵循SOAP消息的数据结构,但其编码使用该数据结构的二进制表示形式,而不是XML1.0文本编码的标准尖括号加文本格式。

  管理对象生存期、定义分布式事务以及企业服务的其他方面的功能现在可以由WCF来提供。任何基于WCF的应用程序都可以使用这些功能。

  WCF支持一个大的WS_*规范集,因此可在同样支持这些规范的任何其他平台进行通信时帮助提供可靠性、安全性和事务。

  建立在消息队列上的WCF排队消息选项使应用程序能够使用持久的排队,而无需使用另外一组应用程序编程接口。

综上所述WCF就是:

  提供统一的,可用于建立安全、可靠的面向服务的应用的高效开发平台。WCF将Web服务的概念直接映射到.Net Framework公共语言运行库(CLR)中的对应内容,包括将消息灵活且可扩展地映射到用诸如Visual C#或Visual Basic等语言实现的服务。该服务模型提供支持松散耦合和版本管理的序列化功能,并提供与注入消息队列(MSMQ)、COM+、Asp.Net Web服务、Web服务增强版(WSE)等现有.NET FrameWork分布式系统技术以及很多其他功能的集成和互操作性。

下面我们来简单的创建并调用WCF服务。

1.打开VS开发工具,然后文件→新建项目,再选择WCF服务库如果所示

点击确定后,那么简单的WCF服务即创建成功。直接F5就可看到

 

可进行服务的测试,简单测试成功后我们可创建另外的应用程序来进行调用。那么我们来创建一个简单的WinForm应用程序吧。

   添加了一个按钮用于进行调用WCF服务的,右侧有个引用可右击

进行添加服务引用

然后点击发现那么就会搜索出现在解决方案中存在的服务,下面命名空间就是客户端生成对应的名称。

点击按钮添加调用代码

        private void button1_Click(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client sc = new ServiceReference1.Service1Client();
            MessageBox.Show(sc.GetData(1111));
        }


最后将WinForm项目设为启动项,F5运行项目,点击按钮

那么到此第一个WCF服务的创建到调用就实现了。

第一课我主要了解了什么是WCF服务,以及创建了最简单的WCF服务。

 

目录
相关文章
|
12月前
|
网络协议 网络架构 Windows
框架学习——WCF框架
框架学习——WCF框架
256 0
|
安全 C#
WCF技术我们应该如何以正确的方式去学习掌握
一、WCF技术我该如何学习?       阿笨的回答是:作为初学者的我们,那么请跟着阿笨一起玩WCF吧,阿笨将带领大家如何以正确的姿势去掌握WCF技术。由于WCF技术知识点太多了,就纯基础概念性知识都可以单独出一本书来讲解,本次分享课程《C#面向服务编程技术WCF从入门到实战演练》开课之前,阿笨还是希望从没了解过WCF技术的童鞋们提前先了解一下WCF技术,至少要明白WCF技术的ABC三要素分别指的是什么。
1181 0
跟着Artech学习WCF扩展(1) Binding进行通信
这个demo简单 就一个服务器段的一个客户端的 主要是注释 Server的 using System; using System.Collections.Generic; using System.
698 0
|
机器学习/深度学习 消息中间件 开发框架
跟着Artech学习WCF(4) MSMQ 绑定
曾几何时 再看大家讨论各种构架时,经常出现在各个服务器间传递数据,经常出现MSMQ, 那是看到这个心理就郁闷,怎么整天折腾ASP.NET 就没遇见过这个东西 原来这个家伙藏在WCF里面 嘿嘿这次被我发现了 首先 第一次装IIS的话 默认是没有安装msmq 所以需要自己安装的   看Art...
797 0
|
XML 网络架构 数据格式
跟着Artech学习WCF(5) Responsive Service 与自定义Soap Message Header
记得以前看.NET各类框架教程在介绍SOAP时经常提到Soap Header 以前一直认为这个玩意就是个理论 应该和具体的编码和应用无关 后来在看到一些关于SOAP安全的书可以在header里 进行加密解密信息的存储 用于安全方面的验证 但一直苦于这个玩意到底是神马东西,一直没见过代码,今天A...
688 0
|
存储
跟着Artech学习WCF(3) wcf 的状态问题
开始以为是wcf的session问题 敲了一边代码发现里面没有用session存储数据 经过 自己研究才发现作者是再将wcf的状态存储问题 项目结构如下   代码如下 using System; using System.
695 0
|
网络协议 安全 Windows
跟着Artech学习WCF(1)
折腾了老半天双向通信,不是端口绑定不上 就是创建代理失败要摸是 代理没有及时关闭Artech的代码看了半天无论是照抄还是改良都是不行,无奈到处看看test最后终于解决了 绑定协议现在只试了http还没有事tcp的 项目结构图如下   目前感觉客户端的调用部分代码很多不 来自博客园地址忘了呵呵     代码如下 using System; using System.
637 0
|
安全 Windows
跟着Artech学习WCF(2) netTcpBinding 绑定
netTcpBinding 绑定真是坑爹啊 因为一直围绕着iis的缘故 很少搞这个东西,这次计划系统的学习WCF 才搞的 没搞不知道一搞晕菜 配置了半天才弄好 最晕菜的是在省城代理类时 的地址 更晕菜 这次配置OK了 保存一下 以备他日不时之需 首先netTcpBinding是服务器端的配...
760 0
|
XML 数据格式
跟着Artech学习WCF 省的看书没环境没心情尤其没有看书的环境只有上网的环境
Artech的 我的WCF之旅(1):创建一个简单的WCF程序 http://www.cnblogs.com/artech/archive/2007/02/26/656901.html   以前自己练习WCF是总是通过创建客户端代理类和实现所有东西都是放在创建WCF的项目里面,WCF的地址(A...
877 0