WPF架构服务与端客户端介绍

WPF架构服务与端客户端介绍

WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
除此之外我们WPF应用程序又分为客户端和服务端,客户端是给客户用的,能对数据进行操作,而服务端则是程序员维护逻辑代码的地方,一般不交由客户管理,客户端与服务端分开管理能有效地维护逻辑代码;
一个WPF应用程序是客户端—服务端—数据库紧密联系的,客户端请求服务,然后服务器到数据库查询数据,再返回服务端,服务再返回客户端。这个过程就像我们去银行存取现金一样,我们要把自己的要求告诉前台人员,前台人员再根据我们的需求(取钱),到账房进行相应操作(取钱给客户)。下面就以我最近学习的WPF架构的客户端与服务端的连接关系吧!
首先我们的先创建一个WPF应用程序项目,这个就不多做介绍了,创建好的这个WPF应用程序就是我们的客户端,在里面编辑窗体和具体方法,如图所示;

这是客户端的登录页面
WPF架构服务与端客户端介绍
接着就是创建服务端了,服务端那边创建一开始并非直接创建服务端类,我们在新建项目时就需要新建一个类库命名为BLL,其实这就跟我们的Winform窗体应用程序类似了,都要创建BLL(逻辑层),DAL(数据层);不同的是,WPF的界面层是在客户端写的,所以服务端这边就不用创建UIL层了,而是通过服务WCF服务连接客户端的;
1、首先创建 一个类库(BLL),如图
WPF架构服务与端客户端介绍

2、第二步就是创建在刚刚创建好的项目里再新建一个类库(DAL),在DAL新建一个类(DALMethod)用于封装连接数据库以及对数据库进行处理的方法;
3、第三步就是新建一个WCF服务应用程序(WcfService),用于连接客户端,建好的服务端如图所示:
WPF架构服务与端客户端介绍

另外服务端的各个层之间有层与层之间应用服务层(WcfService)引用逻辑层(BLL),逻辑层引用数据层(DAL),数据层(DAL)连接数据库,客户端与服务层连接;
如上图,我在DLL 里新建了一个查询登录类Login.cs,要想客户端调用到我的查询登录方法需要在这个类前面定义服务契约(ServiceContract),然后在方法体前定义操作契约(OperationContract),如图所示
WPF架构服务与端客户端介绍
WPF架构服务与端客户端介绍
做好上面的准备工作就要配置服务了,一定要注意把服务层设置为启动项,然后在服务层下面的Web.config单击鼠标右键选择“编辑WCF配置”进入配置服务窗口;
首先在高级—服务行为里面的行为命名为BLL;
WPF架构服务与端客户端介绍
其次给行为里面的堆栈元素修改默认配置,这个很重要;把serviceMetadata 默认的配置依次改为True,False,Default;把serviceDebug默认配置改为True,True,True;
接着就是新建服务了:
点击服务,然后在窗体右边点击新建服务,点击浏览,进入目录之后,点击右上角的返回上一层目录依次点击\BLL\bin\Debug\BLL.dll文件夹就可以找到服务类型了,如图 因为我在BLL创建的类是Login;选中Login双击它进入新增,然后一直点击下一步,调到终结点地址时把终结点地址清空继续下一步,弹出框点击是,点击完成;

WPF架构服务与端客户端介绍
WPF架构服务与端客户端介绍
新建好服务后回到配置里,点击刚创建好的服务BLL.Login,给BehaviorConfiguration 选择附属项BLL,复制一下Name名称BLL.Login;然后点击高级,点击下面的宿主环境的serviceActivations,在里面新建一个工厂,把刚复制的服务名称粘贴到Service上,把刚复制的服务名称加上后缀.svc粘贴在RelativeAddress;复制RelativeAddress项的内容点击确定完成服务配置;
WPF架构服务与端客户端介绍
完成服务配置后就要验证服务了,启动服务端应用程序,加载成功后就把刚刚复制RelativeAddress项里面的内容粘贴到浏览器末尾,单击回车如果跳到下面页面则配置成功了;

WPF架构服务与端客户端介绍
最后我们到我们的客户端项目里添加服务应用,把从刚刚启动的服务项目运行的网页复制链(http://localhost:3927/BLL.Login.svc)接拷贝添加服务的地址项上,点击转到,如果能找到服务说明链接服务器成功了,接着就改一下命名空间名称确定就可以了;然后客户端要访问服务端的方法就实例化一下刚刚引用的服务就可以了,因为我这里引用的时BLL.Login方法所以我实例化的代码如下:
BLL.Login.LoginClient myLoginClient = new BLL.Login.LoginClient();
这样你就可以访问服务端了,实现服务端处理完成数据返回客户端了;
下图是添加服务引用窗体
WPF架构服务与端客户端介绍
本次总结不够详细,有问题的可以留言,定竭力解决;