前言
作者打拼了 .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周一个小版本
以迅雷不及掩耳盗铃之势解决用户反馈
鸣谢
期待你的名字和头像会出现在列表中