应用程序框架实战四:你需要应用程序框架吗
如果没有什么好处,不会有人愿意去做,那么,你真的需要应用程序框架吗,它能为你带来什么好处?
应用程序框架为你提供现成的开发环境
现在来了一个项目,你可以直接打开VS,然后就开工敲代码吗?不行,你得先创建项目,当使用了分层架构,还需要创建更多的项目,这些项目根据依赖关系进行配置。然后依次引用各种依赖组件,很多组件还需要配置,比如Log4.Net。
配置好项目以后,你还得测试各依赖组件是否能正常工作,可能你的运气比较好,一下就全部测试通过。但也有比较背的时候,半天调不通,这时候你会发现环境问题有时比代码Bug更难搞。
从头开始创建和配置开发环境是劳神的工作,当你手头有套自己的应用程序框架,情况就大不相同了,它为你提供了现成的开发环境。
应用程序框架帮助管理第三方依赖组件
随着开源事业的发展,第三方开源框架名目繁多,层出不穷,另外第三方应用平台也多如牛毛。如果在应用程序中直接使用这些三方API,势必被牢牢绑定,无法脱身,当要切换框架或应用平台时,不得不重写应用程序代码。
如果把第三方框架或应用平台API封装到应用程序框架中,应用程序仅使用自己框架提供的API,这样就可以轻松切换相关实现了。
应用程序框架为应用程序体系架构提供支持
当你的项目需求非常简单,比如企业网站,可能不需要什么体系架构,建立一个表现层项目,所有的代码直接写到界面上,或者后置代码中。对于简单项目,单层架构还是很有优势的,简单、快速。但更复杂的项目需要采用分层架构,目前普遍采用传统三层架构或DDD分层架构。
特别是Entity Framework的普及,大家开始逐步采用DDD的一些设计元素进行构造。使用DDD的第一步是创建层超类型,即各层构造类型的基类。将层超类型放到应用程序框架中,而不是项目中,可以为多个项目提供支持。
应用程序框架为常规任务提供更易用的Api
前文提到,.Net Framework提供的是原始Api,如果想在应用程序中访问更易用的Api,还需要自己动手,丰衣足食。
把常见的.Net操作封装到应用程序框架中,不仅在调用的时候更简单,而且代码得到集中管理,修改和扩展都更容易。
应用程序框架解决大部分机械工作,大力提升开发效率
当采用分层架构以后,会发现开发工作量显著增长,这是由于分层架构会建立多个项目,任何一个操作,都需要在多个项目中创建代码。另外体系架构越复杂,各层管道连接代码也越多。
信息系统最基本的操作是CRUD,手工创建这些代码,不仅浪费时间,而且容易出错。
通过应用程序框架配套的代码生成器来生成这些CRUD和管道代码,可以大力提升开发效率。
应用程序框架内置通用模块,从而加速项目进度
大部分信息系统都需要进行登录,主界面菜单,权限控制等操作,开发一个完善的权限管理模块需要数周时间。
在应用程序框架中内置一些通用模块,可以显著提升项目进度。
应用程序框架为团队开发提供一致的编程风格
团队开发的一个问题是各程序员的编程习惯和风格不同,导致项目代码异常混乱,没人愿意维护别人的代码,当开发某一模块的程序员离职后,接手该模块的新程序员将痛苦不堪。
通过制定编码规范可以一定程度改善这个问题,但还是非常被动,执行效果也可能不佳。
应用程序框架为团队提供一套Api,且基础代码由框架自动创建,编码规范、编程风格得到强制实施,为后续维护奠定基础。
综上所述,量身打造一套符合自己习惯的应用程序框架,对项目质量、进度、可维护性等有重要意义。