我的技术回顾那些与ABP框架有关的故事-2017年
推薦閱讀:
我的技術(shù)回顧那些與ABP框架有關(guān)的故事-2015年
從ABP框架國內(nèi)社區(qū)發(fā)展回顧.NET技術(shù)變遷-2016年
從2022年來回顧ABP框架,我們會發(fā)現(xiàn)無論是商業(yè)模式還是架構(gòu)設(shè)計思路,如果沒有良好的商業(yè)模式的話,ABP框架很容易進(jìn)入難產(chǎn)的狀態(tài),比如之前很多的框架,因?yàn)闆]有商業(yè)支持,導(dǎo)致已經(jīng)沒有維護(hù)了。
所以我們在選擇框架的時候,既然重視它的架構(gòu)設(shè)計,技術(shù)選型也要選擇能夠有實(shí)力做到可以持續(xù)更新的框架。
面臨變革的ABP框架
2017年的ABP,對于ABP框架的作者來說無疑是一個充滿了挑戰(zhàn)的一年。
.NET Core 雖然出來了,但是很多公司用于它做做小項目,或者嘗鮮還行,直接貿(mào)然的更換為主力開發(fā)框架這個對于每個公司來說都是充滿了戰(zhàn)略級的決定。
對.NET 開發(fā)者來說充滿了挑戰(zhàn)的一年,由于技術(shù)慣性,大部分的開發(fā)人員都是在.NET Framework中工作,采用的服務(wù)器都是Windows,對于.NET Core的新特性掌握的并不扎實(shí)。對于其他的技術(shù)方案如容器化,Nginx并不感冒。
但技術(shù)和市場,以及客戶環(huán)境是不會容忍你的停滯,因?yàn)檫@一年整個技術(shù)圈都在發(fā)生變化,大家開始提倡微服務(wù)、中臺、工業(yè)4.0、大數(shù)據(jù)、云計算這些新的技術(shù)概念,這些概念在目前來說 落地到了云原生的場景。
那么.NET 如果要跟上這樣的流行趨勢,那么勢必也要變化和調(diào)整。對于ABP來說,也是一樣的。它需要照顧好以前的老客戶群體,即:.NET Framework的用戶群,同時又要兼容.NET Core 的發(fā)展趨勢。
這個對于任何一個架構(gòu)師來說都是非常難的。所以ABP框架在2017年開始瘋狂的補(bǔ)充文檔和適配.NET Core,中途可以看到隨著ABP框架作者對于.NET Core的了解越深。里面開始增加了很多只有.NET Core才有的特性,17年ABP框架發(fā)布了幾個比較大的版本,尤其是v2.0。
ABP框架v2.1發(fā)布(2017年6月)
不提2.0的原因是,2.0的版本一直在快速的迭代和發(fā)布,中間從2.0升級到2.1變更了太多的東西。當(dāng)然大部分的開發(fā)者還停留在1.0,如果不是為了特意的技術(shù)研究也不會去翻閱2.0的源碼和內(nèi)容。
所以2.1的版本在我看來是最固定的版本內(nèi)容。
?大家比較可能比較熟悉的是支持Dapper模塊,當(dāng)然還有其他很多功能和內(nèi)容。
但其實(shí)在內(nèi)部也做了非常靈活的封裝方法,即CrudAppService 。便于快速的完成CRUD操作,達(dá)到快速開發(fā)的目的。
本地化、多語言、增強(qiáng)工作單元這些基礎(chǔ)設(shè)施內(nèi)容
.NET Core 2.0 發(fā)布(2017年8月)
2017年8月.NET Core 2.0發(fā)布后,ABP框架升級到.NET Core 2。作者緊隨其后發(fā)布ABP v3.0.0的版本,這版本也基本奠定了后面會將abp剝離一個單獨(dú)僅支持.NET Core的解決方案。這個也會更加的偏重于微服務(wù)、模塊化的方向,更側(cè)重于向DDD靠攏,拋棄掉為了兼容.NET Framework 要做的妥協(xié)。
前端方案的選擇與變化:vue還是angular
2017年前端開發(fā)框架也開始了從angularjs1.x升級到angular2的變化。國內(nèi)開發(fā)者喜歡vue1.x升級vue2的解決方案。
彼時去哪兒還沒有被攜程合并,司徒正美的阿瓦隆(avalon.js)也是這個時候的主流。但是因?yàn)檫\(yùn)營和生態(tài)的問題,慢慢被擠出市場。
如果你關(guān)注前端技術(shù)圈,會知曉司徒正美大佬,因?yàn)榧棺挡∮?020年3月逝世。
更多詳情請參考:回憶與前端大神司徒正美(鐘欽成)的二三事與大齡程序員猝死問題
不過關(guān)于司徒正美,其實(shí)也是一個簡單的故事,一位來自農(nóng)村的少年,不在乎命運(yùn)對他的捉弄,勇敢經(jīng)歷短暫的人生,在二次元繼續(xù)尋找著技術(shù)的真諦。by 劉悅
17年的時候整個市場上angular2和vue2以及react都在屬于三雄爭霸的時代,大家分別從各自的維度上來蠶食著JQuery的份額。
從國內(nèi)來看vue2靠著它的入門門檻低,人員薪資便宜,國內(nèi)特殊的小程序生態(tài)圈,占領(lǐng)了國內(nèi)的整個前端的生態(tài)圈。國外的話angular、react、vue依然是三足鼎立的態(tài)勢。
所以很多時候,運(yùn)營好了之后,會給技術(shù)如虎添翼。
ABP框架在前端的默認(rèn)支持方案-Angular4
Angular因?yàn)橐劳杏赥ypeScript的強(qiáng)類型語言特性,ABP自然會選擇生態(tài)和設(shè)計偏重于后端的解決方案:Angular。
當(dāng)然這個不是最重要的,在我看來,最重要的是ABP的商業(yè)版本是要打造一個包含前后端的解決方案,而在這種時候,大多數(shù)是可以靠功能進(jìn)行控制的。
在React框架里面我記得有一句話叫做:單向數(shù)據(jù)流,后來在Vue里面這句話也當(dāng)做一個標(biāo)準(zhǔn),后來被調(diào)整為雙向數(shù)據(jù)流,但是組件之間的管理又推崇單向數(shù)據(jù)流。(扯遠(yuǎn)了)
但是從單向數(shù)據(jù)流這個標(biāo)準(zhǔn)來說,最后所有的東西是從數(shù)據(jù)庫、經(jīng)過后端的邏輯配置為功能后,前端進(jìn)行渲染和輸出是最合理的。這樣前端的人員可以花更多的心力在交互體驗(yàn)上了。
所以很多時候ABP框架為了可控,尤其在針對復(fù)雜項目的時候,你會發(fā)現(xiàn)它會相當(dāng)?shù)墓?jié)約人手,因?yàn)榇蟛糠值幕疃荚诤蠖艘约翱蚣軐用娼鉀Q了。當(dāng)然也會帶來的問題就是后端開發(fā)起來比較繁瑣。所以需要有代碼生成器。
傳統(tǒng)的JQuery并未被拋棄
當(dāng)然MVC方案下的jquery+datatable.js的形式依然保留,在這個方案下依托于abp.js為主的DOM JavaScript方案,依然會讓選擇用傳統(tǒng)形式開發(fā)的小伙伴覺得非常香。尤其采用了統(tǒng)一封裝的代碼寫法了之后,開發(fā)體驗(yàn)程度也會高上很多。
而能把這些方案做的如此完善的原因,是因?yàn)锳BP框架的作者是一個真正的全棧工程師和產(chǎn)品經(jīng)理。因?yàn)樗€有一個前端表格插件jtable.org。
所以像ABP作者這樣,深耕于技術(shù)領(lǐng)域,從后端、前端如此精通的人,加上對于業(yè)務(wù)的理解,這樣的大牛所做出來的框架,我實(shí)在找不到第二個選擇了。
正式開始ABP框架的對外推廣
2017年對于我來說變化尤為重要,在公司內(nèi)部從開發(fā)者變成技術(shù)經(jīng)理到項目經(jīng)理,對一年跨了3個崗位。
而隨著群員越來越多,人員水平并不均衡,也不是所有人都有能力去直接看ABP框架的源碼。
我也受邀如鵬網(wǎng)楊中科老師,作為校友開始了第一次對外直播分析ABP框架。
分享完成后了之后,加群的人也變多了。然后我開始錄制一個簡單的電話薄的Demo給大家。
放在了倒閉了的百度傳課平臺上,你看又一個經(jīng)營不善的平臺。所以看不到了,而且過于早期說實(shí)話我自己都瞧不上。
分享帶來的額外收獲-微軟MVP
隨著基礎(chǔ)性的文章分享越多,無論是博客也好、視頻也罷。同時公司內(nèi)部項目增多,人手緊缺,我也被拉著往管理崗上走,說實(shí)話,也在積微的那幾年見到了太多,這個對于大部分人來說都是不可復(fù)制的經(jīng)歷。
曇花一現(xiàn)的DNC社區(qū)
2017的時候,新東方的mike成立了曇花一現(xiàn)的DNC社區(qū),上圖為dnc社區(qū)峰會截圖。后來因?yàn)樾聳|方加班996太嚴(yán)重,導(dǎo)致后繼乏力。
但是也非常感謝Mike,在他建立的社區(qū)群里,我認(rèn)識了很多非ABP框架圈子的技術(shù)大牛。當(dāng)然在這個DNC社區(qū)里,有太多的大牛,所以也鬧出了一些不太愉快的事情,不過現(xiàn)在想來,那個時候我還只是一個吃瓜群眾,還算好。
然后結(jié)識了成都.NET MVP老大哥,朱永光大哥。然后他帶著我們一起做.NET 有關(guān)的技術(shù)活動、然后陸續(xù)和CAP框架楊曉東、曉晨認(rèn)識,慢慢接觸到了NCC社區(qū)。
聊聊NCC社區(qū)
現(xiàn)在的我已經(jīng)不是一個純粹的程序員了,但是你如果想深耕技術(shù),我想NCC社區(qū)是一個非常推薦你去了解的社區(qū)和組織,雖然我從來沒有和NCC社區(qū)的人有過正式合作。但是非常歡迎你去了解他們,是一個真正中立致力于.NET 技術(shù)推廣的社區(qū)。
所以.NET的社區(qū)有很多,但是因?yàn)榇蠹叶冀?jīng)營的很佛系,所以不太知道罷了。
而在2017年成為MVP之后,參加了太多的技術(shù)活動,開闊了無數(shù)的眼界,現(xiàn)在想來,2017年微軟的很多客戶落地的一些項目方案,到2021年了才開始有國內(nèi)的公司出現(xiàn)在了解和使用。
最初分享技術(shù)的時候并沒有想過要成為微軟MVP,但是因?yàn)槌蔀榱宋④汳VP讓我在推廣技術(shù)的時候可以得到很多額外的助力,比如
成為微軟MVP,我可以獲得很多的技術(shù)支持。
可以直接和微軟dotnet團(tuán)隊對話,看到非常多的內(nèi)部資料。
可以直接參加微軟的技術(shù)活動。
可以享受到微軟以及它生態(tài)聯(lián)盟里面多大200多種產(chǎn)品的免費(fèi)使用。
微軟內(nèi)部大量的免費(fèi)學(xué)習(xí)資料(前提英語要好),可以看到很多解決方案。
19年后還贈送了每年Azure 1w美刀的額度給我們。
等等內(nèi)部的權(quán)益,包括對于你的職業(yè)生涯也有很大的助力。
所以踏實(shí)做事,總會得到很多額外的驚喜。
如果有機(jī)會,我或許會再寫一篇《我的微軟MVP五周年》記錄吧!
推薦
《深入淺出ASP.NET Core 》書籍配套源代碼與視頻下載
如果你喜歡本文,歡迎關(guān)注我"角落的白板報",訂閱更多精彩內(nèi)容
掃描下方二維碼,加入我們的高質(zhì)量技術(shù)交流群!
總結(jié)
以上是生活随笔為你收集整理的我的技术回顾那些与ABP框架有关的故事-2017年的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一款强大的Kubernetes API流
- 下一篇: SkyWalking集成与案例