WCF学习日记】的更多相关文章

图书馆借阅了<WCF高级编程>,从6.11开始学习wcf,希望尽快熟悉原理和编程模型以及常用编程方法.     WCF是一个平台,也是一个框架,从Net.3.0 就在Net framework(无需安装) .WCF将服务以SOA架构对外使用.SOA的宗旨就是让应用程序成为一个接口可以供其余程序使用.比如图书订单管理系统,订单履约系统,ship系统,会计系统,以及其它系统,每个都是一个独立的系统,但是彼此系统应该作为接口供别人使用,这样即使扩展了服务或者改善了服务也不会影响原先的体系架构和业务规…
       上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)           在上一篇文章中我们创建了WCF服务端应用程序,在这一篇文章中我们来学习如何创建WCF的服务端寄宿程序与客户端调用程序. 关于如何寄宿可以参考以下文章WCF学习之旅—WCF寄宿前的准备(八),WCF学习之旅—WCF服务部署到IIS7.5(九),WCF学习之旅—WCF服务部署到应用程序…
一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库已经建好了 所以我直接是 ”从数据库生成Code First“  如下图…
上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Framework 6.1.3.在解决方案资源管理器中——>在项目BookMgr.Model上鼠标右键单击——>弹出一个菜单,选中“管理解决方案的NuGet程序包”,打开NuGet程序包管理界面.如下图. 2)      在NuGet程序包管理界面中搜索 Entity,找到最新版本Entity Frame…
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. 六.创建项目BookMgr.Service的WCF服务代码 第一步.安装Entity Framework 6.1.3 1)  安装过程同上一篇文章中类似.使用NuGet下载最新版的Entity Framework 6.1.3.在解决方案资源管理器中——>在项目BookMgr.Service上鼠标右…
上接   WCF学习之旅—WCF寄宿前的准备(八) 四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以依靠IIS来管理宿主进程的生命周期.在开发和使用的过程与Web Service非常相似. 1) 为WCF服务创建.svc文件 对于ASP.NET Web Service的每个服务都具有一个.asmx文件,客户端通过访问.asmx文件实现对相应Web Service的调用.WCF服务与Web Serv…
上接  WCF学习之旅—WCF寄宿前的准备(八) WCF学习之旅—WCF服务部署到IIS7.5(九) 五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下图. (2)添加 System.ServiceModel.dll 的引用. (3)添加 WCF 服务类库(WcfServiceLib)的项目引用. (4)创建宿主程序,代码如下: using System; using System.Collections.Generic; using System…
上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样的优点,系统启动后,WCF服务也会跟着启动了,不用人工干预,也是一种较好的寄宿方式. (1) 在解决方案下新建控制台输出项目 WinServiceHosting.如下图. (2)添加 System.ServiceModel.dll 的引用. (3)添加 WCF 服务类库(WcfServiceLib)…
上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS7允许通过HTTP外的协议进行激活和网络通信.此环境适合开发可通过 WCF支持的任何网络协议(包括http.net.tcp.net.pipe.net.msmq)进行通信的WCF服务.部署简单.管理方便,这些网络协议在部署时可像Http一样,直接丢到IIS7上即可,我们在下面的例子中以net.tcp为…
上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) WCF学习之旅—WCF服务的WAS寄宿(十二) 九. 无svc文件服务激活的原理: 在WCF4.0里,通过提供一种虚拟的服务类型映射机制来实现WCF服务的激活.我们可以在配置文件里指定服务类型和相对地址之间的映射关系.这就使得我们可以在不是要.svc文件的情况下,在WAS/IIS里托管WCF服务程序. 1)     关于…
   上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九) WCF学习之旅—第三个示例之四(三十) 十.添加保存功能 在此步骤中,将在应用程序中添加书籍的保存功能,涉及两个功能“新增”与“修改”. 在解决方案资源管理器中,选中“FrmBook.cs”文件,在弹出的右键菜单中选择“打开”,或者使用鼠标左键双击. 在FrmBook.cs界面中,使用鼠标双击“保存”按钮与“…
止文(WCF学习之旅—TcpTrace工具(二十五))介绍了关于TcpTrance的一种使用方式,接下来介绍第二种使用方式. 三.通过ListenUri实现基于tcpTracer的消息路由 对于路由的实现,本质上就是实现逻辑地址和物理地址的分离.通过前面的示例介绍,我们了解,如何在客户端实现TcpTracer捕获客户端与服务端的通信信息.在这一章节中我们学习如能通过设置ListenUri实现基于服务端的TcpTracer的消息路由. 服务端的物理地址和逻辑地址的分离通过ListenUri实现,L…
前面的几篇文章,我们学习了怎么开发WCF应用程序与服务,也学习了如何进行WCF的配置.对于Web Service与WCF服务应用,服务端与客户端的通信是通过收发SOAP Message进行,我们如何有效而快速的获取通信信息呢?这就是本文要介绍的一个工具. 一.TcpTrace实现的基本原理 在对Web Service和WCF进行调试时,可以使用Soap Trace 工具对Soap Message进行深入捕获并进行分析.经常使用的工具有TcpTrace与Microsoft Soap Toolkit…
WCF学习之旅—实现REST服务(二十二) WCF学习之旅—实现支持REST服务端应用(二十三) 在上二篇文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,及创建一个支持REST的WCF服务端程序,本文介绍如何调用上一篇文章介绍的RestFul服务端. 五.Windows客户端调用 为了强调REST的通用性,客户端不用WCF的形式调用服务,而是采用HttpWebResponse通过编程方式直接访问,消息格式我们选XML. 首先,我们使用C#来封装一个RestHelper类…
在上一篇(WCF学习之旅—实现REST服务(二十二))文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,本文讲解一下如何创建一个支持REST的WCF服务端程序. 四.在WCF中创建REST服务 1. 在SCF.Contracts 在创建一个服务契约IBookRestService. 这里提供两个方法,分别采用GET和POST方式访问. 我们可以看到,与普通WCF服务契约不同的是,需要额外用WebGet或者WebInvoke指定REST访问的方式.另外还要指定消息包装样式和…
WCF学习之旅—请求与答复模式和单向模式(十九) WCF学习之旅—HTTP双工模式(二十) 五.TCP双工模式 上一篇文章中我们学习了HTTP的双工模式,我们今天就学习一下TCP的双工模式. 在一个基于面向服务的分布式环境中,借助一个标准的.平台无关的通信协议,使各个服务通过SOAP Message实现相互之间的交互.这个交互的过程实际上就是信息交换的过程.WCF支持不同形式的信息交换,我们把这称之为信息交换模式(Message Exchange Pattern(简称MEP),下同), 常见的M…
WCF学习之旅—请求与答复模式和单向模式(十九) 四.HTTP双工模式 双工模式建立在上文所实现的两种模式的基础之上,实现客户端与服务端相互调用:前面介绍的两种方法只是在客户端调用服务端的方法,然后服务端有返回值返回客户端:相互调用是指客户端调用服务端的方法,同时服务端也可以调用客户端的方法. 基于双工MEP (信息交换模式,Message Exchange Pattern,下同)消息交换可以看成是多个基本模式下 (比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具有一些变体,比如典型…
   WCF学习之旅—WCF中传统的异常处理(十六) WCF学习之旅—基于ServiceDebug的异常处理(十七) 三.基于Fault Contract 的异常处理 第二个示例是通过定制ServiceDebug来获取服务端的异常,但是这种方式只能用于Debug阶段.在我们的WCF应用发布之后,这种获取异常的方式无法在我们的工作环境中使用.我们必须找到一种异常处理方式可以在客户端获取相应的异常提示信息.那就是我们接下来要介绍的基于FaultContract的解决方案.我们知道WCF采用一种基于…
WCF学习之旅—WCF中传统的异常处理(十六) 二.基于ServiceDebug的异常处理 从前面的示例中,可以看到客户端捕获了异常,这是我们处理异常的前提.为了有利于我们进行有效的调试,WCF提供了ServiceDebug Service Behavior.我们可以通过设置<serviceDebug includeExceptionDetailInFaults="True" />属性设为true,那么如果服务端抛出异常,WCF会简单得包装这个异常并把它置于Soap中Res…
最近在学习WCF,打算把一整个系列的文章都”写“出来,包括理论和实践,这里的“写”是翻译,是国外的大牛写好的,我只是搬运工外加翻译.翻译的不好,大家请指正,谢谢了.如果觉得不错的话,也可以给我点赞,这样我翻译下去的动力就更足了~~~ 1. Beginning WCF - MUST HAVE WCF Basics - FAQs Series[WCF基础----问答系列教程] WCF Vs ASMX WCF Known Types WCF Contracts WCF Bindings Instanc…
最近需要用到WCF,所以对WCF进行了解.在实践中学习新知识是最快的,接下来先做了一个简单的WCF服用应用示例. 本文的WCF服务应用功能很简单,却涵盖了一个完整WCF应用的基本结构.希望本文能对那些准备开始学习WCF的初学者提供一些帮助. 在这个例子中,我将实现一个简单的书籍数据查询功能(BookService),即根据书籍ID去查询对应书籍的信息,并显示出来.和传统的分布式通信框架一样,WCF本质上提供一个跨进程.跨机器.跨网络的服务调用.在本例中,客户端和WCF应用服务通过运行在同一台机器…
二.WCF服务端应用程序 第一步,创建WCF服务应用程序项目 打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序.在弹出界面的“名称”对应的文本框中输入“SCF.WcfService”,然后点击“确定”按钮.如下图. 第二步 , 安装Entity Framework 1)  使用NuGet下载最新版的Entity Framework 6.1.3.在解决方案资源管理器中——>在项目SCF.WcfService上鼠标右键单击——>弹出…
三.创建客户端应用程序 若要创建客户端应用程序,你将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据. 在第一个步骤中,你将 Windows 窗体项目添加到解决方案中,并将其设置为启动项目. 第一步,创建客户端应用程序 在菜单栏上,依次选择“文件”.“添加”.“新建项目”. 在“添加新项目”对话框中,展开 “Visual C#”节点,选择“Windows”节点,然后选择“Windows 窗体应用程序”. 在“名称”文本框中,输入 WinClient,然后…
第五步,创建数据服务 在“解决方案资源管理器”中,使用鼠标左键选中“SCF.WcfService”项目,然后在菜单栏上,依次选择“项目”.“添加新项”. 在“添加新项”对话框中,选择“Web”节点,然后选择“WCF 服务”项. 在“名称”文本框中,输入 BookService,然后选择“添加”按钮.如下图. 4.Visual Studio 2015会同时添加一个IBookService接口文件.这个接口代码文件中的代码如下: [ServiceContract] public interface…
第五步:创建客户端 WCF应用服务被成功寄宿后,WCF服务应用便开始了服务调用请求的监听工作.此外,服务寄宿将服务描述通过元数据的形式发布出来,相应的客户端就可以获取这些元数据.接下来我们来创建客户端程序进行服务的调用. 1) 现在请先运行服务寄宿程序(Hosting.exe). 2) 在Visual Studio 2015的“解决方案资源管理器”中,把WinClient项目展开,左键选中“引用”,点击鼠标右键,弹出菜单,在弹出的上下文菜单中选择“添加服务引用(Add Service Refer…
第四步:通过自我寄宿的方式寄宿服务 WCF服务需要依存一个运行着的进程(宿主),服务寄宿就是为服务指定一个宿主的过程.WCF是一个基于消息的通信框架,采用基于终结点(Endpoint)的通信手段. 终结点主要由地址(Address).绑定(Binding)和协定(Contract)三要素组成,如图所示.由于三要素应为首字母分别为ABC,所以就有了易于记忆的公式:Endpoint = ABC.一个终结包含了实现通信所必需的所有信息.如下图. 终结点三要素 地址(Address):一个指示可以查找终…
--前言 最近各种事忙的把之前的WCF学习给耽误了一些,今天抽时间把之前的学习内容给总结了一下,因为知识点比较细碎没有做太多的练习示例,只是对其中关键的知识点做了总结,希望可以对大家有所帮助. 第六章 数据协定 6.1 数据协定的概述 默认的情况下WCF使用称之为数据协定序列化程序的序列化引擎对数据进行序列化和反序列化,所有的.NET Framework基元类型,如整型.字符串型,以及某些被视为基元的类型,如DateTime.XmlElement不需要做其他工作就可以被序列化,并被视拥有默认的数…
WCF学习心得----(五)生成客户端 1.    通过Svcutil.exe工具直接生成客户端 1.1     将服务承载于IIS上 1.1.1 在IIS中新建网站,所示效果如下图: 1.1.2   新建WCF应用程序,项目文档结构如下图: 1.1.3   选中项目,点击右键在资源管理其中打开文件,结构如下: 将上图中红框标记的文件拷贝至跟网站虚拟目录映射的物理路径下,一般都是在C盘,如下路径C:\inetpub\wwwroot 1.1.4 启动网站,并在浏览器中浏览,会看到如下的文档目录:…
WCF学习心得----(四)服务承载 这一章节花费了好长的时间才整理个大概,主要原因是初次接触这个东西,在做练习实践的过程中,遇到了很多的问题,有些问题到目前还没有得以解决.所以在这一章节中,有一个承载是没有例子的.仍在努力解决所在的问题,后续会把例子给补上的.好了,进入正题. 要变为活动状态,服务必须承载于创建它并控制它的上下文和生存周期的运行环境中.WCF有以下三种承载方式:在IIS中承载.在Windows进程激活(WAS)中承载.在托管应用程序中承载(自承载).下面就分别对这三种承载方式,…
前面一篇文章<WCF 学习总结1 -- 简单实例>一股脑儿展示了几种WCF部署方式,其中配置文件(App.config/Web.config)都是IDE自动生成,省去了我们不少功夫.现在回过头来看看IDE提供的Wcf Service Library项目模板中的默认服务端配置文件——App.config里面究竟有什么秘密. 服务端的配置文件主要是对services.bindings.behaviors的配置.在默认的App.config中,使用的是WCF Framework定义好的wsHttpB…