我 与 TDesignBlazor 的故事

前言

作者打拼了 .NET 十多年,属于全栈应用类型的工程师,特别是对于前端的技术情有独钟,从纯js到jquery,从bootstrap到自己写css,从web到winform,还写过一段时间的knockout.js,以至于公司里的前端的活都派给我,然后他们被裁了...

自从2018年接手了一个研发团队,当前后端打架成为常态,当前端缺席进度延迟成为阻碍,当绩效评估让我头疼,当敏捷推动一直不那么的丝滑,blazor 就成为那个我最终认为的那个解决方案,并且基于 Bootstrap 自行学习封装了一套 Blazor 组件库提供给自己团队,自此,以上的问题全部迎刃而解。

ab1b5b6d46c65e0f151e84102cb90f8c.png

过往

在这个 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 版本,实现了大多数的静态组件的封装,就此拉开了序幕。

4cd35ba54d3cbd8b592b7103240e2014.png

热爱

我很喜欢 TDesign 的设计风格,所以在组件开发中,尽可能复制官方的命名、文档、排版等。不过后来发现,在技术上因为语言不同,所遵循的规范也不太一样。在我再三的纠结后,我决定不再盲目地跟风官方,还是需要符合《.NET 编程开发规范》,而且作为一款产品,要更加符合用户的人性,《Don't make me think》的理念要始终贯彻在任何产品中,因此在某些命名和设计上我做了些变更。

坚持

研发出身的我想进一步转型,毕竟开发出一款产品很容易,但是维持并运营下去却很难。因此下定决心,坚持做好一款产品,以前都是听PM得到用户的二手声音,我希望这次可以得到用户最真实的反馈。

挑战

我喜欢挑战,因此 TDesignBlazor 也是一个挑战,全程使用 RenderTreeBuilder 的 OOP 思想来编写组件,因此在前端的具象思维上也是一个挑战,因为它不同于 HTML 的所见即所得模式。我希望你和我一样爱上挑战!

8652ac257bbcd373abd1171ef3fcafff.png

贡献

希望广大的 Blazor 爱好者参与到贡献中。最大的优势有:

  • 使 Blazor 技术突飞猛进

  • 深入了解 PR + CI/CD 的 DevOps 流程

  • Kanban 敏捷方法的体验

  • 拥有开源项目经验

并且,TDesignBlazor已经获得了腾讯的关注46417051bdcc9be7a28030447d7b99f6.png

Github 地址:https://github.com/AchievedOwner/TDesignBlazor

未来

  • 继续基于 TDesign 的组件复刻为 Blazor 版本

  • 每2月一个大版本,每2周一个小版本

  • 以迅雷不及掩耳盗铃之势解决用户反馈

鸣谢

c8d0e7e9962632aff350890dd95d9bb4.png

期待你的名字和头像会出现在列表中126144ed9a3d737e0d6f3bf7f7af5919.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验数据

1.整段deng音频200多秒 2.加xx(1000:1480)之后 转载于:https://www.cnblogs.com/20179302yzl/p/10270632.html

mysql中查询一个字段属于哪一个数据库中的哪一个表的方式

mysql中查询一个字段具体是属于哪一个数据库的那一张表:用这条语句就能查询出来,其中 table_schema 是所在库, table_name 是所在表 --mysql中查询某一个字段名属于哪一个库中的哪一张表 select table_schema,table_name from information_schema.columns where col…

macos剪切_如何使用macOS的内置“ Kill and Yank”作为替代剪切和粘贴

macos剪切Everyone knows about cutting and pasting by now. But did you know that your Mac sort of has a second clipboard known as kill and yank? 现在,每个人都知道剪切和粘贴。 但是您是否知道Mac上还有第二个剪贴板,称为“ kill and yank”&…

ExtJS 折线图趟过的坑

问题: 1、根据条件检索后绘制折线图,之前的坐标没有清除如图 解决方案: 在绘制之前,清空坐票: leftLine.surface.removeAll(); leftLine.redraw(false); 完整代码如下 storeBar.load({params: { SDate: bTime, EDate: …

Django的第一步(第一节)

写下你的第一个Django应用第一部分让我们通过例子来学习.在本教程中,我们将引导您完成基本投票应用程序的创建.其中包括两部分:一个让人们查看民意调查并投票的公共网站.允许您添加,更改和删除民意调查的管理网站.我们假设你django已经安装好了,你可以通…

ad中电源插座怎么封装_您可以在房屋中安装的各种电源插座

ad中电源插座怎么封装You may already know about smart outlets, or outlets with integrated USB ports. But you might be surprised at how many “normal” outlets you can actually buy for your house. They’re all built for different situations, and you want to …

Django05-2:路由分发/命名空间/伪静态/虚拟环境/django版本区别

路由分发 补充:每一个应用可以有独立的templates模板文件夹,static静态文件加,urls.py 总路由 #方法一from app01 import urls as app01_urls from app02 import urls as app02_urlsurlpatterns [url(r^publisher_list/, views.publisher_…

minecraft服务器_如何使用Minecraft领域设置简单的无压力Minecraft服务器

minecraft服务器There are a lot of ways to go about hosting a Minecraft game but it’s tough to beat the simplicity of buying a server directly from Mojang, the company behind Minecraft (and now it even comes with a free 30 day trial!) Read on as we show yo…

自动化测试基础篇--Selenium浏览器操作

Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览器的大小以及浏览器后退、前进按钮等。一、控制浏览器窗口大小有时候我们希望能以某种浏览器尺寸打开,让访问的页面在这种尺寸下运行。例如可以将浏…

Sublime text3配置xdebug调试记录

第一次配置遇到的问题记录; 问题:配置php.ini的时候xdebug.remote_port 9001刚开始我一直配置9000端口冲突,然后一切弄好了访问浏览器就一直在转圈无法访问; 现在开始配置: 1.打开sublime 输入install Package如下显示在按回车&a…

.NET Conf China 2022 今天(12.4) 日程一览

点击蓝字关注我们.NET Conf China 2022 诚邀您的加入立即扫码预约加入.NET年度盛宴!!CSDN 直播https://bbs.csdn.net/forums/DotNET?typeId20680 思否直播https://segmentfault.com/area/dotnetconf-2022主论坛分论坛前端专场-A会场出品人:张…

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.4.6 为克隆使用序列化

2.4.6 为克隆使用序列化 序列化机制有一种很有趣的用法:即提供了一种克隆对象的简便途径,只要对应的类是可序列化的即可。其做法很简单:直接将对象序列化到输出流中,然后将其读回。这样产生的新对象是对现有对象的一个深拷贝&…

谈谈ASP.NET Core过滤器和中间件的区别

什么是中间件中间件Middleware是所有请求都会执行的,适合用在权限校验,一些公用字段处理,例如分页信息获取.asp.net core 提供了IApplicationBuilder接口来让把中间件注册到asp.net的管道请求当中去,中间件是一个典型的AOP应用。下面是一个微软官方的一个中间件管道…

如何在Windows 8中将旧控制面板添加到Metro Start屏幕

By default there is no way to easily access the old Control Panel in Windows 8, in order to get to it you have to go through the new Metro Control Panel or switch to Explorer. Here’s how to create your own tile for it. 默认情况下,无法轻松访问Wi…

vue子父组件间传值

父组件传值给子组件 props方式   父组件上1处声明传递的键并赋值,子组件2处使用props接收一下这个键就可以使用了。在父组件改变这个值的话子组件跟着一起响应,子组件改变这个值的话父组件不改变。次为响应式,但是也仅限于父组件的值变化子…

红象云腾发布新一代PB级高速大数据平台产品

ZD至顶网服务器频道 03月23日 新闻消息:在3月19日举办的China Hadoop Summit(中国Hadoop技术峰会)上,中国Hadoop大数据厂商红象云腾与OpenPOWER基金会共同发布红象云腾的新一代大数据产品,帮助企业高速处理PB规模数据。 此次发布…

个人笔记 Vue.js, Framework7, and Cordova / PhoneGap Template with Babel, Webpack and Hot Reloading...

为什么80%的码农都做不了架构师?>>> 模板创建项目 模板地址 更新package.json中的dependencies依赖到最新版本 当新建一个项目的时候,从其他项目的package.json里面copy一份dependencies过来。 但因为是新项目,我们想用各个依赖包…

dotnet-exec 0.12.0 released

dotnet-exec 0.12.0 releasedIntrodotnet-exec 是一个 C# 程序的小工具,可以用来运行一些简单的 C# 程序而无需创建项目文件,让 C# 像 python/nodejs 一样简单,而且可以自定义项目的入口方法,支持但不限于 Main 方法。Install/Upd…

美国用户现在可以下载其所有Apple帐户数据,这是操作方法

Starting today, Apple is allowing all US users to download a copy of every last bit of their data from the company. 从今天开始,Apple允许所有美国用户从该公司下载其数据的最后一部分的副本。 This feature has been available for EU users since May, th…

“互联网+”促传统企业三大转型

2015年是传统行业互联网化的元年。国家提出要制定“互联网”行动计划后,互联网旅游、互联网汽车、互联网三农、互联网物流、互联网医疗等开始起步。同时,面对不确定的移动互联网时代,互联网某些技术和模式还在进化、演变之中,每一…