Winform开发的应用环境和相关技术介绍

随着时间的推移,Winform也算是可以坚持下来最久的技术之一了,它的昔日辉煌和现今的依旧活跃,致使了它依旧拥有者很庞大的用户群体,虽然目前不少技术突飞猛进的,曾经的ASP、ASP.NET WebForm、Asp.NET MVC、WPF等技术基本上淡出了视野,而迎来了.NET Core、UWP等技术应用,.NET Core也给.NET迎来了一次重要的涅槃重生的契机,能够更高效的运行在各类平台上,从而激发了.NET的又一春。Winform的技术虽然基本上已经压缩在必定的范围内,不过因为的用途普遍,微软也没法彻底舍弃,听说在即将到来的.NET core 3.0里面,会支持Winform,那真是很是不错的一次转变。前端

 

一、Winform的应用场景

我本身也是一个Winform开发的拥趸,基本上十几年来一直用着Winform开发各类各样的应用(虽然我也作不少相关的Web开发),从最先的一些小工具,小共享软件什么的,到后面给客户开发一些数据管理系统、业务管理系统等等,所以在这方面使用还算有必定的背景,能够对WInform这个技术应用作一个我的的归纳。sql

1)用户体验数据库

在Winform应用里面,和其余Web系统比起来,它的用户体验是最好的,并且界面响应速度也比Web界面来的快捷一些,因为不少状况下,用户考虑使用方便性,如一些报表的展现、打印、导入导出文件的处理等常规的操做,都仍是习惯使用Winform这种定制型很是好的界面来处理,毕竟大多数状况下,单位都有一套业务和数据的管理系统来处理这些业务。安全

2)数据敏感服务器

另外不少状况下,如一些事业单位、机构什么,他们的数据是比较敏感的,不但愿对外公开,网络的引入会提供数据外泄的可能,另外它们也是常常处于内网的环境下,所以一个单机版的程序就能够搞定他们的平常业务处理了,这种特别的业务环境,注定了使用Winform来处理会更胜一筹。网络

3)开发便利架构

Winform开发的程序,发布共享比较容易,直接安装就可使用,能够不须要部署在云端(虽然个人混合框架方式能够访问Web API、WCF等服务获取数据,透明的数据处理);并且Winform的界面开发起来很是方便,结合界面套件,能够作出很是棒的界面效果。另外从开发角度上讲,Web前端的技术淘汰很是快,Winform的技术积累反而是在逐步加固的过程,所以对于一些开发人员来讲,迭代Winform开发的应用会更加方便,也更加熟练,所以只要客户在用,系统兼容,这种Winform的程序会一直保留下去。框架

 

二、Winform开发的过程

1)界面开发模块化

Winform开发对比其余有很多优势,主要的特色仍是开发方便,基于必定的框架,能够快速开发特定的业务管理系统。以下是我客户关系管理系统的界面效果。主界面是采用了DevExpress套件,可让界面看起来很是统一漂亮,另外对于界面的开发,咱们能够基于数据库信息的基础上,经过工具快速生成常规的列表展现界面,以及编辑界面,从而进行必定的调整便可。工具

对于列表界面,常规的就是包含数据的分页展现、查询、高级查询、导入、导出、打印等这些常规的功能,这些均可以经过定义好的界面模板进行统一辈子成,生成后进行必定的调整(如加入左侧树形列列表)便可。

如这个编辑界面,也是基于数据库信息的生成后进行必定的调整便可。咱们能够快速的修改控件的类型,如修改成下来列表类型,备注类型等,而在代码中进行字典类型绑定就能够显示字典数据了。

 

2)后台代码开发

对于一个新建的业务表,咱们须要开发的须要底层的实现和界面层的展现,这些工做量也是很是巨大的,若是基于控件细粒度的处理,也是很是繁琐的工做,所以基于这些开发过程的考虑,咱们引入了提升效率开发的代码生成工具Database2Sharp,专门为咱们基于开发框架基础上的框架实现代码开发,和业务界面展现的快速开发。

代码生成工具,不只可以让它生成咱们常规开发的界面层如下的实现代码(包括BLL、DAL、Entity、IDAL等层,以及混合框架的WCF、Web API的实现层和调用封装层),以及界面层的调用代码。

有了这些的处理,咱们可极大减轻工做量。

生成的项目中,咱们已经有了对应框架支持的实现层了。

普通Winform框架的分层架构图。

 

3)底层数据库支持

在实际需求中,你每每不能决定客户须要用什么数据库,那么须要根据实际需求或者环境进行数据库类型的选型,若是是单机版为了方即可以使用SQLite,若是是已有业务系统或者须要响应速度快一些的,那么考虑使用SQLServer或者Mysql、有些历史缘由的可能会用PostgreSQL或者Oracle等等。那么框架的弹性就须要支持多种数据库的了,这种支持不能致使太大的工做量最好,不然会弄得焦头烂额的。

框架底层数据库访问采用了微软企业库实现,所以在处理多种数据库访问的时候,可以提供统一的访问处理操做,同时对不一样的数据库支持操做也是很是不错的。下图是框架底层数据库的支持状况。

采用了微软企业库Enterprise Library做为咱们底层的数据库访问模块后,对于多种数据库的访问操做,就会统一采用这个企业库的数据库访问对象,操做起来很是一致,为了对不一样数据库的常规增删改查等一些操做进行进一步的封装,以达到简化代码的目的,所以咱们能够为每一个不一样的数据库定义一个数据访问操做基类,以便实现一些不一样数据库差别性的处理,可是它们仍是有一个共同的数据访问基类。

采用不一样的数据库,咱们须要为不一样数据库的访问层进行生成处理,如为SQLServer数据的表生成相关的数据访问层DALSQL,里面放置各个表对象的内容,不过因为采用了相关的继承类处理和基于数据库的代码生成,须要调整的代码不多。

 

4)数据集中的云端模式

在不少业务系统中,有不少需求是但愿部署在云端服务器中,这种方式能够实现数据的几种管理,也有利于安全。所以咱们整合了WCF和Web API两种服务访问方式,而在开发界面基础上,不须要太大的变化便可接入,这就是咱们的混合开发框架。

混合框架的多种方式支持

而对于WCF或者Web API的封装,咱们是经过接口适配的方式,调用层须要对业务接口进行封装,从而产生封装的代码量。所以能够利用代码生成工具生成对应业务模块的接口适配代码,能够极大减轻对这部分的开发效率损耗。

混合框架的架构以下所示。

 

代码生成工具Database2Sharp,生成总体性的混合型框架项目以下所示,只是没有下图的界面部分,这部分在实际开发过程当中,结合个人混合型框架案例进行整合便可,另外也能够界使用Database2Sharp进行Winform界面的开发,这样总体性就很是方便操做了:

Winform调用Web API的过程,这个过程能够经过下面这个图示进行讲解。

 

5)模块化的框架结构

在开发Winform应用的时候,咱们除了但愿简化代码外,其实不少常规的业务,咱们但愿不但愿都要从新开发,如权限管理系统、字典管理、附件管理等,这些是不少业务都涉及到的模块,咱们应该在必定粒度上实现整合现有模块便可,这样能够下降咱们开发的难度和减小开发时间,咱们就能够把重要的时间花在具体的业务领域里面,快速响应客户的需求开发。 

混合型框架能够当作是Winform框架高级版本,除了它自己是一个完整的业务系统外,它外围的全部辅助性模块均(如通用权限、通用字典、通用附件管理、通用人员管理。。。。)都实现了这种混合型的框架,所以使用很是方便,整个框架若是简化来看,就是在原有的Winform界面层,用接口调用方式,避免和业务逻辑类的紧耦合关系。

相关文章
相关标签/搜索