在我的《Winform开发框架》系列文章中,除了介绍Winform开发框架外,还详细介绍了基于Winform开发框架的WCF开发框架,WCF开发框架除了具有Winform程序的丰富体验,绚丽的界面外,还具备Web应用程序的分布式应用特点,数据库服务端配置而不用客户端操心等特点,而随着.NET4.0的出现,只有40多M的安装包,也确实为WCF应用的推广使用更加方便。由于WCF应用的分布式这个重要的特点,客户数据全部保存在服务端,因此也提高了数据的安全性,因此很多传统应用的场合都可以使用WCF技术的。本文主要介绍我近年来做WCF开发的案例应用进行总结,对一些问题进行共同探讨,共同进步。
刚开始由于工作需要,需要开发一个给各部门协作,录入数据、查询资料的小型MIS系统,由于有些人可能需要在外出的时候获取相关的数据,另外一方面,也需要利用Winform界面的良好体验和操作性能,因此选择WCF技术进行开发桌面应用程序,刚刚开始的摸索过程是比较痛苦的,一方面要考虑程序的顺利调用,一方面也要考虑对证书加密技术的应用提高数据的安全性,另外由于是分布式数据应用,因此,也需要考虑程序能够自动升级功能,以便我不断的更新部署。综上所述,解决上面的问题,基本能够建立一个较为完善的WCF应用了。当在其中还可能会碰到自动切换内外网功能、数据量大的配置修改,调用时间等方面的设置因素,这些可能最终都导致调用WCF没那么顺利。
下面是我开始的第一个内部跨部门的WCF应用案例。
由于我之前几年一直有开发一些各类型的Winform共享软件,经过多年的积累,逐渐形成我的比较成熟稳定的Winform开发框架,结合新探索研究的WCF技术应用,综合两者的特点,进一步提炼为我的WCF开发框架,这一步提炼虽然看似简单,实则也是整合了我的通用权限管理系统、通用字典管理模块、分页控件、公用类库等组件,把框架的数据基类进一步提炼,扩展并支持Oracle数据库、SqlServer数据库、MS Access数据库、Sqlite数据库等,这些基本上是日常开发,常碰到的数据库了,其他数据库扩展也很方便,集成一个总的数据库基类,然后重载几个特殊的函数即可。另外一方面,也把WCF开发框架应用分为了三个界面样式,传统界面样式、基于DotNetBar的界面样式、基于DevExpress界面控件样式,尤其是DevExpress样式,非常美观。
1) 基于传统界面样式
2)基于DevExpress界面样式
整个DevExpress界面样式的程序,在布局及控件使用上,都尽量采用常见美观的界面控件以及美观的图标,使得看起来更加美观大方。
一个朋友让我开发一个基于互联网的WCF应用,主要就是采集发布房产信息的,可供很多用户在各个地方进行使用,他们把数据集中放到一台租借的虚拟服务器上,有了之前提炼完善的WCF开发框架作为借鉴参考,这一切做起来还是很轻松,真是应了那句话,机会总是青睐有准备的人,呵呵。在这个项目开发总,很多技术问题,不用在反复尝试去解决,只需要集中精力,把他们重要的业务串联起来即可,顺便可以改善一些界面效果,也获得更多的积累,反哺我的WCF开发框架,使之更加精纯。
在这个软件的开发过程中,发现有些因素会导致接口调用出现错误的,如上传的图片字节比较大、返回的列表集合比较大等情况,会出现调用错误,其实这些都是因为配置参数的问题,修改即可避免,但是如果开始就知道避免,会减少反复调试的时间,提高开发效率。
过了不多久,由于共享软件中《病人资料管理系统》的使用老客户提出,需要改造目前基于Access单机版的病人资料管理系统为网络版,要求在各处办公的相关人员能够登录管理他们的病人治疗,从而实现多个部门之间的协作,因此我建议他们使用WCF技术部署客户端的应用,这样他们操作起来更加方便灵活,这样顺便可以有效利用我的WCF开发框架成功,他们要求各个不同级别的用户能够操作不同的模块,这些使用权限控制模块就搞定了,几乎可以不费吹灰之力,只需要在权限管理系统界面中定义好相关的功能、角色控制,并在软件中集成控制逻辑即可,这些都可以利用成熟的模式。俗话说,铁打的营盘,流水的兵,在纷繁变化的业务中,不可能要求一个框架包罗万象,不过基础框架搭建的好,底座较好,就像一个稳固的营盘,事半功倍。
在这两次项目演练过程当中,由于需要远程创建、维护数据库表,填入必要的基础资料等,而且还需要涉及提交图片资料作为数据库字段内容,以及提交图片附件保存到网站的相对目录中,因此也进一步丰富了相关的应用开发过程,罗马不是一天建成的,同样,很多东西,也需要逐步的积累完善,才更加精纯和稳靠。
在这次开发中,寻找发现了一个很好的图片查看控件,支持图片的反转、滚动放大缩小等操作,而且图片不用下载到本地,非常不错。
有好的WCF开发框架作为参考,项目做起来肯定会事半功倍,留一些精力做一些拓展性的研究及业务性开发,整体项目做起来就轻松稳妥很多。
在进行Winform开发或者WCF桌面应用的开发过程中,总体来讲,利用DevExpress可以做出更加丰富、绚丽的界面,虽然开始接触DevExpress控件有些不太习惯,不过用起来还是非常不错,因此做企业应用的时候,我们说服企业购买DevExpress的版权也是会得到
不少的支持的,比较大家都会比较喜欢好看一些的界面效果。
http://www.cnblogs.com/wuhuacong/archive/2011/09/22/2185619.html