WTM 構建DotNetCore開源生態,坐而論道不如起而行之
作為一個8歲開始學習程式設計,至今40歲的老程式設計師,這輩子使用過無數種語言,從basic開始,到pascal, C, C++,到後來的 java, c#,perl,php,再到現在流行的python。
小時候的我總覺得多掌握一門語言,我的技術能力就又前進了一步;
後來長大了慢慢明白,程式語言就和我們說的語言一樣,如果你只會罵街,即使精通18國外語也成不了文學家,因為:
我記得大約是18、9歲的時候接觸的java,比dotnet更早,畢竟java更早出來的。
但是後來有了C#之後,我喜新厭舊了,原因很簡單,好比兩個姑娘,C#更美,更能體現我心目中程式設計是一種藝術的理念。
當然,總有“高手”跳出來說,那只是語法糖而已,可是高階語言裡哪個語法不是語法糖,你為啥不去用匯編或者乾脆用打孔紙帶。
國內Java一家獨大原因很多,有BAT的示範效應,也有微軟自己戰略的失誤。
好在微軟這兩年終於想明白了, dotnet core的橫空出世和收購github都是非常正確的方向。
當然要想達到java一樣的生態還有很長的路要走,那我就貢獻一點綿薄之力吧。
WTM框架,全稱WalkingTec MVVM, 不是“我特麼”的拼音首字母。。。
WalkingTec是當初自己瞎折騰創業時候的公司名,框架原型的初衷也是為了解決公司內部開發效率低,程式碼風格不統一,維護困難的問題。
經過4,5年數十個專案的積累,WTM算是成熟了,我們把它移植到了dotnetcore上並且開源了。
WTM是一個快速開發框架,有多快?至少目前dotnetcore的開源專案中,我還沒有見到更接地氣,開發速度更快的框架。WTM的設計理念就是最大程度的加快開發速度,降低開發成本。
對於一個主流BS結構後臺管理系統來說,30%是最基礎的增刪改查,50%是稍微複雜一點的增刪改查,只有20%是真正有難度的複雜需求,但其實也是增刪改查。
對於前30%,WTM可以一鍵生成程式碼,不需要手寫任何程式碼;
對於中間的50%,可以在生成程式碼之後重寫一些函式來快速的實現;
對於最後的20%,可以只使用框架提供的最基礎的功能來自定義開發。
WTM同時支援傳統模式和前後端分離模式。
傳統模式我們使用LayUI最為前臺UI,LayUI是一個非常優秀的前臺UI庫,其返璞歸真,開箱即用的理念和WTM框架非常契合。
WTM框架通過TagHelper整合了LayUI包含的幾乎所有控制元件,讓開發者編寫前臺也毫不費力。
雖然我個人認為一個後臺系統完全沒必要進行前後端分離,但是也有很多ToB的管理系統是面向最終客戶的,需要追求使用者體驗。
所以WTM也開始支援前後端分離模式,目前React+Antd已經是RTM版,可以正常使用;VUE+Element還在開發中,Angular目前還沒有支援計劃。
WTM的前後端分離模式定義了普遍通用的前後端通訊的資料格式,並且同樣支援一鍵生成前端程式碼和後臺api,極大的降低了分離所造成的溝通和維護成本。
WTM開源半年以來,受到了越來越多開發者的喜愛,目前github上已有超過500星,並在快速增長中。
後續的一個大計劃是一個代號“無碼”的sass平臺,把模型構建和程式碼生成再向前推進一步,力爭讓一半以上的常見需求只需要通過簡單配置即可實現,敬請關注。
鄭重宣告,“無碼”平臺的意思是沒有程式碼,不是你們想的那個無碼。
最後列舉一下WTM主要功能亮點:
l 一鍵生成WTM專案
l 一鍵生成增刪改查,匯入匯出,批量操作程式碼
l 支援一對多,多對多關聯模型的識別和程式碼生成
l 支援分離和不分離兩種模式
l 支援sqlserver,mysql,pgsql三種資料庫
l 封裝了Layui,AntD,Element的大部分控制元件,編寫前臺更加簡便
l 提供了很多基類,封裝了絕大部分後臺常用操作
l 提供了使用者,角色,使用者組,選單,日誌等常用模組
l 支援資料許可權的開發和配置
l 支援讀寫分離和資料庫分庫
Github開源地址:https://github.com/dotnetcore/WTM
WTM文件地址:https://wtmdoc.walkingtec.cn/