Winform开发的应⽤环境和相关技术介绍
随着时间的推移,Winform也算是能够坚持下来最久的技术之⼀了,它的昔⽇辉煌和现今的依旧活跃,导致了它依旧拥有者很庞⼤的⽤户体,虽然⽬前很多技术⽇新⽉异的,曾经的ASP、ASP.NET WebForm、Asp.NET MVC、WPF等技术基本上淡出了视野,⽽迎来了.NET Core、UWP等技术应⽤,.NET Core也给.NET迎来了⼀次重要的涅槃重⽣的契机,可以更⾼效的运⾏在各种平台上,从⽽激发了.NET的⼜⼀春。Winform的技术虽然基本上已经压缩在⼀定的范围内,不过由于的⽤途⼴泛,微软也⽆法完全舍弃,据说在即将到来的.NET core 3.0⾥⾯,会⽀持Winform,那真是⾮常不错的⼀次转变。
1、Winform的应⽤场景
我⾃⼰也是⼀个Winform开发的拥趸,基本上⼗⼏年来⼀直⽤着Winform开发各种各样的应⽤(虽然我也做很多相关的Web开发),从最早的⼀些⼩⼯具,⼩共享软件什么的,到后⾯给客户开发⼀些数据管理系统、业务管理系统等等,因此在这⽅⾯使⽤还算有⼀定的背景,可以对WInform这个技术应⽤做⼀个个⼈的概括。
1)⽤户体验
在Winform应⽤⾥⾯,和其他Web系统⽐起来,它的⽤户体验是最好的,⽽且界⾯响应速度也⽐Web界⾯来的快捷⼀些,由于很多情况下,⽤户考虑使⽤⽅便性,如⼀些报表的展⽰、打印、导⼊导出⽂件的处理等常规的操作,都还是习惯使⽤Winform这种定制型⾮常好的界⾯来处理,毕竟⼤多数情况下,单位都有⼀套业务和数据的管理系统来处理这些业务。
2)数据敏感
另外很多情况下,如⼀些事业单位、机构什么,他们的数据是⽐较敏感的,不希望对外公开,⽹络的引⼊会提供数据外泄的可能,另外它们也是经常处于内⽹的环境下,因此⼀个单机版的程序就可以搞定他们的⽇常业务处理了,这种特别的业务环境,注定了使⽤Winform来处理会更胜⼀筹。
3)开发便利
Winform开发的程序,发布共享⽐较容易,直接安装就可以使⽤,可以不需要部署在云端(虽然我的混合框架⽅式可以访问Web API、WCF等服务获取数据,透明的数据处理);⽽且Winform的界⾯开发起来⾮常⽅便,结合界⾯套件,可以做出⾮常棒的界⾯效果。另外从开发⾓度上讲,Web前端的技术淘汰⾮常快,Winform的技术积累反⽽是在逐步加固的过程,因此对于⼀些开发⼈员来说,迭代Winform开发的应⽤会更加⽅便,也更加熟练,因此只要客户在⽤,系统兼容,这种Winform的程序会⼀直保留下去。
2、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两种服务访问⽅式,⽽在开发界⾯基础上,不需要太⼤的变化即可接⼊,这就是我们的混合开发框架。
混合框架的多种⽅式⽀持
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论