Winform混合式开发框架,是一种支持分布式部署的应用模式,支持直接连接数据库,访问远程WCF服务,访问远程Web API服务等服务的综合性框架,根据不同的需求采用不同的数据接口,是一个适应性很广的应用框架。 混合式开发框架它本身是一个完整的业务系统外,它外围的所有辅助性模块(如通用权限、通用字典、通用附件管理、通用人员管理、通讯录管理......)均都实现了这种混合型的框架,因此使用非常方便。
1、多种数据接入方式
《混合式开发框架》混合了传统《Winform开发框架》、《WCF开发框架》和Web API接口框架的特点,可以在直接访问数据库、利用WCF服务获取数据、利用Web API服务获取数据三者之间自由切换,统一了系统界面层对业务服务的调用模式,所有组件模块均实现三种方式的调用,是一种弹性化非常好的框架应用,既可用于单机版软件或者基于局域网内的应用软件,也可以用于分布式技术的互联网环境应用,是一种成熟稳定、安全高效的技术框架。
由于混合型框架,既可以用于传统Winform系统开发,也可以用于WCF分布式系统开发,还可以用于轻型高效的Web API的分布式系统开发,因此环境适应性强;而且由于模块具有这些特点,可重用性更高,特别对于通用性的模块,更是具有无可替代的优越性。
2、独立配置,更少的代码修改
混合框架所有通用模块,如果是通过WCF或者Web API服务接入的,那么客户端模块都需要配置好对应的访问地址。
WCF服务连接,通过独立配置文件进行配置WCF的连接,减少主配置文件的复杂性;
Web API每个服务的连接地址也是可以通过配置文件进行指定,根据需要采用HTTP或者HTTPS协议进行数据传输。
这些接入的配置,都是独立放在在不同的文件里面,这样可以方便集中修改,也方便通过程序界面进行配置调整。如在混合框架里面,提供了一个管理界面,用来管理这些接口的切换和配置参数的。
其中相关的接口地址参数,可以在管理界面里面统一进行维护修改。
3、提供多种主体界面布局方式
混合框架提供多种模块调用方式,可以通过预先配置好的菜单,以插件方式动态构建对应的菜单按钮,并触发调用对应的插件模块进行展示;也可以按常规的添加菜单按钮方式进行功能按钮布局。
混合框架主体界面同时也提供多种界面布局方式,可以按标准的顶栏菜单模式展示,如下所示。
也可以在左边放置类似OutLookBar的功能条,在放置对应的菜单功能树,这样可以展示更多的功能模块,适用于系统功能较为复杂的情况使用。
4、代码生成工具的集成
整个框架的应用开发,代码生成工具Database2Sharp是灵魂,它围绕着不同的框架,根据设计好的数据库信息,生成主体框架信息,把不同类型的类文件放在不同的项目中,实现快速的框架增量开发;另外整个框架的Winform界面和Web界面,都可以快速生成,稍微调整下即可实现专业性界面的设计开发工作,并能够迅速编译运行起来,从而实现快速、高效、统一的框架应用开发。
1)主体框架代码的生成
EnterpriseLibrary代码生成时一个整体性项目代码的生成操作,它能根据设计好数据库信息以及模板文件,生成一个完整性非常高的项目。一般结合我们的Winform开发框架、WCF开发框架、混合型开发框架或者Web开发框架,进行增量式的项目开发,效率更高,而且可以可以利用更多已经开发好的、现成的组件模块的集成,完美的整合,以及模块化的封装,能带给你无穷的开发乐趣同时,使得项目无论从代码风格、用户界面、设计理念,都能保持很好的统一,快速优雅的完成碰到的项目。
代码生成工具,生成整体性的混合型框架项目如下所示,只是没有下图的界面部分,这部分在实际开发过程中,结合我的混合型框架案例进行整合即可,另外也可以界使用Database2Sharp进行Winform界面的开发,这样整体性就非常方便操作了:
2)界面代码的生成
界面开发,无论对于Web开发,还是Winform开发,都需要耗费一定的时间,特别对于一个数据库字段比较多的界面,一般就需要在编辑界面上摆的更多的控件来做数据显示,每次碰到这个,都有点头痛,反复的机械操作让人挺累,也很烦,但是又必须这样做。
由于数据库字段和界面的排版都有一定的关联关系,因此可以通过代码生成工具Database2Sharp的数据库元数据,包含表名称、备注信息、字段列表,以及每个字段的名称、备注、类型等信息,构造一个基础的界面,把重复机械的部分给快速完成,这就是我所说的界面快速生成。当然,对于精致的界面,机械的生成肯定不能满足我们的需要,因此真正的界面需要在这个基础上修改完善一下,但是由于重复劳动部分,已经给工具处理掉了,因此,界面开发效率会大大提高。
Winform界面可以生成标准的列表展示界面,也可以生成主从表界面,基本上适应了大多数的情况。
本文转自博客园伍华聪的博客,原文链接:Winform混合式开发框架的特点总结,如需转载请自行联系原博主。