使用 Blazor 开发全新的组件库,这已经是进入到了第二周了。这周成果很满。完成了布局组件、数据集组件的基础、输入框组件的基础。还完成了写说明文档用于展示代码的代码高亮组件等。
得益于使用了 Bootstrap 5.3。依托她良好的 css 布局风格以及科学的组件样式架构,在我完成了基于 Blazor 框架的组件实现的基础逻辑与方法后,目前生产新组件的速度是很快、也很顺畅的。
Blazor 前景看好
这两周深度地使用了 Blazor 框架,以及阅读了 net8 中 Blazor的一些新源码与新实现。更加对 Blazor 好感加深。比起 Vue,React等,Blazor 现在缺生态,也缺一些好的开源项目的支撑。但相较 Vue,React 这些已成熟的框架。 Blazor 显得更现代化,更科学,构架也更合理。文档也更详细。上手容易,使用方便。目前除了 Server 版连接的问题,WebAssembly 下文件大的问题,我基本上觉得 Blazor 是一个很完美的前端Web的开发框架了。
在 Blazor 中完全使用 C#, 用来实现前端的业务逻辑与交互逻辑,不需要 JavaScript。那种舒服与爽快,只有自己真正使用体会过,才知道有多过瘾!当然,这种爽快,目前仅适用于开发一些数据管理系统。如果要做复杂的 UI 交互,也都避免不了要使用 JavaScript 的底层支持。
实际上,在一般性的数据管理系统的开发上,微软自己有一套完整的生态。包括权限、微服务、容器、消息队列、前端UI、多平台部署、数据库、 ORM,日志,依赖注入等都有非常好、非常成熟的解决方案。而且相较于 Java 那些开源的项目,微软自己的这些,全都有更详细的说明文档。Github 上也有很多源码可供参考。相对来说,反而较 Java 的开源项目的学习成本更少。构建的项目结构也更轻型些。
在我们团队使用 Blazor 构建内部的管理系统时,参考 Github 上的源码方案,学习微软自己的说明文档,很快就让团队挡建了系统的基本框架。总的来说,我是非常看到 Blazor 现在提供的这套前端框架解决方案的。
Blazor 的尴尬
国内真正使用 Blazor 来进行项目开发的,应该是没有。虽然我们团队在使用 Blazor 做内部系统的开发,但做商业化、市场化的产品。目前还没有任何一家公司或团队会使用 Blazor 来做项目落实。原因我就不多说了,这是显而易见的。
Blazor 还需要几年的机会来发展和壮大。当然,在未来的几年中,最怕的是微软那鬼德性,对自家的技术动不动就下马,换新的东西。这让跟随者无所适从。这也是微软这几年在互联网开发语言中不占上风的主要原因。
尽管如此,但Blazor 作为个人的技术储备和技术学习的提高,是很好的开始。谁也说不好,哪天突然发现用 Blazor 的人就多起来了。也不用感到有什么奇怪!毕竟,用 C# 来实现前端逻辑,比 JavaScript 是方便的不是一点两点的事。
Blazor 经过几年的完善,几个版本的迭代升级,解决了痛点后,自然是不二的选择。这也需要微软不作死。至少目前来看,在 net8 中,Blazor 还是有春天的。
现在使用 Blazor 的人少,是很自然的事,因为 Blazor 不能让他们找到更好的工作,不能给他们带来实在的价值和利益。谁会花更多时间去深究 Blazor 呢?Blazor 出来也有两三年了,不说在国内,在国外也是不温不火的。看好的人有,但应用的还没开始。
他的尴尬在于来的太晚。但总算还是来了。
Blazor 的优势明显
不是说现在正在开发 Blazor 组件库,我就说 Blazor 有多好。反而是,我本人觉得 Blazor 相较其他前端开发框架,确实是我用起来最舒服,效率最高,代码最清爽的一个框架。正好相反,是我觉得 Blazor 优秀,所以才会有想选择给 Blazor 开发一套组件库的想法。
Blazor 的适用场景很多,尤其在大部分人正在从事的管理系统、后端应用、B端业务上,有更好的优势。今天,也不想展开来比较 Blazor 与其他前端框架的优势与不足。因为这可以新写一篇长文。今天只根据本个的使用感想。总结一句话,Blazor 有他自己的优秀之处,也有作为目前我所从事的系统管理开发上的优势所在。所以,我看好 Blazor,也选择了不 Blazor。
待组件库开发的工作到一家阶段后,我再好好来介绍一下 Blazor。
本周 Blazor UI 组件库开发进度
本周是开发 Blazor UI 组件库的第二周。目前累计已完成可交付的组件共 20 多个,较上周新开发了约十来个新组件。新组件包括:
- CheckBox 复选框
- Input 输入框
- OptionsBar 多项单选条
- Select 下拉选择器
- Switcher 开关切换
- FlexBox 流式布局容器框
- HorizontalFlex 水平流式布局
- VerticalFlex 垂直流式布局
- ListBox 列表框
- Table 表格
- Dicttag 字典标签
- Separator 分隔线
- CodeBlock 代码块
结束语
组件库的开发是很系统性的工作。比较之开发某一单个组件,其难度系数不可同语。如果只是开发某一单个组件,可能不用想太多,达到该组件的基本交互与逻辑就行。但要开发一套完整,且可用性很高的组件,考虑的不是某个组件的交互、界面。而是需要系统化的考虑到组件的稳定、可扩展、易用、精致、风格统一、交互统一、命名规范等多方因素。还要考虑代码的复用、代码的科学性、简洁性等。要抽离、提取、封装很多东西。总之,其不比开发一套复杂的系统轻松。
目前组件开发了二周有余。核心基础基本完成,重点任务还没开始。但框架已成型。下周开始重点把组件库中几个难点搞定。包括支持大数据集的虚拟化实现、消息弹层的实现。搞定这两个难点后。再进一步开发复杂组件。如: DataGrid 数据表格、多条件查询与过滤、可支持拖动、可改变大小的组件等。
目前、关注我开发 BlazorUI 组件仍然很少。
但我现在需要一些伙伴一起来干活。我对开源不太了解,需要一些朋友的支持和帮助。我也没太多的时间对组件进行细化的测试与验证,尤其是示例与文档,同样也需要花费很多的时间与精力。需要一些朋友一起来完成、需要更多的支持与帮助。
如果有对 Blazor 有兴趣的,可以互相了解下。我们一起来开干!