Abp VNext是Abp的.NET Core 版本,但它不仅仅只是代码重写了。Abp团队在过去多年社区和商业版本的反馈上做了很多的改进。包括性能、底层的框架设计,它融合了更多优雅的设计实践。不管你是自己需要快速上手项目、或者是公司的研发团队没有足够的能力去完整地开发一套稳定且功能全面的快速开发框架;对于.NET 系的开发者和公司来说,Abp目前就是你目前最好的选择。2020年7月15日和腾飞Jesse、计节做了一次《我和ABP vNext的故事》直播,期间我分享时间超时,占用了25分钟,也就是这次直播分享时间超过我们预定的一小时。直播回看地址:https://wxc2160346e3bc5861.h5.xiaoe-tech.com/v1/course/video/v_5f0f9c39e4b04349896c2370?type=2

2018年我从腾讯离职开始创业至今,马上就满2年时间了,在这两年时间里我一直在伴随ABP vNext这个项目成长,我的分享主题就是下面这三点,这三点也是大家非常关心的为什么我要选择ABP vNext。

ABP vNext 的前身是aspnetboilerplate, 2017年开始基于.NET Core 进行重构,新的框架名称定义为ABP,目前已经发布3.0.4 版本。在国内ABP ,很多人可能对这个ABP vNext不太了解,很多人使用过的abp更多是老版本的aspnetboilerplate ,老版本的aspnetboilerplate 其实我也没有深入使用过,我只用它做过一个简单Demo,来自国内社区的使用体验是臃肿复杂,性能差。 ABP vNext 我从0.5版本开始使用,2018年底我就在一家外企项目中导入了ABP vNext,后面还有好几个客户项目也是导入了ABP vNext。ABP vNext 采用敏捷的开发模式,每个月发布一个版本。 最初的0.5版本时,底层的模块化等基础框架已经具备可用性,所以那时候采用的ABP vNext的模式和腾飞后面给大家介绍的使用方式是一致的。 2019年11月在上海举办的首届中国dotnet开发者峰会上也预约了2位讲师介绍ABP vNext相关内容,其中土牛(土耳其大牛)简单介绍Abp.io,分享对.NET Core和ABP框架的看法值得大家回顾一下:

还有另外一位讲师粱士伟讲的《下一代ASP.NET Core开源应用程序框架》,现在他是全职开发ABP vNext的国内开发者,在国内远程工作,拿美元工资。目前在国内有两位全职的ABP vNext开源开发者。

说起ABP vNext就不得不和老的aspnetboilerplate 进行比较。 ABP vNext 和 aspnetboilerplate  关系类似.NET Core和 .NET Framework的关系,ABP vNext是在aspnetboilerplate 项目多年经验的基础上针对.NET Core的特性重写的聚焦于微服务的模块化框架。在我开始使用ABP vNext项目之前,我也在github上创建了一个整合.NET 社区开源项目的胶水代码项目NanoFabric,后面我再具体介绍这个项目的具体情况。2018年底我离职创业后不久我就发现了ABP vNext这个项目,他们还有一个专业的团队在开发,我也就融入了这个ABP vNext社区, ABP vNext 在模块化软件开发方面达到了新的层次,非常类似于乐高这样搭积木体系, 我现在开发的大量项目都是才作用这种模块化的搭积木体系来进行,可以单体也可以微服务,非常的灵活,重用性方面也非常好,结合ABP vNext的商业版,可以做到从前端到后端的模块化重用。

我们开发软件的时候都希望能够使用快速开发框架来帮我们加快开发速度,也就是可重用的应用程序开发框架,对于这样的一个可重用的应用程序框架并不简单,从开发体验方面,开发框架的不断保持更新,完善的文档支持,开发人员的培训支持等方面都需要做出非常大努力。ABP vNext 也是这样的一个可重用的应用程序框架。 在.NET社区里一直有声音是期望有一个Spring Boot这样的项目,现在我可以告诉大家ABP vNext 可以媲美Spring Boot这样的项目, ABP vNext 融合了大量.NET社区的开源项目,让你在开发项目的过程中选择不同的开源项目组合起来,大大降低你使用相关开源项目的门槛,最明显的例子就是IdentityServer4, IdentityServer4是一个OpenID Connect 规范实现的开源框架,它还无法做到开箱即用这样的一个层度,那么ABP vNext 将IdentityServer4封装成一个IdentityServer模块,你就可以做到开箱即用。

上面给大家介绍ABP 是什么,前面也提到了aspnetboilerplate 体验也并不好,为什么我选择使用ABP vNext。大家都在寻找一个好用的业务开发框架,这种开源业务开发框架也很多,大家都知道我们国内开发者一起组织发展的https://github.com/dotnetcore ,在这个社区里已经有好几个功能完善的应用开发框架,比如https://github.com/dotnetcore/Utilhttps://github.com/dotnetcore/OSharphttps://github.com/dotnetcore/WTM。这些开发框架我都没有选择的原因在于我的关注点在于微服务开发框架,基于k8s 的云原生应用开发是未来的趋势,去年我也一直在推广.NET Core在k8s 运行, 我们的很多公司的团队都很小,有的只有3-4个人,大的有几百号人。我们要以云原生的方式来开发应用,如何在不同规模的团队之间平衡,如何在小团队时采用单体架构,当团队规模扩大后优雅的拆分成微服务架构,还有SaaS 在云原生环境下的架构挑战等。这几个方面ABP vNext 都很好的解决了,上面提到几个框架没有很好的解决微服务场景下的应用开发框架,只做到了单体开发的模块化。

大家看到了ppt上这个项目NanoFabric,这个项目始于2017.2.2,这期间我有做过一次简单分享,2018年10月份我就把它设置为只读状态,后面我就没有继续更新了,从此之后我就把这个项目的相关内容转为使用ABP vNext,可以看到这个项目的star还在增长,说明有很多同学还在关注这个项目,有很多同学私下找我聊的时候我都是推荐他们使用ABP vNext,今年年出又发现了一新的组织https://github.com/easyabp ,因此我也加入了这一组织,现在我们有6位同学,主要是ABP 官方之外的使用ABP 的同学组成,大部分是国内使用ABP vNext的同学,也有国外社区,欢迎大家参与这个组织的发展,目标是帮助大家更容易的使用ABP vNext。今年年初的时候ABP vNext已经发布了2.0版本,已经比较成熟了,因此我也特意在这个项目的介绍上留下了这么一段话,推荐大家转到使用ABP vNext。


我已经使用ABP vNext将近2年时间,ABP vNext 目前在github的star 也超过了4000, ABP vNext相对于aspnetboilerplate  使用门槛相对提高,同时ABP Zero也很成熟,对应的就是ABP商业版 https://commercial.abp.io/, 粱桐铭同学搞的52ABP 也是有声有色。 类似于52ABP的ABP的本地化内容也是我们Easyabp 社区组织让大家更好的使用,比如对微信,支付宝,阿里云,腾讯云等本地资源的适配,在easyabp 里有一个仓库 https://github.com/EasyAbp/awesome-abp 汇集了abp的相关资源。 同时Easyabp 提供了类似于ABP 商业版的Abp suite工具,辅助我们快速开发应用。ABP vNext 现在也是我公司的应用开发框架,我公司网站上也有一个专门介绍ABP vNext的页面 http://www.weyhd.com/abpvnext

今年年初我给腾飞介绍ABP vNext, 他开始接触 Abp VNext的时候,就被它优雅的模块化和组件化设计吸引了。以前的Abp给人的感觉臃肿,现在Abp提供的多个功能你都可以在使用的时候自己选择组合。基于横切关注点的设计思路,可以很好的使用Abp所提供的一些基础模块 。上半年腾飞给一些企业做过关于Abp的培训,所接触到的一些中小企业,包括我现在所在的企业研发团队在80人以内都很难有足够的能力去研发一套如何功能完整且稳定快速开发框架。与其自己投入大量的人力和时间造轮子,为什么不选择一套成熟稳定的开源产品呢? 因此他还特意录制一个系列的视频课程,放在dotnet课堂,欢迎大家一起来评估学习。

我和ABP vNext 的故事的更多相关文章

  1. [Abp vNext 源码分析] - 6. DDD 的应用层支持 (应用服务)

    一.简要介绍 ABP vNext 针对于应用服务层,为我们单独设计了一个模块进行实现,即 Volo.Abp.Ddd.Application 模块. PS:最近博主也是在恶补 DDD 相关的知识,这里推 ...

  2. [Abp vNext 源码分析] - 文章目录

    一.简要介绍 ABP vNext 是 ABP 框架作者所发起的新项目,截止目前 (2019 年 2 月 18 日) 已经拥有 1400 多个 Star,最新版本号为 v 0.16.0 ,但还属于预览版 ...

  3. [Abp vNext 源码分析] - 3. 依赖注入与拦截器

    一.简要说明 ABP vNext 框架在使用依赖注入服务的时候,是直接使用的微软提供的 Microsoft.Extensions.DependencyInjection 包.这里与原来的 ABP 框架 ...

  4. [Abp vNext 源码分析] - 2. 模块系统的变化

    一.简要说明 本篇文章主要分析 Abp vNext 当中的模块系统,从类型构造层面上来看,Abp vNext 当中不再只是单纯的通过 AbpModuleManager 来管理其他的模块,它现在则是 I ...

  5. [Abp vNext 源码分析] - 1. 框架启动流程分析

    一.简要说明 本篇文章主要剖析与讲解 Abp vNext 在 Web API 项目下的启动流程,让大家了解整个 Abp vNext 框架是如何运作的.总的来说 ,Abp vNext 比起 ABP 框架 ...

  6. 自定义Visual Studio.net Extensions 开发符合ABP vnext框架代码生成插件[附源码]

    介绍 我很早之前一直在做mvc5 scaffolder的开发功能做的已经非常完善,使用代码对mvc5的项目开发效率确实能成倍的提高,就算是刚进团队的新成员也能很快上手,如果你感兴趣 可以参考 http ...

  7. 用abp vNext快速开发Quartz.NET定时任务管理界面

    今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp.net core的快速开发框架来进行Quartz.net定时任务调度的管理界面的开发.大伙最好跟着一起敲一下代码,当然源码 ...

  8. Abp vNext 切换MySql数据库

    Abp vNext是Abp的下一代版本,目前还在经一步完善,代码已经全部重写了,好的东西保留了下来,去除了很多笨重的东西,从官宣来看,Abp vNext主要是为了以后微服务架构而诞生的. 从源码来看, ...

  9. [译]ABP vNext微服务演示,项目状态和路线图

    译注: ABP的主要负责人hikalkan最近又发布了一篇博客, 说明了ABP vNext的微服务演示,项目状态和路线图.其中特意对ABP的中文社区进行了感谢! 本文翻译自该博客文章(https:// ...

随机推荐

  1. JVM源码分析之Object.wait/notify(All)完全解读

    概述 本文其实一直都想写,因为各种原因一直拖着没写,直到开公众号的第一天,有朋友再次问到这个问题,这次让我静心下来准备写下这篇文章,本文有些东西是我自己的理解,比如为什么JDK一开始要这么设计,初衷是 ...

  2. mysql大表在不停机的情况下增加字段该怎么处理

    MySQL中给一张千万甚至更大量级的表添加字段一直是比较头疼的问题,遇到此情况通常该如果处理?本文通过常见的三种场景进行案例说明. 1. 环境准备 数据库版本: 5.7.25-28(Percona 分 ...

  3. 状态机模式 与 ajax 的结合运用

    太神奇了,昨晚做了个梦,梦中我悟出一个道理:凡是涉及到异步操作而且需要返回值的函数,一定要封装成 Promise 的形式,假如返回值取决于多个异步操作的结果,那么需要对每个异步操作进行状态的设计,而且 ...

  4. MFC文档视图中窗口切换 (2012-05-11 18:32:48)

    在文档试图应用程序,有时需要在工作区切换试图,以下就是如何切换试图了 .创建要切换的视图类,同时把构造函数,Create函数改变为public .在需要切换试图的动作响应中,加入切换代码,一般是在CM ...

  5. 堆、栈、数据区、bss、代码段

    一个程序的运行是需要内存的,那么我们平常写的程序的内存都是怎么分配的呢 (1)首先我们要知道,内存是真实存在的,内存是一个物理器件.它时由操作系统管理的,我们平常只要使用它就行了,为了方便管理.操作系 ...

  6. oracle创建序列,并插入记录

    Oracle序列创建和使用创建序列 语法 CREATE SEQUENCE 序列名 [相关参数] 参数说明 INCREMENT BY  : 序列变化的步进,负值表示递减.(默认1) START WITH ...

  7. 无题II HDU - 2236 【二分图+二分答案】

    题目 这是一个简单的游戏,在一个n*n的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数中的最大值和最小值的差值最小. Input 输入一个整数T表示T组数据. 对于每组数据第一行输入一 ...

  8. (私人收藏)React教程手册

    React教程手册 https://pan.baidu.com/s/1ka2PJ54HgqJ8lC6XgbvdLg pedx React 教程 含有3个附件,如下: react.js react-do ...

  9. (私人收藏)红色项目工作计划总结汇报PPT模板

    红色项目工作计划总结汇报PPT模板 https://pan.baidu.com/s/1fr-PB7ieveSIqSXrB0YXsgbgdc

  10. css 分割线样式_css实现文章分割线的多种方法总结

    这篇文章整理css如何实现文章分割线的多种方式,分割线在页面中可以起到美化作用,那么就来看看使用css实现分割线样式的多种方法.效果如下: 方式一:单个标签实现分隔线: html: <div c ...