我的技术回顾那些与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的版本在我看來是最固定的版本內容。
?大家比較可能比較熟悉的是支持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 劉悅
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。
所以像ABP作者這樣,深耕于技術領域,從后端、前端如此精通的人,加上對于業務的理解,這樣的大牛所做出來的框架,我實在找不到第二個選擇了。
正式開始ABP框架的對外推廣
2017年對于我來說變化尤為重要,在公司內部從開發者變成技術經理到項目經理,對一年跨了3個崗位。
而隨著群員越來越多,人員水平并不均衡,也不是所有人都有能力去直接看ABP框架的源碼。
我也受邀如鵬網楊中科老師,作為校友開始了第一次對外直播分析ABP框架。
分享完成后了之后,加群的人也變多了。然后我開始錄制一個簡單的電話薄的Demo給大家。
放在了倒閉了的百度傳課平臺上,你看又一個經營不善的平臺。所以看不到了,而且過于早期說實話我自己都瞧不上。
分享帶來的額外收獲-微軟MVP
隨著基礎性的文章分享越多,無論是博客也好、視頻也罷。同時公司內部項目增多,人手緊缺,我也被拉著往管理崗上走,說實話,也在積微的那幾年見到了太多,這個對于大部分人來說都是不可復制的經歷。
曇花一現的DNC社區
2017的時候,新東方的mike成立了曇花一現的DNC社區,上圖為dnc社區峰會截圖。后來因為新東方加班996太嚴重,導致后繼乏力。
但是也非常感謝Mike,在他建立的社區群里,我認識了很多非ABP框架圈子的技術大牛。當然在這個DNC社區里,有太多的大牛,所以也鬧出了一些不太愉快的事情,不過現在想來,那個時候我還只是一個吃瓜群眾,還算好。
然后結識了成都.NET MVP老大哥,朱永光大哥。然后他帶著我們一起做.NET 有關的技術活動、然后陸續和CAP框架楊曉東、曉晨認識,慢慢接觸到了NCC社區。
聊聊NCC社區
現在的我已經不是一個純粹的程序員了,但是你如果想深耕技術,我想NCC社區是一個非常推薦你去了解的社區和組織,雖然我從來沒有和NCC社區的人有過正式合作。但是非常歡迎你去了解他們,是一個真正中立致力于.NET 技術推廣的社區。
所以.NET的社區有很多,但是因為大家都經營的很佛系,所以不太知道罷了。
而在2017年成為MVP之后,參加了太多的技術活動,開闊了無數的眼界,現在想來,2017年微軟的很多客戶落地的一些項目方案,到2021年了才開始有國內的公司出現在了解和使用。
最初分享技術的時候并沒有想過要成為微軟MVP,但是因為成為了微軟MVP讓我在推廣技術的時候可以得到很多額外的助力,比如
成為微軟MVP,我可以獲得很多的技術支持。
可以直接和微軟dotnet團隊對話,看到非常多的內部資料。
可以直接參加微軟的技術活動。
可以享受到微軟以及它生態聯盟里面多大200多種產品的免費使用。
微軟內部大量的免費學習資料(前提英語要好),可以看到很多解決方案。
19年后還贈送了每年Azure 1w美刀的額度給我們。
等等內部的權益,包括對于你的職業生涯也有很大的助力。
所以踏實做事,總會得到很多額外的驚喜。
如果有機會,我或許會再寫一篇《我的微軟MVP五周年》記錄吧!
推薦
《深入淺出ASP.NET Core 》書籍配套源代碼與視頻下載
如果你喜歡本文,歡迎關注我"角落的白板報",訂閱更多精彩內容
掃描下方二維碼,加入我們的高質量技術交流群!
總結
以上是生活随笔為你收集整理的我的技术回顾那些与ABP框架有关的故事-2017年的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 一款强大的Kubernetes API流
 - 下一篇: SkyWalking集成与案例