天天看点

BlazorUI 组件开发周记 - 2

作者:六月六的牛人

使用 Blazor 开发全新的组件库,这已经是进入到了第二周了。这周成果很满。完成了布局组件、数据集组件的基础、输入框组件的基础。还完成了写说明文档用于展示代码的代码高亮组件等。

得益于使用了 Bootstrap 5.3。依托她良好的 css 布局风格以及科学的组件样式架构,在我完成了基于 Blazor 框架的组件实现的基础逻辑与方法后,目前生产新组件的速度是很快、也很顺畅的。

BlazorUI 组件开发周记 - 2

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 出来也有两三年了,不说在国内,在国外也是不温不火的。看好的人有,但应用的还没开始。

他的尴尬在于来的太晚。但总算还是来了。

BlazorUI 组件开发周记 - 2

Blazor 的优势明显

不是说现在正在开发 Blazor 组件库,我就说 Blazor 有多好。反而是,我本人觉得 Blazor 相较其他前端开发框架,确实是我用起来最舒服,效率最高,代码最清爽的一个框架。正好相反,是我觉得 Blazor 优秀,所以才会有想选择给 Blazor 开发一套组件库的想法。

Blazor 的适用场景很多,尤其在大部分人正在从事的管理系统、后端应用、B端业务上,有更好的优势。今天,也不想展开来比较 Blazor 与其他前端框架的优势与不足。因为这可以新写一篇长文。今天只根据本个的使用感想。总结一句话,Blazor 有他自己的优秀之处,也有作为目前我所从事的系统管理开发上的优势所在。所以,我看好 Blazor,也选择了不 Blazor。

待组件库开发的工作到一家阶段后,我再好好来介绍一下 Blazor。

BlazorUI 组件开发周记 - 2

本周 Blazor UI 组件库开发进度

本周是开发 Blazor UI 组件库的第二周。目前累计已完成可交付的组件共 20 多个,较上周新开发了约十来个新组件。新组件包括:

  1. CheckBox 复选框
  2. Input 输入框
  3. OptionsBar 多项单选条
  4. Select 下拉选择器
  5. Switcher 开关切换
  6. FlexBox 流式布局容器框
  7. HorizontalFlex 水平流式布局
  8. VerticalFlex 垂直流式布局
  9. ListBox 列表框
  10. Table 表格
  11. Dicttag 字典标签
  12. Separator 分隔线
  13. CodeBlock 代码块
BlazorUI 组件开发周记 - 2
BlazorUI 组件开发周记 - 2
BlazorUI 组件开发周记 - 2

结束语

组件库的开发是很系统性的工作。比较之开发某一单个组件,其难度系数不可同语。如果只是开发某一单个组件,可能不用想太多,达到该组件的基本交互与逻辑就行。但要开发一套完整,且可用性很高的组件,考虑的不是某个组件的交互、界面。而是需要系统化的考虑到组件的稳定、可扩展、易用、精致、风格统一、交互统一、命名规范等多方因素。还要考虑代码的复用、代码的科学性、简洁性等。要抽离、提取、封装很多东西。总之,其不比开发一套复杂的系统轻松。

目前组件开发了二周有余。核心基础基本完成,重点任务还没开始。但框架已成型。下周开始重点把组件库中几个难点搞定。包括支持大数据集的虚拟化实现、消息弹层的实现。搞定这两个难点后。再进一步开发复杂组件。如: DataGrid 数据表格、多条件查询与过滤、可支持拖动、可改变大小的组件等。

目前、关注我开发 BlazorUI 组件仍然很少。

但我现在需要一些伙伴一起来干活。我对开源不太了解,需要一些朋友的支持和帮助。我也没太多的时间对组件进行细化的测试与验证,尤其是示例与文档,同样也需要花费很多的时间与精力。需要一些朋友一起来完成、需要更多的支持与帮助。

如果有对 Blazor 有兴趣的,可以互相了解下。我们一起来开干!

继续阅读