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

  菜菜刚开始接触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服务。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端技术总结

基于iframe的跨域与更新父窗体地址栏的解决方案

管理平台前端页面需要在当前前端框架结构基础上,在顶级导航中增加两个模块:首页、运维管理模块,以此接入运维平台提供的页面。在访问到内部某个页面后,希望父窗体的地...

2.2K135
来自专栏Crossin的编程教室

[Hexo]部署博客及更新博文

本系列其它文章: 用 GitHub + Hexo 建立你的第一个博客 将本地文件部署到 GitHub 修改 Hexo 中的 _config.yml 文件 在...

3539
来自专栏信安之路

绕过内容安全策略总结

今年的 0CTF 预选赛 6 道 web 题,其中三道都涉及 CSP 的知识点,简直可怕。。。这次趁着空闲时间就稍稍总结一下 CSP 绕过方面的知识,无论是对以...

2380
来自专栏Java成神之路

Java微信开发_Exception_03_errcode:48001 errmsg:api unauthorized hint

异常信息:errcode:48001 errmsg:api unauthorized hint

1384
来自专栏向治洪

node.js基本工作原理及流程

概述 Node.js是什么 Node 是一个服务器端 JavaScript 解释器,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动,...

7516
来自专栏前端杂货铺

XSS分析及预防

XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行。在WEB前端应用日益发展的今天,XSS漏洞尤其容...

3597
来自专栏用户2442861的专栏

存储过程的优缺点

http://blog.csdn.net/jackmacro/article/details/5688687

1722
来自专栏bboysoul

使用zabbix监控esxi

重要的事情说三遍,在我的计划中使用zabbix监控的东西有下面这些,一个是监控dell r410 服务器,一个是监控dell r410 上的esxi主机,一个就...

7732
来自专栏云飞学编程

python爬虫零基础入门——反爬的简单说明

之前在《如何开始写你的第一个python脚本——简单爬虫入门!》中给大家分享了一下写一个爬虫脚本的基本步骤,今天继续分享给大家在初期遇到的一个很烦人的问题——反...

993
来自专栏aCloudDeveloper

Linux探秘之用户态与内核态

一、 Unix/Linux的体系架构 ?   如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一...

2398

扫码关注云+社区

领取腾讯云代金券