前言
作者打拼了 .NET 十多年,屬于全棧應用類型的工程師,特別是對于前端的技術情有獨鐘,從純js到jquery,從bootstrap到自己寫css,從web到winform,還寫過一段時間的knockout.js,以至于公司里的前端的活都派給我,然后他們被裁了...
自從2018年接手了一個研發團隊,當前后端打架成為常態,當前端缺席進度延遲成為阻礙,當績效評估讓我頭疼,當敏捷推動一直不那么的絲滑,blazor 就成為那個我最終認為的那個解決方案,并且基于 Bootstrap 自行學習封裝了一套 Blazor 組件庫提供給自己團隊,自此,以上的問題全部迎刃而解。
過往
在這個 TDesignBlazor 之前,我寫過Boostrap5的Blazor組件庫,后來發現類似的組件庫太多了,于是又寫了一個Semantic-UI的Blazor組件庫BlamanticUI,Github地址:https://github.com/AchievedOwner/BlamanticUI (已歸檔)。
但是在開發過程中,突然發現組件開發的共性,同時因為組件所需要的參數很多,相關的 CSS 組合也很多,非常的麻煩,畢竟重復性工作是十分枯燥的。因此,希望能有一個自動化的框架幫助我能完成80%的重復性工作,最起碼簡單的那些組件,比如?Button
?之類的可以自動化一些。起初是在?BlamanticUI
?組件庫中自己實現的自動化,后來在封裝 Bootstrap5 的 Blazor 組件庫時又把類似的功能復制了一遍,突然就獲得了一個靈感,并把它封裝了一個獨立的框架,即?ComponentBuilder
?就此誕生。
Github:https://github.com/AchievedOwner/ComponentBuilder
ComponentBuilder 介紹:https://www.bilibili.com/video/BV1de4y1v7Fd/
該框架的初衷是讓更多的 Blazor 貢獻者加入開發組件庫
偶遇
但是我發現很多人其實并不知道 Somantic-UI 的存在,而現在的前端很流行 Ant Design,同時也找到了相關的 Ant Design Blazor 組件庫。后來經過一段時間的觀察和探索,發現國內的幾個大廠都在研究自己的組件庫,其中阿里的Ant Design、字節跳動的 Acro Design 和騰訊的 TDesign 都已經有了成品演示,于是就想著用自己的?ComponentBuilder
?來大展身手。經過自己仔細的調研發現,Ant-Design 和 Acro-Design 幾乎一模一樣,就是 CSS 的前綴不同而已,再加上 Ant-Design-Blazor 已經慢慢滴成熟,而卻沒有人做 TDesign,這就是個機會,再幾番輾轉深思熟慮后,于2022年9月,創建 Github 倉庫,并借助?ComponentBuilder
?框架的自動化優勢,在月底發布了 0.1 版本,實現了大多數的靜態組件的封裝,就此拉開了序幕。
熱愛
我很喜歡 TDesign 的設計風格,所以在組件開發中,盡可能復制官方的命名、文檔、排版等。不過后來發現,在技術上因為語言不同,所遵循的規范也不太一樣。在我再三的糾結后,我決定不再盲目地跟風官方,還是需要符合《.NET 編程開發規范》,而且作為一款產品,要更加符合用戶的人性,《Don't make me think》的理念要始終貫徹在任何產品中,因此在某些命名和設計上我做了些變更。
堅持
研發出身的我想進一步轉型,畢竟開發出一款產品很容易,但是維持并運營下去卻很難。因此下定決心,堅持做好一款產品,以前都是聽PM得到用戶的二手聲音,我希望這次可以得到用戶最真實的反饋。
挑戰
我喜歡挑戰,因此 TDesignBlazor 也是一個挑戰,全程使用?RenderTreeBuilder
?的 OOP 思想來編寫組件,因此在前端的具象思維上也是一個挑戰,因為它不同于 HTML 的所見即所得模式。我希望你和我一樣愛上挑戰!
貢獻
希望廣大的 Blazor 愛好者參與到貢獻中。最大的優勢有:
使 Blazor 技術突飛猛進
深入了解 PR + CI/CD 的 DevOps 流程
Kanban 敏捷方法的體驗
擁有開源項目經驗
并且,TDesignBlazor已經獲得了騰訊的關注
Github 地址:https://github.com/AchievedOwner/TDesignBlazor
未來
繼續基于 TDesign 的組件復刻為 Blazor 版本
每2月一個大版本,每2周一個小版本
以迅雷不及掩耳盜鈴之勢解決用戶反饋
鳴謝
期待你的名字和頭像會出現在列表中