我的技术回顾那些与ABP框架有关的故事-2017年

推荐阅读:

我的技术回顾那些与ABP框架有关的故事-2015年

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

从2022年来回顾ABP框架,我们会发现无论是商业模式还是架构设计思路,如果没有良好的商业模式的话,ABP框架很容易进入难产的状态,比如之前很多的框架,因为没有商业支持,导致已经没有维护了。

所以我们在选择框架的时候,既然重视它的架构设计,技术选型也要选择能够有实力做到可以持续更新的框架。

面临变革的ABP框架

2017年的ABP,对于ABP框架的作者来说无疑是一个充满了挑战的一年。

.NET Core 虽然出来了,但是很多公司用于它做做小项目,或者尝鲜还行,直接贸然的更换为主力开发框架这个对于每个公司来说都是充满了战略级的决定。

对.NET 开发者来说充满了挑战的一年,由于技术惯性,大部分的开发人员都是在.NET Framework中工作,采用的服务器都是Windows,对于.NET Core的新特性掌握的并不扎实。对于其他的技术方案如容器化,Nginx并不感冒。

但技术和市场,以及客户环境是不会容忍你的停滞,因为这一年整个技术圈都在发生变化,大家开始提倡微服务、中台、工业4.0、大数据、云计算这些新的技术概念,这些概念在目前来说 落地到了云原生的场景。

那么.NET 如果要跟上这样的流行趋势,那么势必也要变化和调整。对于ABP来说,也是一样的。它需要照顾好以前的老客户群体,即:.NET Framework的用户群,同时又要兼容.NET Core 的发展趋势。

这个对于任何一个架构师来说都是非常难的。所以ABP框架在2017年开始疯狂的补充文档和适配.NET Core,中途可以看到随着ABP框架作者对于.NET Core的了解越深。里面开始增加了很多只有.NET Core才有的特性,17年ABP框架发布了几个比较大的版本,尤其是v2.0。

ABP框架v2.1发布(2017年6月)

不提2.0的原因是,2.0的版本一直在快速的迭代和发布,中间从2.0升级到2.1变更了太多的东西。当然大部分的开发者还停留在1.0,如果不是为了特意的技术研究也不会去翻阅2.0的源码和内容。

所以2.1的版本在我看来是最固定的版本内容。

1f704ec5d2b018dd088843230370254b.png 大家比较可能比较熟悉的是支持Dapper模块,当然还有其他很多功能和内容。

但其实在内部也做了非常灵活的封装方法,即CrudAppService 。便于快速的完成CRUD操作,达到快速开发的目的。

  • 本地化、多语言、增强工作单元这些基础设施内容

.NET Core 2.0 发布(2017年8月)

2017年8月.NET Core 2.0发布后,ABP框架升级到.NET Core 2。作者紧随其后发布ABP v3.0.0的版本,这版本也基本奠定了后面会将abp剥离一个单独仅支持.NET Core的解决方案。这个也会更加的偏重于微服务、模块化的方向,更侧重于向DDD靠拢,抛弃掉为了兼容.NET Framework 要做的妥协。

前端方案的选择与变化:vue还是angular

2017年前端开发框架也开始了从angularjs1.x升级到angular2的变化。国内开发者喜欢vue1.x升级vue2的解决方案。

彼时去哪儿还没有被携程合并,司徒正美的阿瓦隆(avalon.js)也是这个时候的主流。但是因为运营和生态的问题,慢慢被挤出市场。

如果你关注前端技术圈,会知晓司徒正美大佬,因为脊椎病于2020年3月逝世。

更多详情请参考:回忆与前端大神司徒正美(钟钦成)的二三事与大龄程序员猝死问题

不过关于司徒正美,其实也是一个简单的故事,一位来自农村的少年,不在乎命运对他的捉弄,勇敢经历短暂的人生,在二次元继续寻找着技术的真谛。by 刘悦

def3bab0848ab6c7b07ba4d60594f9ef.png

17年的时候整个市场上angular2和vue2以及react都在属于三雄争霸的时代,大家分别从各自的维度上来蚕食着JQuery的份额。

从国内来看vue2靠着它的入门门槛低,人员薪资便宜,国内特殊的小程序生态圈,占领了国内的整个前端的生态圈。国外的话angular、react、vue依然是三足鼎立的态势。

所以很多时候,运营好了之后,会给技术如虎添翼。

ABP框架在前端的默认支持方案-Angular4

Angular因为依托于TypeScript的强类型语言特性,ABP自然会选择生态和设计偏重于后端的解决方案:Angular。

当然这个不是最重要的,在我看来,最重要的是ABP的商业版本是要打造一个包含前后端的解决方案,而在这种时候,大多数是可以靠功能进行控制的。

在React框架里面我记得有一句话叫做:单向数据流,后来在Vue里面这句话也当做一个标准,后来被调整为双向数据流,但是组件之间的管理又推崇单向数据流。(扯远了)

但是从单向数据流这个标准来说,最后所有的东西是从数据库、经过后端的逻辑配置为功能后,前端进行渲染和输出是最合理的。这样前端的人员可以花更多的心力在交互体验上了。

所以很多时候ABP框架为了可控,尤其在针对复杂项目的时候,你会发现它会相当的节约人手,因为大部分的活都在后端以及框架层面解决了。当然也会带来的问题就是后端开发起来比较繁琐。所以需要有代码生成器。

传统的JQuery并未被抛弃

当然MVC方案下的jquery+datatable.js的形式依然保留,在这个方案下依托于abp.js为主的DOM JavaScript方案,依然会让选择用传统形式开发的小伙伴觉得非常香。尤其采用了统一封装的代码写法了之后,开发体验程度也会高上很多。

而能把这些方案做的如此完善的原因,是因为ABP框架的作者是一个真正的全栈工程师和产品经理。因为他还有一个前端表格插件jtable.org

c0f44678338af84615baa7c75a1e554e.png

所以像ABP作者这样,深耕于技术领域,从后端、前端如此精通的人,加上对于业务的理解,这样的大牛所做出来的框架,我实在找不到第二个选择了。

正式开始ABP框架的对外推广

2017年对于我来说变化尤为重要,在公司内部从开发者变成技术经理到项目经理,对一年跨了3个岗位。

而随着群员越来越多,人员水平并不均衡,也不是所有人都有能力去直接看ABP框架的源码。

我也受邀如鹏网杨中科老师,作为校友开始了第一次对外直播分析ABP框架。

f3981ff21dbd0fe1060fa003d8afd415.png

f19337cfde1407c5b4cdeebc74f4dbd4.png

45c32ed7bdc482f42599e9a1cf431dc6.png

分享完成后了之后,加群的人也变多了。然后我开始录制一个简单的电话薄的Demo给大家。

放在了倒闭了的百度传课平台上,你看又一个经营不善的平台。所以看不到了,而且过于早期说实话我自己都瞧不上。

分享带来的额外收获-微软MVP

随着基础性的文章分享越多,无论是博客也好、视频也罢。同时公司内部项目增多,人手紧缺,我也被拉着往管理岗上走,说实话,也在积微的那几年见到了太多,这个对于大部分人来说都是不可复制的经历。

昙花一现的DNC社区

1418b89e7dec06b3d82054e75e52edc4.png

2017的时候,新东方的mike成立了昙花一现的DNC社区,上图为dnc社区峰会截图。后来因为新东方加班996太严重,导致后继乏力。

但是也非常感谢Mike,在他建立的社区群里,我认识了很多非ABP框架圈子的技术大牛。当然在这个DNC社区里,有太多的大牛,所以也闹出了一些不太愉快的事情,不过现在想来,那个时候我还只是一个吃瓜群众,还算好。

然后结识了成都.NET MVP老大哥,朱永光大哥。然后他带着我们一起做.NET 有关的技术活动、然后陆续和CAP框架杨晓东、晓晨认识,慢慢接触到了NCC社区。

聊聊NCC社区

现在的我已经不是一个纯粹的程序员了,但是你如果想深耕技术,我想NCC社区是一个非常推荐你去了解的社区和组织,虽然我从来没有和NCC社区的人有过正式合作。但是非常欢迎你去了解他们,是一个真正中立致力于.NET 技术推广的社区。

所以.NET的社区有很多,但是因为大家都经营的很佛系,所以不太知道罢了。

e06912c7c22448d30f1a0d063b38235c.png

而在2017年成为MVP之后,参加了太多的技术活动,开阔了无数的眼界,现在想来,2017年微软的很多客户落地的一些项目方案,到2021年了才开始有国内的公司出现在了解和使用。

最初分享技术的时候并没有想过要成为微软MVP,但是因为成为了微软MVP让我在推广技术的时候可以得到很多额外的助力,比如

  • 成为微软MVP,我可以获得很多的技术支持。

  • 可以直接和微软dotnet团队对话,看到非常多的内部资料。

  • 可以直接参加微软的技术活动。

  • 可以享受到微软以及它生态联盟里面多大200多种产品的免费使用。

  • 微软内部大量的免费学习资料(前提英语要好),可以看到很多解决方案。

  • 19年后还赠送了每年Azure 1w美刀的额度给我们。

  • 等等内部的权益,包括对于你的职业生涯也有很大的助力。

所以踏实做事,总会得到很多额外的惊喜。

如果有机会,我或许会再写一篇《我的微软MVP五周年》记录吧!

推荐

《深入浅出ASP.NET Core 》书籍配套源代码与视频下载

如果你喜欢本文,欢迎关注我"角落的白板报",订阅更多精彩内容

扫描下方二维码,加入我们的高质量技术交流群!020d33bdd278cd797230779414a52a2e.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Camera360与全球1.8亿用户共同创造更美的照片

Camera360是成都品果科技有限公司推出的基于IOS、Windows Phone和安卓系统的功能强大的手机摄影软件。能拍摄出不同风格,不同特效的照片,同时具有互联网分享功能。Camera360在全球拥有1.8亿用户,国外0.95亿,国内0.85亿&#xff0c…

八皇后问题(一)

问题描述: 要在8*8的国际象棋棋盘中放8个皇后,使任意两个皇后都不能互相吃掉。规则是皇后能吃掉同一行、同一列、同一对角线的棋子。如下图即是两种方案: 思路: 比如我们搞个数组,数组的下表表示多少行,然后数值表示多少列,比如a[4] = 5,意思就代表第四行,第五列 首先…

linux shell 嵌套expect 与服务器交互脚本

2019独角兽企业重金招聘Python工程师标准>>> 我们与服务器进行交互是该用expect 脚本的&#xff0c;用 “/usr/bin/expect <<-EOF” 来开启expect 脚本 用spawn 来开启一个新的进程 expect 来接受命令&#xff0c;send来发送交互命令 结束用 EOF来over expect…

SkyWalking集成与案例

今天我们通过代码的形式来了解下&#xff0c;如何在项目中使用Skywalking。前几篇文章可以参考&#xff1a;《学习Skywalking 搭建篇》《Skywalking执行效果 多图篇》《Skywalking的ES索引 收藏篇》今天说说代码篇。先说下比较常见的开源 APM 如下&#xff1a;CAT&#xff1…

Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性

多种 Windows Azure服务可以帮助您将应用程序安全性扩展到云。 有三种服务可提供多个提供程序之间的身份标识映射、内部部署数据中心间的连接和相互发送消息的应用程序功能&#xff08;无论应用程序位于何处&#xff09;。 使用Windows Azure Active Directory&#xff0c;您…

Windows Server 2012活动目录基础配置与应用(新手教程)之3---将客户机加入到指定域...

在WIN 2012服务器上安装AD后&#xff0c;WIN2012就从普通的服务器变成了域控制器。一个域也就产生了。但遗憾的是&#xff0c;目前这个域的规模还很小&#xff0c;只有DC这一台主机-------光杆司令&#xff01;&#xff01;下面尝试扩大域的规模&#xff0c;将客户机加入到域。…

论物理学界的神预言

全世界只有3.14 % 的人关注了爆炸吧知识一沙见世界 一花窥天堂手心握无限 须臾纳永恒杨振宁曾说读上面的四句诗可以感受到物理的美但物理的美不止于此物理还有一种庄严美一种神秘美一种初窥宇宙奥秘的畏惧美物理就是如此的迷人任何语言在它的面前都很贫瘠数学让人摆脱了愚昧而…

聊一聊如何用C#轻松完成一个SAGA分布式事务

背景 银行跨行转账业务是一个典型分布式事务场景&#xff0c;假设 A 需要跨行转账给 B&#xff0c;那么就涉及两个银行的数据&#xff0c;无法通过一个数据库的本地事务保证转账的 ACID &#xff0c;只能够通过分布式事务来解决。市面上使用比较多的分布式事务框架&#xff0c…

梯度消失和梯度爆炸_知识干货-动手学深度学习-05 梯度消失和梯度爆炸以及Kaggle房价预测...

梯度消失和梯度爆炸考虑到环境因素的其他问题Kaggle房价预测梯度消失和梯度爆炸深度模型有关数值稳定性的典型问题是消失&#xff08;vanishing&#xff09;和爆炸&#xff08;explosion&#xff09;。当神经网络的层数较多时&#xff0c;模型的数值稳定性容易变差。PyTorch的默…

Js中 关于top、clientTop、scrollTop、offsetTop的用法

2019独角兽企业重金招聘Python工程师标准>>> Js中 关于top、clientTop、scrollTop、offsetTop的用法 网页可见区域宽&#xff1a; document.body.clientWidth; 网页可见区域高&#xff1a; document.body.clientHeight; 网页可见区域宽&#xff1a; document.body.…

UVa 1639 (期望) Candy

题意&#xff1a; 两个盒子里各有n颗糖&#xff0c;每天有p的概率从第一个盒子里取一颗糖&#xff0c;1-p的概率从第二个盒子里去一颗糖。直到某一天打开某个盒子忽然发现没糖了&#xff0c;求另一个盒子里剩余糖果数的期望。 分析&#xff1a; 紫书上面已经分析的很清楚了&…

C#中的串口通信SerialPort

前言大家好&#xff0c;我是阿辉。今天这篇文章带大家学习下C#中的串口通讯。在日常的开发工作中&#xff0c;如果工作内容是CS方向的同学应该很容易接触到串口通讯方面的业务需求。那么也就很容易想到C#中SerialPort类&#xff0c;它就是专门来处理串口通讯相关的。了解什么是…

日本的酒店主题能有多丰富?

1 伤害性不大&#xff0c;侮辱性极强&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 好家伙&#xff0c;这字医生都看不懂&#xff01;&#xff08;via.你的野王&#xff0c;侵删&#xff09;▼3 当家里点了电子蜡烛&#xff08;素材来源网络&#xff0c;侵删&…

6款程序员不得不爱的bootstrap模板

Bootstrap是基于jQuery框架开发的&#xff0c;它在jQuery框架的基础上进行了更为个性化和人性化的完善&#xff0c;形成一套自己独有的网站风格&#xff0c;并兼容大 部分jQuery插件。Bootstrap中包含了丰富的Web组件&#xff0c;根据这些组件&#xff0c;可以快速的搭建一个漂…

Natasha 4.0 探索之路系列(四) 模板 API

相关文章Natasha 4.0 探索之路系列(一) 概况Natasha 4.0 探索之路系列(二) 「域」与插件Natasha 模板Natasha 在编译单元的基础上进行了封装整理, 并提供了多种模板帮助开发者构建功能.使用此篇的 API 前提是您对 C# 非常熟悉, 对系统的一些类型足够了解.据此 Natasha 将拒绝与…

青年博士离职高校被索赔10.5万违约金,后博士上诉至法院,判决来了!

全世界只有3.14 % 的人关注了爆炸吧知识本文转自募格学术我们都知道&#xff0c;现在入职高校往往都要签订一定的服务年限合同&#xff0c;如果合同期未满想要离职的话&#xff0c;需要给高校支付巨额违约金。但根据《劳动法》&#xff0c;有些巨额违约金从法律层面来说是站不住…

linux c 之使用-O来优化gcc

比如一般文件编译 gcc bfs.c -o bfs然后查看花了多少时间 time ./bfs 然后看结果 使用-O 优化&#xff0c;输入下面命令 gcc -O bfs.c -o bfs 再看所需时间&#xff0c;输入下面命令 time ./bfs 结果如图 我们还可以进一步优化用 -O1 -O2 -O3&#xff0c;列如 gcc -O2 bfs.c -…

Hbase Java API详解

2019独角兽企业重金招聘Python工程师标准>>> HBase是Hadoop的数据库&#xff0c;能够对大数据提供随机、实时读写访问。他是开源的&#xff0c;分布式的&#xff0c;多版本的&#xff0c;面向列的&#xff0c;存储模型。 在讲解的时候我首先给大家讲解一下HBase的整…