1. 程式人生 > >我和ABP vNext 的故事

我和ABP vNext 的故事

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/Util,https://github.com/dotnetcore/OSharp,https://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故事

Abp VNext是Abp的.NET Core 版本,但它不僅僅只是程式碼重寫了。Abp團隊在過去多年社群和商業版本的反饋上做了很多的改進。包括效能、底層的框架設計,它融合了更多優雅的設計實踐。不管你是自己需要快速上手專案、或者是公司的研發團隊沒有足夠的能力去完整地開發一套穩定且功能全面的快速開發框架;對於.

#51CTO學院四周年# 51cto的故事

技能大增啦某日午後,閑遊漫步於網絡世界中,51cto映入眼簾。百萬紅塵之中,視之千次萬次不如那驚鴻一瞥,閱之千遍萬遍不如銘心刻骨。緣於此次偶然相見,屬於我的代碼世界的那扇門已經開啟。我也不知道是為什麽第一門課程會選擇李炎恢老師講的《PHP入門教程》,當初我打開51cto的界面,已經完全被那些眼花繚亂的代碼名詞

【轉】權威的故事

早期 匯編語言 算法 結構 圖書 ges 相關 針對 收回 每個人小時候心裏都是沒有權威的,就像每個人小時候也都不相信廣告一樣。可是權威就像廣告,它埋伏在你的潛意識裏。聽一遍不信,聽兩遍不信,……,直到一千遍的時候,它忽然開始起作用了,而且這作用越來越強。 消滅廣告所造成的

好文章——王垠:權威的故事

原文出處: 王垠的部落格(@_王垠_) 每個人小時候心裡都是沒有權威的,就像每個人小時候也都不相信廣告一樣。可是權威就像廣告,你聽一遍不信,聽兩遍不信,……,直到一千遍的時候,它忽然開始起作用了,而且這作用越來越強。 消滅廣告所造成的幻覺,最好的辦法就是去嘗試,去實地的考

談談軟件工程的故事

登錄 心態 ron 成就 命運 老師 積累 經歷 分數 我時常有思考過我與軟件工程這個專業的事,總體來說我覺得更多的是一種因緣。 我是一個對萬事萬物都抱有好奇心的人,所以我可以很負責說至今為止我還挺喜歡這個專業,但熱愛,那真的談不上。我至今也不太清楚熱愛一件東西是一種什麽感

軟件工程的故事(作業一)

紮克伯格 道路 ebo clas 學校 AC 為什麽 行業 一定的 為什麽選擇軟件工程這個專業呢,最開始對這個專業有興趣是因為一部高三時候看的電影,名字叫做《社交網絡》,這部電影講的是Facebook的創始人紮克伯格創建Facebook的故事,其中電影開端紮克伯格飛快攻破幾

shiro有個故事

廢話不多講,shiro大概就是一個安全許可權之類的框架。更多資訊移步百度 也不要跟著我下面開始敲程式碼,因為我覺得多半是不能執行起來的   shiro核心是使用者-角色-許可權之間的關係。如下圖   表大概內容如下   &n

敏捷開發的故事--敏捷角色-SM

通過上篇文章我們已經知道了敏捷角色中PO的角色內容,接下來的一個敏捷角色在敏捷開發中非常關鍵,但是往往很多專案實踐中都沒有很好的把控好這個角色,讓他或多或少的沒有起到相應的作用,這個角色就是S

敏捷開發的故事--敏捷角色-TEAM

      在敏捷開發中除了PO跟SM之外,另外一個非常重要的角色就是TEAM,也就是我們的開發(有些包括測試)團隊. 因為在每個迭代進行的過程中,真正的將需求實現為使用者需要的產品是在團隊的同心

敏捷開發的故事--敏捷角色PO

        在前面的三篇文章中對敏捷開發進行了一個背景鋪墊,是以筆者個人的經歷為主線來逐漸從個人的角度來理解敏捷開發. 通過結對程式設計完成了開發框架的搭建,在搭建框架的時候其實我們的正式敏捷流程還沒有開始,真正開始是大家都可以行動的時候.當敏捷開始的時候整個團隊定

Visual Studio 20週年,VS不得不說的故事

Visual Studio 2017正式版已如期釋出(點選這裡檢視釋出全記錄)!自去年 11 月正式宣佈 Visual Studio 專案之後,微軟終於正式推出了“宇宙最強整合開發環境(IDE)”的最新版本,且恰逢 Visual Studio 誕生 20 週年。 不出所料的是,微軟聲稱這是迄今為止最具生

這便是跨屏的故事

view https follow 服務 href clas 實的 問題 eight 05年的站長,至今仍在努力 我是aming,很草率的寫下這篇文字,後面有時間我會在完善,我的微信: 我的微信 2013年5位數拿下行業詞切圖 qietu.com 《切圖網

技術人生系列 · 資料中心的故事——第一期

前 言 小y這個名字,是筆者臨時想的一個筆名,其實沒有什麼特殊的含義,就暫且用他來代表我們這些為各個資料中心奉獻自己青春的一群默默無聞的IT人吧! 小y今天要和大家分享的

黑馬程式設計師—男朋友在黑馬的故事,感謝黑馬~~~~~~~~...

(注:黑馬學員發來的畢業感言)  我是一名女生,也是黑馬訓練營培訓出來的一匹最普通的黑馬,眾馬雲集又各奔前程。現在的我已找到一份滿意的7k工作。每當夕陽西下,結束了一天忙碌的工作,都會想起和他在黑馬的充實而快樂的時光。我和我的男朋友來自同一個學校同一個系。本來無緣相識,因為有著共同的程式設計夢想先手於畢業前夕

基於 abp vNext .NET Core 開發部落格專案 - 使用 abp cli 搭建專案

首先,預設咱們已經有了.net core 3.1的開發環境,如果你沒有,快去下載... https://dotnet.microsoft.com/download 由於專案是基於abp vNext開發的,所以開發之前建議去擼一遍abp官方文件,https://docs.abp.io/en/abp/lates

基於 abp vNext .NET Core 開發部落格專案 - 給專案瘦身,讓它跑起來

上一篇文章(https://www.cnblogs.com/meowv/p/12896177.html)已經成功建立了部落格專案,但是abp預設給我們引用了許多專案中用不到的元件。 本篇文章將給專案進行瘦身,刪掉對我們來說暫時用不到的元件。講解各個模組之間的關係,寫一個Hello World,讓其成功執行起

基於 abp vNext .NET Core 開發部落格專案 - 完善與美化,Swagger登場

上一篇文章(https://www.cnblogs.com/meowv/p/12896898.html)已經成功將部落格專案跑起來了,那麼本篇主要是將之前遺留的問題解決,現在的程式碼看起來可能還是比較混亂,有大量與之無關的程式碼存在裡面,對於強迫症患者來說真的是零容忍。 在程式設計師界,總有一批強迫症患者,

基於 abp vNext .NET Core 開發部落格專案 - 資料訪問程式碼優先

上一篇文章(https://www.cnblogs.com/meowv/p/12909558.html)完善了專案中的程式碼,接入了Swagger。本篇主要使用Entity Framework Core完成對資料庫的訪問,以及使用Code-First的方式進行資料遷移,自動建立表結構。 ## 資料訪問 在

基於 abp vNext .NET Core 開發部落格專案 - 自定義倉儲之增刪改查

上一篇文章(https://www.cnblogs.com/meowv/p/12913676.html)我們用Code-First的方式建立了部落格所需的實體類,生成了資料庫表,完成了對EF Core的封裝。 本篇說一下自定義倉儲的實現方式,其實在abp框架中已經預設給我們實現了預設的通用(泛型)倉儲,`I

基於 abp vNext .NET Core 開發部落格專案 - 統一規範API,包裝返回模型

上一篇文章(https://www.cnblogs.com/meowv/p/12916613.html)使用自定義倉儲完成了簡單的增刪改查案例,有心的同學可以看出,我們的返回引數一塌糊塗,顯得很不友好。 在實際開發過程中,每個公司可能不盡相同,但都大同小異,我們的返回資料都是包裹在一個公共的模型下面的,而不