应用框架概述
框架是一种可复用的基础代码库,如果它只解决纯技术问题,可以认为是技术框架,如果它与你的业务相关,则可认为是业务框架,或称为应用框架。
.Net提供的基础类库是最基础的技术框架,它提供了进行.Net开发所需要的基础API,这些API都比较原始。
完全使用原始API进行项目开发,会导致高昂的学习成本,更多的Bug,难以维护的重复代码,低效的开发进度。
为了完成某项特定的技术需求,比如写日志,你可以使用原始API进行简单实现,并在多个地方复制粘贴进行调用。
这很快会让你厌烦,除了冗余代码以外,你发现还需要经常扩展日志操作的功能,于是你想把日志操作封装成库来调用。
一些前辈已经做了这些基础工作,并且他们的工作已经在全球大范围的使用,非常成熟,并且持续维护。
这些能够解决特定技术问题的类库可以统称为第三方技术框架,在项目上使用第三方技术框架是项目成功的必要保障。
从此,你不再为如何实现某项技术问题而烦恼,也不需要为持续扩展的技术需求而疲于奔命,更多的精力被用在业务上,这才是你应该干的事。
对于你的项目,每当碰到某种技术障碍时,你会四处打听有没有某个第三方技术框架解决了你的问题,找到以后,通过调试一些Demo代码,简单的用起来了。
每当需要这个功能的时候,你会从以前的代码复制粘贴,由于第三方技术框架已经高度封装,所以冗余代码不是特别显著,你没有理会它。
如果你的团队并不经常沟通,处理同一问题的过程将在团队中反复发生,这将导致对于某个问题的技术实现不一致,并且付出高昂的学习成本。
当调用代码被大量的复制粘贴后,如果发现调用代码有Bug,或需要增加一些健壮性,你才意识到虽然第三方技术框架已经比较完善,但对它的调用依然有封装的必要。
另一方面,无论是.Net基础框架,还是第三方技术框架,它们包含大量的代码和功能,但常用的可能不到百分之一,需要将最常用的那些功能找出来并进行封装,这样可以极大的降低学习成本。
你开始封装一些经常需要操作的代码,这些代码可能是用.Net原始Api封装的,也可能是封装了第三方技术框架的调用,这些封装好的代码被称为公共操作类,也叫工具类。
对于最基础的CRUD和业务代码的结构,你发现也可以抽取出来,形成分层架构基类。
你的项目可能需要在网页上进行开发,采用原始的Html,Css,Js技术,将面临界面美观,浏览器兼容性,开发效率低下等问题。
一些第三方前端技术框架提供了相关的解决方案,比如Angular,Ng Zorro等。将第三方UI框架集成并封装起来,能够显著提升开发效率。
如果在项目中,你需要实现支付等业务功能,你可以对这些第三方业务接口进行封装。
对于常规的项目,总是需要一些通用模块,比如权限,将它作为后续项目的起点是一个好主意。
当这些基础代码被高度封装后,常规的CRUD代码变得非常简洁,但你还是需要复制这些基础结构,通过反复整理,可以得到一个代码模板,通过代码生成工具将基础的CRUD代码生成出来,可以大幅提升生产力。
这个持续封装过程演变为一套项目开发模式,支持这套模式的所有基础代码库,即为应用框架。
应用框架为你项目的所有方面提供支持,你需要不断的完善它。由于应用框架需要解决你项目上的所有问题,所以没有绝对通用和包罗万象的应用框架,你必须在这些应用框架之上进行扩展。
Util应用框架的由来
Util是我在.Net开发生涯中不断积累而成的一套应用框架,最初的名字叫CommonUtilities,这是一个基本由工具类构成的类库。
随着经验和水平的上升,根据自己的习惯,逐步实现了经典图书中某些概念,并吸收了一些流行应用框架的部分代码。
Util应用框架的最新代码经过完全重写,提升了模块化程度,抛弃了一些历史包袱,代码也更加精练。
Util应用框架的作者: 何镇汐
Util应用框架的主要作者为何镇汐。
Util应用框架的开源协议: MIT
这是最宽松的开源协议,意味着可以以任何方式使用该代码。
Util应用框架的主要贡献者
这里只列出了主要贡献者,还有很多开发人员以不同形式对Util做出了宝贵贡献。
Util应用框架的目标: 让开发更简单
Util应用框架让你的团队迅速进入业务开发状态,并在开发过程中持续提供帮助。
Util应用框架的特点: 简单易用
Util应用框架的设计理念是追求Api简单化,尽量少的配置,不用精确记忆Api,有个模糊印象即可使用。
Util应用框架的学习成本相对较低,对于有.Net基础的开发人员,进行常规业务开发,通常在3天内上手。
Util应用框架开发流程
搜集 - 整理 - 集成 - 封装
每当发现无法满足项目需求时,扩展框架的时刻来临。
从头造轮子是下策,所以总是先四处搜集相关资料。对于简单的需求,可能只需要找到一些代码片断即可。对于更专业的问题,需要寻求第三方技术框架的帮助。
找到解决方案并调试通过后,需要对代码进行整理,以符合我们的编程风格。
通常以Nuget包或Npm包的方式进行集成,为了降低学习成本,需要仔细考虑如何封装才能让调用者最省力。
任何有技术含量的工作,均由第三方技术框架完成,Util应用框架仅对技术框架选型并集成封装。
Util应用框架只是很薄的一层外观,为复杂的技术框架提供一个简易视图。
这导致更健壮的实现和更易用的API。
Util应用框架的使用方式
使用Util应用框架有几种不同的方式。
最灵活的方式是将Util应用框架的代码复制到你自己的应用框架中,然后可以随意修改它们来满足项目需求。
不过这种方式的代价也很大,很难合并Util的任何更新,你需要自行维护相当大的代码库。
由于Util应用框架的体积在不断增长,维护这些代码库可能给你带来不小的负担。
另一种可行的方式是将Util应用框架作为你的基础库,使用Nuget引入它们,基础的工作让Util应用框架帮你完成,你只需要扩展自己业务领域相关的功能。
这种方式的限制也很明显,Util提供的功能可能无法满足你的要求。
解决这个问题的关键是与Util开发团队保持沟通,将你的需求告诉我们。
对于通用功能,我们会尽量满足,这样会让更多的开发者受益,对于定制需求,我们也会为你提供扩展点,方便你能自行扩展。
参考应用框架
很明显,闭门造车不可取。
Util应用框架大部分依赖以Nuget方式引入,极少部分需要修改源码,则以复制源码方式使用。
另外,.Net应用框架还有很多优秀的开源项目,从中学习和吸取养分是Util成长的关键。
Util应用框架主要参考了以下开源项目,从中吸收架构和代码,并以Util风格进行整理。
Util应用框架交流群: 24791014