学习WCF\WPF\EF技术(一)

序:最近到新公司要用到WCF\WPF\EF的技术,之前没有接触过从零开始学起,不知不觉过了将近一周的时间,期间遇到不少问题,很感谢我的两位面试官同时也是公司中的技术大哥给予我的耐心讲解和帮助.

   最先开始学习的是WCF技术,全称 WindowsCommunication Foundation, 是由微软发展的一组数据通信的应用程序开发接口可以翻译为Windows通讯接口,它是.Net框架的一部分,由 .NET Framework 3.0 开始引入,与 WindowsPresentation Foundation及 Windows Workflow Foundation并行为新一代 Windows操作系统以及 WinFX的三个重大应用程序开发类库.以上是引用baidu百科中对WCF介绍的一段文字.好了WCF的概念就介绍到这里,下面就从我开发中的实例中介绍些自己遇到的问题细节,示例要求是做一个用户管理信息系统,使用的是C/S方式,服务端不是数据库,是要通过服务器的Service(WCF)调用,Client端界面使用WPF制作.
   1.建立一个空的解决方案,取名为UserCMS_WCF_WPF
   
2.添加WCF服务库,为IIS托管做准备
--ps:在添加之前有段话要说,之所以是选择添加一个 WCF服务库 ,基本上是直接建立在Web项目中建立 WCF服务 ,进而实现IIS对WCF的托管,这种方式的缺点就是不利于以后项目的分离扩展.而选择添加 WCF服务库 的方法则恰恰实现了整体项目的松耦合.(推荐入门学习的资料《ProgrammingWCF Services》以及从网上搜的教程 WCF教程系列(1)-创建第一个WCF程序 \ WCF简单教程(1) 入门 \ WCF简单教程(5) 用IIS做Host )
在空解决方案中添加WCF服务库项目

先不做修改,进行下一步创建Web项目

3.添加WebApplication项目
这里要注意步骤,看图说话(>_<)

从菜单栏选择 "文件"->"新建项目"->"Web"->"Asp.net空Web应用程序",下边取好名称后在"解决方案"一栏中选择添加到解决方案

继续,在"Web"项目中添加对WCF服务库项目的引用(WCFService),并引入"System.ServiceModel",它是包含WCF绝大数功能的类库,此步为止Web项目引用类库如下图:



4.复制WCF服务库App.config文件中节点内容到Web.config文件中,并添加代码如:

           
               
           
       

其中,WCF.svc是自定义名称的"服务文件",其实在web项目中不真正存在名为WCF.svc的文件,因为我们可以将服务类型和地址信息直接应用于作为IIS托管的Web项目中Web.config的部分中,从而不使用.svc文件.而且我们可以根据自己的喜好定义更多类似这样的服务.

,继续删除\内节点内容,最后可通过WCF配置编辑器添加新绑定(wsHttpingBinding)

.以上步骤如图:
没有WCF服务配置编辑器的可以去"菜单栏"中,"工具"的下拉菜单去找.


选中"服务",在第一个终结点中单击"(默认)单击可创建"




在Name属性中输入自定义名称


我已将"WCFService"项目中自动生成的Service.cs和IService.cs文件重命名为UserCMSWCFService和IUserCMSWCFService. 其中service="WCFService.UserCMSWCFService"前部分是命名空间也就是"WCF服务库"项目的名称,在写这个属性的是一定要写全名(命名空间+类名)

需要注意的是,使用IIS托管WCF即WEB项目,应要设置True
"/>,否则客户端是无法通过http协议获取到服务的.

配置文件中的节点很重要,三个属性"abc",a:address="服务在哪",这里设为空,默认会IIS服务器的路径,b:binding="怎样访问服务,即通讯协议是什么",c:contract="提供的是WCF哪类服务",本项目中使用的就是ServiceContract.



如果配置正确,启动web项目,输入 服务器地址+刚刚在web.config文件中定义的WCF服务文件的名称,会出现如下图结果:





以上,基本完成搭建托管于IIS的WCF项目端.

以下是我这段时间在学习中搜集的学习资料,大家可以用搜索引擎搜索文件名及作者很容易就搜到了.非常感谢各个文章作者的分享.




 

你可能感兴趣的:(学习WCF\WPF\EF技术(一))