从开发框架提高开发效率说起
在我们接触的很多项目中,如果有一些参考性的项目框架,那么做起开发来,事半功倍,一般来说搭建或者积累这些框架性的项目,非一日之功。一般我们可以把具体的项目分为Winfrom、Web、微信、或者Socket等方面,具体项目界面表现不同,但是界面层底下的应该都是差不多的结构,能够支持多种数据库的接入,提供更好的接口封装,以便重用,实现最优化代码的处理。
软件系统随着业务的发展,变得越来越复杂,不同领域的业务所涉及到的知识、内容、问题非常非常多。如果每次都从头开发,那都是一个很漫长的事情,且并不一定能将它做好。基于稳定成熟的框架,开发项目,技术和时间都有保障,同时可以利用前人高效的工具进行辅助开发,从而事半功倍。
1、框架的主要特点和要求
从一些资料来解读下开发框架的特点,如下所示:代码模板化、重用、高内聚(封装)、规范、可扩展、可维护、协作开发、通用性。
1、代码模板化
框架一般都有统一的代码风格,同一分层的不同类代码,都是大同小异的模板化结构,方便使用模板工具统一生成,减少大量重复代码的编写。在学习时通常只要理解某一层有代表性的一个类,就等于了解了同一层的其他大部分类结构和功能,容易上手。团队中不同的人员采用类同的调用风格进行编码,很大程度提高了代码的可读性,方便维护与管理。
2、重用
开发框架一般层次清晰,不同开发人员开发时都会根据具体功能放到相同的位置,加上配合相应的开发文档,代码重用会非常高,想要调用什么功能直接进对应的位置去查找相关函数,而不是每个开发人员各自编写一套相同的方法。
3、高内聚(封装)
框架中的功能会实现高内聚,开发人员将各种需要的功能封装在不同的层中,给大家调用,而大家在调用时不需要清楚这些方法里面是如果实现的,只需要关注输出的结果是否是自己想要的就可以了。
4、规范
框架开发时,必须根据严格执行代码开发规范要求,做好命名、注释、架构分层、编码、文档编写等规范要求。因为你开发出来的框架并不一定只有你自己在用,要让别人更加容易理解与掌握,这些内容是非常重要的。
5、可扩展
开发框架时必须要考虑可扩展性,当业务逻辑更加复杂、数量记录量爆增、并发量增大时,能否通过一些小的调整就能适应?还是需要将整个框架推倒重新开发?当然对于中小型项目框架,也不必考虑太多这些内容,当个人能力和经验足够时水到渠成,自然就会注意到很多开发细节。
7、可维护
成熟的框架,对于二次开发或现有功能的维护来说,操作上应该都是非常方便的。比如项目要添加、修改或删除一个字段或相关功能,只需要简单的操作,十来分钟或不用花太多的工夫就可以搞定。新增一个数据表和对应的功能,也可以快速的完成。功能的变动修改,不会对系统产生不利的影响。代码不存在硬编码等等,保证软件开发的生产效率和质量。
8、协作开发
有了开发框架,我们才能组织大大小小的团队更好的进行协作开发,成熟的框架将大大减轻项目开发的难度,加快开发速度,降低开发费用,减轻维护难度。
9、通用性
同一行业或领域的框架,功能都是大同小异的,不用做太大的改动就可以应用到类似的项目中。在框架中,我们一般都会实现一些同质化的基础功能,比如权限管理、角色管理、菜单管理、日志管理、异常处理......或该行业中所要使用到的通用功能,使框架能应用到某一行业或领域中,而不是只针对某公司某业务而设定(当然也肯定存在那些特定功能的应用框架,这只是非常少的特殊情况,不在我们的考虑范围)。
2、基于Winform混合式开发框架和Bootstrap开发框架的基础分析
在很多场合,一般如果是做Winform桌面的应用,我会推荐客户使用《Winform混合式开发框架》,如果是基于Web的项目开发,一般推荐客户采用《Bootstrap开发框架》。
1) 《混合式开发框架》混合了传统《Winform开发框架》、《WCF开发框架》和Web API接口框架的特点,可以在直接访问数据库、利用WCF服务获取数据、利用Web API服务获取数据三者之间自由切换,统一了系统界面层对业务服务的调用模式,所有组件模块均实现三种方式的调用,是一种弹性化非常好的框架应用,既可用于单机版软件或者基于局域网内的应用软件,也可以用于分布式技术的互联网环境应用,是一种成熟稳定、安全高效的技术框架。
由于混合型框架,既可以用于传统Winform系统开发,也可以用于WCF分布式系统开发,还可以用于轻型高效的Web API的分布式系统开发(目前广泛应用的接口方式),因此环境适应性强;而且由于模块具有这些特点,可重用性更高,特别对于通用性的模块,更是具有无可替代的优越性。
2) 基于Metronic的Bootstrap开发框架
该开发框架界面部分采用较新的Bootstrap技术,采用当前最新的Bootstrap3.x,集成了众多功能强大的Bootstrap插件。
Bootstrap
是一个前端的技术框架,很多平台都可以采用,JAVA/PHP/.NET都可以用来做前端界面,整合JQuery可以实现非常丰富的界面效果,目前也有很多Bootstrap的插件能够提供给大家使用,本框架集合了众多最为优秀的插件,能给我们Web的用户体验提升到一个前所未有的水平。
Metronic
是一个国外的基于HTML、JS等技术的Bootstrap开发框架整合,整合了很多Bootstrap的前端技术和插件的使用,是一个非常不错的技术框架。本框架以这个为基础,结合我对MVC的Web框架的研究,整合了基于MVC的Bootstrap开发框架,使之能够符合实际项目的结构需要。
框架后台采用基于C#的MVC技术,是目前.NET开发最为成熟流行的技术,框架后台数据库支持Oracle、SqlServer、MySql、Sqlite、Access等常规数据库,可通过配置进行自由切换,使用Enterprise Library模块进行数据访问的控制,使得数据访问更方便轻松。
3、框架的各个特点的说明
上面介绍了开发框架的一些共性,概括总结几点:代码模板化、重用、高内聚(封装)、规范、可扩展、可维护、协作开发、通用性。
1)代码模板化
我们的框架系列,无论是Winform开发框架,Web开发框架、Bootstrap开发框架等框架系列,都是一脉相承的特点,所有类代码都统一的代码风格,各个项目以及分层目录都是按照统一的命名方式进行构建,易读易理解,整个框架的代码,包括项目底层BLL、DAL、Entity等层的代码,以及Winform界面层、或者Web界面层,都可以利用工具统一生成(我们根据项目界面特点构建对应的模板文件),减少大量重复代码的编写。
这些结构利于使用代码生成工具(Database2Sharp,我们为框架快速开发量身定做的软件工具)进行项目代码的生成
2) 重用
由于我们在项目开发中,采用了一些模块化的方式来组装项目,可以简单的理解为积木组合的方式。如权限管理模块、字典管理模块、自动更新模块、人员管理模块、通讯录管理模块、分页控件、公用类库等方面,这些可以在项目中根据情况采用对应的模块,非常高效,整个主体框架也有对应接入这些模块的案例代码供参考,因此可以更加直观明了。
而另一方面,我们在对类的重用方面,也是精益求精,尽量做到精简重复代码,提高开发效率的目的。
界面类提供封装继承,减少界面的一些繁琐设置
基础业务类,我们同样也是采用重用基类方式,实现接口函数的封装处理。
以及业务类继承关系,当然还有其他更多的,基本上都提供一些基类来处理,简化代码。
3) 高内聚(封装)
从上面小节可以看出,整个框架宏观方面分为多个功能模块,可以自由搭配使用;微观方面都有一个继承关系的基类来对相关的代码进行封装处理,这样开发人员将各种需要的功能封装在不同的模块或者基类里面,从而实现高内聚的处理。
Web API的控制器设计对象继承关系,如下所示:
4) 规范
我们的整个框架系列,严格执行代码开发规范要求,做好命名、注释、架构分层、编码、文档编写等规范要求,这样我们只需要了解一个项目的结构,其他项目依次类推,就可以明确各个分层的意义,一叶知秋,管中窥豹就是这个道理,我们可以通过这些知识积累,指导我们其他同事进行项目开发,大家在规范上统一一致就可以步调统一,从而在单位内部拥有更高的开发效率。
其他框架的特点,如可扩展、可维护、协作开发、通用性,也就不再赘述,基本上,整个框架就是为了方便构建项目而搭建,大的方面可以使用开发好的模块,小的方面可以继承封装好的类库,整个调用的逻辑过程也是经过实践的考验,在众多国内外公司的项目中使用过,同时也获得非常多的反馈,共同促进整个框架体系的发展。