今天在微信群讨论了很多Blazor是否可以正常用的问题。大家争的面红耳赤的。

于是趁着无聊,就水了这么一篇文。

还记得Blazor还在预览版的时候,我就开始关注Blazor了。

那会儿调试Blazor还得在浏览器地址栏输入一堆命令,调试都贼不方便。打包出来也是很大,浏览器也很卡顿。

可以从以下几个方面来说一下为什么我认为Blazor可以在小规模的正式环境中使用。以及哪些地方不太适用Blazor

1.包大小

但是如今几年过去了。Blazor从一开始的一堆好几M的库,到现在5.0版本

Hello World的包大小已经缩减到一百多kb左右了。当然现在依然没法和Vue NG这样的能缩减到50kb以下的框架来比。(这点大小我认为不影响框架加载速度)

2.功能对比

一个优秀的SPA框架,各方面也要优秀。我们可以使用Blazor对比一下Vue.js的功能。

Vue.js Blazor
模板 支持 支持
状态管理 支持 不支持
动画组件 支持 不支持
路由组件 支持 支持
组件库数量
组件库质量
使用人数
服务器渲染 支持 支持
插件

以上对比来自己我个人的主观使用。

.NET 5.0让我觉得眼前一亮的是提供一个虚拟滚动组件:Virtualize 这个功能Vue.js至今没有官方实现。但是Blazor居然提供了。这里要给微软点个赞。

3.适用场景以及不适用的场景

从Blazor的文档来看,Blazor基本没有对老旧浏览器有一个良好的支持。

浏览器环境

如果有需要兼容IE10或者11+版本的需求,不要选择Blazor。不挑选浏览器环境的话,可以选择Blazor。移动端 TO b项目可以选择Blazor。 To c慎重(毕竟to c客户不能要求别人换浏览器)

CSS功力

为什么我会有提出这个点呢?因为Blazor的UI组件库质量一言难尽。

  • Element-blazor处于断更状态。几个月没更新了。

  • Ant-blazor的官网都随时挂掉。组件也贼卡顿。

  • 唯一感觉质量还行的BootStrapBlazor,UI风格有点太老。需要自己调整CSS。(如果对界面要求不高的,可以使用。)


用Blazor的需要什么特殊功能的组件的话(如颜色选择器,Cron选择器),一般找不到合适的第三方。需要自己动手解决写组件的问题。

很多长期做纯后端工作的老铁们都觉得写CSS很费劲。实际上并不是,大约在去年7月之前,我也是一个CSS小菜鸡。但是去年不知道脑子抽什么风。想用自己弄一套组件库出来。于是重温CSS,闲暇时间也撸了几十个感觉还行的组件库(后期会开源,基于Vue.js写的)

总结

如果你正在做一个内部使用的简单后台系统,那完全没问题。如果你要做一个很复杂且要长期维护的项目,建议等Blazor的进一步优化。


欢迎关注我的公众号 :qingchengcoding

一个以ASP.NET Core+Vue.js的Web开发知识的公众号

.NET 5下的Blazor是否可以大规模正式使用?的更多相关文章

  1. MapReduce: 一种简化的大规模集群数据处理法

    (只有文字没有图,图请参考http://research.google.com/archive/mapreduce.html) MapReduce: 一种简化的大规模集群数据处理法 翻译:风里来雨里去 ...

  2. 使用Keras训练大规模数据集

    官方提供的.flow_from_directory(directory)函数可以读取并训练大规模训练数据,基本可以满足大部分需求.但是在有些场合下,需要自己读取大规模数据以及对应标签,下面提供一种方法 ...

  3. python大规模数据处理技巧之一:数据常用操作

    面对读取上G的数据,python不能像做简单代码验证那样随意,必须考虑到相应的代码的实现形式将对效率的影响.如下所示,对pandas对象的行计数实现方式不同,运行的效率差别非常大.虽然时间看起来都微不 ...

  4. [Asp.Net Core] 关于 Blazor Server Side 的一些杂项, 感想

    在2016年, 本人就开始了一个内部项目, 其特点就是用C#构建DOM树, 然后把DOM同步到浏览器中显示. 并且在一些小工程中使用. 3年下来, 效果很不错, 但因为是使用C#来构建控件树, 在没有 ...

  5. Blazor一个简单的示例让我们来起飞

    Blazor Blazor他是一个开源的Web框架,不,这不是重点,重点是它可以使c#开发在浏览器上运行Web应用程序.它其实也简化了SPA的开发过程. Blazor = Browser + Razo ...

  6. [Asp.Net Core] Blazor WebAssembly - 工程向 - 如何在欢迎页面里, 预先加载wasm所需的文件

    前言, Blazor Assembly 需要最少 1.9M 的下载量.  ( Blazor WebAssembly 船新项目下载量测试 , 仅供参考. ) 随着程序越来越复杂, 引用的东西越来越多,  ...

  7. Blazor带我重玩前端(六)

    本文主要讨论Blazor事件内容,由于blazor事件部分很多,所以会分成上下两篇,本文为第二篇. 双向绑定 概述 如图所示 当点击单项绑定的时候,MyOnewayComponent里的属性值会发生变 ...

  8. 「译」用 Blazor WebAssembly 实现微前端

    原文作者: Wael Kdouh 原文链接:https://medium.com/@waelkdouh/microfrontends-with-blazor-webassembly-b25e4ba3f ...

  9. 「译」Blazor VS React React / Angular / Vue.js

    原文作者: Christian Findlay 原文链接: https://christianfindlay.com/2020/06/04/blazor-vs-react-angular-vue-js ...

随机推荐

  1. JavaScript——七(继承)

    一. 这个样子这个student的类型是person,这个样子写虽然继承了,但是是把父类的属性继承在了student的原型上 为了使student的类型改成他自己就需要加一句"student ...

  2. 使用SignTool对软件安装包进行数字签名(一)--制作证书

    一.制作根证书 1.开始菜单-运行-输入cmd,弹出命令行窗体. 2.输入命令:cd /d F:\SignTool,将当前工作目录修改到SignTool路径下. 3.使用makecert命令制作证书, ...

  3. leetcode 周赛 205 1576-5508-5509-5510

    第四题比较难,看题解用并查集做比较简单,但是我觉得难度在想到用并查集,可能是最近做题少所以想不到吧. 1 替换所有的问号 class Solution { public: string modifyS ...

  4. bzoj5312 冒险(吉司机线段树)题解

    题意: 已知\(n\)个数字,进行以下操作: \(1.\)区间\([L,R]\) 按位与\(x\) \(2.\)区间\([L,R]\) 按位或\(x\) \(3.\)区间\([L,R]\) 询问最大值 ...

  5. docker07-数据存储

    Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录 (Bind mounts) 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 U ...

  6. Linux Bash Script loop

    Linux Bash Script loop shell 编程之流程控制 for 循环.while 循环和 until 循环 for var in item1 item2 ... itemN do c ...

  7. TypeORM Entity

    TypeORM Entity Entity Entity is a class that maps to a database table when using SQL database(or col ...

  8. text to JSON

    text to JSON GeoLocaltion API https://www.cnblogs.com/xgqfrms/p/13283680.html https://repl.it/@xgqfr ...

  9. OSS & Object Storage Service

    OSS & Object Storage Service Object Storage Service https://en.wikipedia.org/wiki/Object_storage ...

  10. taro 进阶指南

    taro 进阶指南 配置 https://nervjs.github.io/taro/docs/config.html https://nervjs.github.io/taro/docs/confi ...