WCF开发框架形成之旅---终极WCF框架是什么样子的

前面几篇WCF框架的文章,一直是介绍我的WCF框架的形成中的知识,期间虽然我在工作项目中已经成功运用各种WCF的概念及特性,而且是多个部门之间的数据管理系统,基本上WCF框架的雏形已经形成了,不过我一直想把我成熟的Winform开发框架,提炼整合到WCF框架上,这样在成熟的Winform框架基础上应用的WCF技术,才是我整个WCF开发框架的终极形式,虽然项目时间很紧,但业余空闲时间我一直未曾停步,前阵子通宵达旦完成,并经过多番测试,今天有幸和大家分享一下这个WCF框架的真面目及其中的一些经验总结。

整个终极的WCF框架和Winform一样,整合了权限控制管理、字典管理模块、公用类库、通用程序自动更新等模块,具备良好的界面布局和分布式服务应用的特点,支持数据分页、数据导入、Excel导出、支持多界面样式、支持闪屏、热键控制、多数据库支持,并且和代码生成工具Database2Sharp紧密结合等等特点,不一一尽数。

前面几篇介绍了WCF相关的开发知识,如果有兴趣可以浏览下:

WCF开发框架形成之旅--WCF应用常见问题处理 

WCF开发框架形成之旅--如何实现X509证书加密 

WCF开发框架形成之旅--您的数据是否需要加密 

基于我的Winform开发框架扩展而成的WCF开发框架 

基于Winform框架改造而成的WCF框架分层结构如下所示,首先我们在界面UI层和业务逻辑BLL层插入一层WCF服务层,界面层UI不再业务层BLL打交道,而是代之以WCF服务层的客户端代理类打交道,而WCF服务层则是BLL层更进一步的包装,设计图如下所示。

 

整个WCF框架的项目工程如下所示,其中展开的是服务层,把所有项目中涉及到的业务类,公布为WCF服务层,如果系统设计数据比较敏感,可以采用证书加密传输,或者通过其他加密方式,具体可以参考我的随笔《WCF开发框架形成之旅--如何实现X509证书加密

 

上图把数据合约类(或者实体类)放到一个独立的层,这个是无奈之举,因为我的业务类之间有一些公用的实体类信息需要传输,如果把他整合到服务层,那么就会发生命名冲突的问题,这样把数据合约类(或者实体类)独立成工程项目作为引用,就能够解决该问题。

本WCF框架中的WHC.WareHouseMis层是业务逻辑层,包含业务逻辑、数据访问层在内的整个模块,其中支持SQLServer数据库、Access数据库两种数据库访问,由于构造通过工厂方式,因此通过配置参数即可实现切换,当然扩展下即可实现更多的数据库接入。

另外本WCF框架提供两种常见的界面框架,一种是传统的界面框架(采用Weifenluo布局空间),一种采用DevExpress界面组件形成,均具有一定的代表性,WCF框架的界面层,虽然其获取数据的方式不同,但和Winform框架具备相同的功能,如数据分页,数据导入、数据导出、权限控制、字典管理等等。


下面的图示界面层工程项目展开的截图,我们可以看到,在Winform框架中独立的通用权限管理模块、通用字典管理模块,在这里做了一个整合,不再是独立应用的程序集模块,所谓合久必分,分久必合,就是这样的道理。其中红色部分就是字典和权限管理的控制界面模块,这里把它作为界面的一部分,方便服务层的统一部署,统一使用或者统一修改配置等。 另外绿色部分是界面层的基类,这个和Winform框架是一样的,都是为了达到统一、合理封装的目的。

 

我们来看看两种不同的界面效果,如下所示:

1)传统的界面布局效果如下所示。

 

2)基于漂亮的界面控件DevExpress的界面效果如下所示

 


3)由于WCF框架整合了字典模块和权限模块的界面,因此同时更新了界面效果,其中DevExpress界面效果的字典模块如下所示

 

4)其中DevExpess界面效果的权限控制模块如下所示 

 

另外包含的WCF框架模块自动更新模块,由于采用了图片的背景界面效果。Winform开发框架和WCF开发框架的效果一样,而且都是采用独立的自动更新模块,通过配置更新地址和配置文件即可实现,不再赘述。

 

本文主要介绍WCF开发框架的总体内容,不设计代码,这可能给一切代码至上的朋友有些失望,不过却可以作为给大家进行分布式部署应用的一个思路及参考,如果您有好的建议或者问题,希望大家一起沟通,共同进步。 

主要研究技术:代码生成工具、Visio二次开发、送水管理软件等共享软件开发
专注于Winform开发框架、WCF开发框架的研究及应用。
  转载请注明出处:
撰写人:伍华聪  http:
//www.iqidi.com 
    

posted on 2011-12-03 17:47 伍华聪 阅读(2425) 评论(10) 编辑 收藏

评论

#1楼  回复 引用 查看   

这个界面,还是相当不错,直接能拿过来就用,开发出来的软件就很像样了。省心省事很多了。

#2楼  回复 引用 查看   

以前开发水平还很嫩的时候 ,特希望能提高,看到别人写得好的程序都是加密的,给多少钱也不卖,哎,自己摸索提高就很慢了,若很多年前就有这么好的软件,直接拿过来就能用上,客户看了多觉得很专业了。

#3楼  回复 引用 查看   

至少老板也愿意每个月多开几百元的工资了,这是实话。

#4楼[楼主]  回复 引用 查看   

引用C#通用权限管理系统组件:至少老板也愿意每个月多开几百元的工资了,这是实话。

使用成熟的,有价值的东西,花一些费用绝对值得,至少花在走弯路的时间上节省很多。
2011-12-03 18:14 | 伍华聪      

#5楼[楼主]  回复 引用 查看   

@C#通用权限管理系统组件
组件化、模块化是现在及今后软件的趋势
服务的提供也是非常重要的一环
2011-12-03 18:15 | 伍华聪      

#6楼  回复 引用 查看   

DevExpess在某些电脑上的运行速度,始终是个问题。比于用凌动CPU或比较老的机子。
2011-12-03 20:47 | 侯唯      

#7楼  回复 引用 查看   

很想知道是怎么保证质量,是靠人手工去点吗?现在觉得没有自动测试的项目总是先快后慢
2011-12-03 21:53 | Do you know, jack?      

#8楼  回复 引用 查看   

最近正要重学WCF ,楼主的文章有用,收藏!
2011-12-04 00:32 | 深蓝医生      

#9楼  回复 引用 查看   

很不错。
2011-12-05 08:41 | 海南.胡勇      

#10楼  回复 引用 查看   

能不能发我一份 DevExpress,我的邮箱zhang.chui@qq.com
2011-12-23 21:31 | zhangchui      

导航

<2011年12月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

公告

昵称:伍华聪
园龄:6年7个月
荣誉:推荐博客
粉丝:676
关注:23

搜索

 

常用链接

最新随笔

我的标签

随笔档案(202)

文章分类(14)

文章档案(15)

相册

我的好友

我的技术支持站点(http://www.iqidi.com)

积分与排名

  • 积分 - 629355
  • 排名 - 79

最新评论

阅读排行榜

评论排行榜

推荐排行榜