从ABP框架国内社区发展回顾.NET技术变迁-2016

admin
admin
2021-12-31
分享:

从ABP框架国内社区发展回顾.NET技术变迁-2016年

2016年,ABP框架开始被大家陆陆续续的引入到项目中进行使用,但并没有太多成熟的案例给大家进行讨论和分享。

那个时候大家更多的疑问是ABP框架是否可以放到生产环境进行使用,是不是有坑。

如果你还记得要买车这个平台的话,那么这是当时阳铭所在公司牵头使用ABP框架做的系统,当然后来要买车因为经营不善,关门大吉,更多的是运营和商业模式,而无关乎技术了。

2016年我开始频繁使用ABP框架

2016年的时候,我加入了积微物联,那个时候公司人还很少,挤在攀钢金茂大厦8楼的一个小办公室,如果他不是国企的背景的话,你肯定会以为是在某个小窝点上班,大概是下图这样。

图为运网2.0上线前夕

我和寒飞在这个办公室里面陆续发布了积微运网2.0、积微循环。而在2016-2018年这段时间内,我们做了大量的内部系统,使用ABP框架发布了太多的项目。

16年正式开始使用,发现用的越多,即使遇到一些很复杂的场景,ABP框架已经提前给你提供了解决方案,你可以直接使用,有时候只需要稍微修改下就可以了。

比如很多基础性的功能,但是又很繁琐的场景:多语言、多时区、多数据库、内存缓存切到redis、领域事件、OData、后台作业job、实时消息通知等等功能。

这也是截止到今天在社区中依然没有看到有如此优秀的包含了前后端统一解决方案的框架.

所以你在翻越ABP框架资料的时候,你会发现项目、文章内容分享都是ABP框架群的那些人,因为那个时候确实能把ABP框架弄明白的人不多。

16年应该是我.NET技术和前端技术突飞猛进的时间,因为做的项目太多。所以也准备集成一个ABP项目,当时还叫yoyocms框架,下图是github地址。

1640083330218.png

还基于阳铭提供的解决方案适配了一套代码生成器,也是从那个时候接触的VS插件开发,折腾了一些WPF的UI组件。

1640085513194.png

52ABP早期代码生成器的雏形,现在回顾来看,产品存在部分较大缺陷。

yoyocms框架52ABP的早期版本

从能完善程度来说,yoyocms是采用ABP早期版本+.NET Framework 4.5.2 +Vue 2.x 开发出来的。如果没有.NET Core的发布的话,我想它会在很长的一段时间内,会是我的主力开发工具。

但是从现在来看yoyocms框架,即使加了vue做出来了之后,也是49年加入了国军哈哈哈。但是技术的惯性在那里放着虽然不会那么快的被替换掉。但是大家的兴趣被都在被.NET Core所吸引。

当然我们在公司内部也在讨论如何从.NET Framework升级到.NET Core。而关于如何升级的问题,这当然这个是另外的一个故事了。

不过可以告知您的事情是,你如果使用的是ABP框架,你会发现你从.NET Framework 升级到.NET Core 不会痛苦,当然前提是你遵守了ABP框架的规范,好的编码习惯会让你在做很多事情的时候一劳永逸。

不管是在开发功能还是遵循框架设计,约定大于配置是一个非常好的理念。

.NET Core 1.0的发布

你已经知道了2016年发生了一个改变.NET开发者命运的事情那就是.NET Core 1.0的正式推出。支持在Linux上运行跨平台、服务于微服务、组件化等等特性,它的设计上,天然的帮助了你后端有微软这样的一个官方部队帮你做架构,你只需要考虑如何使用好这工具就好。

因为.NET Core的发布,大家的热情都被点燃了,社区的活动也变多了。ABP框架也开始了支持.NET Core,版本的持续迭代。在这个迭代过程中,你可以看到作者对于技术兼容性的诚恳,没有说抛弃.NET Framework。

1640742751569.png

ABP框架背后的推广者-TKB至简

16年博客园涌现了一位叫做TKB至简的哥们,做了和天道一样的事情,它将整个ABP文档翻译成了中文、并且做了很多输出,目前大家看的文档,很多人都是在搬运他的作品。

博客地址: https://www.cnblogs.com/farb/

开始尝试ABP框架的推广和宣传

2016年,因为我开始频繁的使用ABP框架进行系统的开发。在项目中,我尽可能的去使用它所提供的特性。文档不全的地方,就去翻翻它的源代码,从整个框架的设计到实现,算是我在开发技术上比较爆发的一年。很多时候在翻阅ABP源代码的时候,都在想为什么可以做成这样,我为什么不行。

公司也因为发展的快速壮大,我开始带新人,开始写点小文章,做分享。ABP群也随着人员越来越多,进行了群的扩展。 从1个群变成2个、3个群到现在的5个群。

在写这个系列文章的时候,我梳理了下我的时间轴,发现16-17年我在群里花费了大量的时间给大家做解答,同时在回答问题的过程中,也积累了我的技术。

毕竟早期的ABP框架,你要是不翻下ABP框架的源代码是无法解决这些问题的,比如ABPSession的扩展,缓存滑动过期的bug。

而在这一年中也开始涌现了很多使用ABP框架非常深度的人出现,如 maliming、personball、雪雁、石头、上海--深秋、shiweiliang 等等人大家开始一起给ABP框架提交PR文档。

18、19年马立明和梁仕伟陆续加入ABP开发框架的团队,成为了ABP团队的正式员工。

2016年,不少接触ABP项目开发的人,可能还记得我的电话薄课程。我也利用这个简单的Demo,一直参考ABP官网的实现。做了视频和开发文档。直到现在的52ABP依然在用它,作为入门案例。

ABP框架正式发布1.0版本

2016年9月,ABP框架正式发布1.0版本,这个版本是我印象最深的一个版本。因为改动比较多,当时升级的时候,我也接近折腾了3天的时间。这算是最大的一次破坏式升级,也是里程碑版本的一个升级内容,后续的升级也没有它这么麻烦了。

1640746507796.png

  • 这个版本删除了大量冗余的设计和字段。
  • 框架的接口和实现都改进了,更加简洁易用。
  • 基本上完成了全场景的一个覆盖,成为了一个非常扎实的基础设施。

在我看来2016年的ABP框架做了最大的兼容性,保障了.NET Framework和.NET Core的兼容性。使得采用ABP框架的项目,可以自由选择是采用.NET Core1.1还是.NET Framework。

当然由于.NET Core的新设计特性比.NET Framework优秀太多了,这也为后面ABP Vnext的诞生埋下了一个种子。

ABP框架是一个非常有诚意的作品,你会发现它的设计和实现都是非常的精巧细致,去学习一个优秀的框架,永远不会过时。而且最重要的是,ABP框架和其他大多数的开源框架相比,那就是他一直在进行持续的更新和发布,这个是最重要的。

一个小Tips

在ABP框架的群里,因为作者的名字实在太长了,所以很多人结合作者是土耳其人,叫他土耳其大牛,简称土牛