作為一個8歲開始學習編程,至今40歲的老程式員,這輩子使用過無數種語言,從basic開始,到pascal, C, C++,到後來的 java, c#,perl,php,再到現在流行的python。 小時候的我總覺得多掌握一門語言,我的技術能力就又前進了一步; 後來長大了慢慢明白,編程語言就和我們說的 ...
作為一個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/