今天在微信群讨论了很多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. Educational Codeforces Round 91 (Rated for Div. 2) C. Create The Teams (模拟)

    题意:有\(n\)个队员,每个队友都有一个能力值,构造队伍,要求队伍人数*队伍中最低能力值不小于\(x\),求能构造的最大队伍数. 题解:大水题,排个序,倒着模拟就行了. 代码: int t; int ...

  2. ssh配置方面小实验①

    注意:sshd_config配置文件有些特殊:注释掉的选项,并不是不生效的,而是默认生效选项.使用某选项时,要先取消注释,再修改为yes或no关于效率和安全的说明:安全:telnet < ssh ...

  3. 【.NET 与树莓派】让喇叭播放音乐

    如果你和老周一样,小时候特别喜欢搞破坏(什么电器都敢拆),那下面这样小喇叭你一定见过. 这种喇叭其实以前很多录音机都用,包括上小学时买来做英语听力的便携录音机.嗯,就是放录音带的那种,录音带也叫磁带或 ...

  4. SSH 密钥认证

    目录 SSH协议概述 SSH 和 Telnet 的区别 SSH 相关命令 SSH 验证方式 基于密钥的安全认证 SSH 优化 expect 脚本免交互登录 sshpass 免交互登录 SSH协议概述 ...

  5. cin的用法

    int val=0; cin>>val; 上述程序先定义了一个整型数据val,通过cin读取数据放在val中,如果输入的整型数据,则读取成功,返回的是>>左侧的对象,也就是is ...

  6. Gym 101170I Iron and Coal(BFS + 思维)题解

    题意:有一个有向图,有些点是煤,有些点是铁,但不会同时有铁和煤.现在我要从1出发,占领可以到达的点.问最少占领几个点能同时拥有一个煤和一个铁(1不用占领). 思路:思路很秀啊.我们从1往外bfs,得到 ...

  7. JavaScript for, for...in, for...of, for-await...of difference All In One

    JavaScript for, for...in, for...of, for-await...of difference All In One for for...in for...of for-a ...

  8. PM2 All In One

    PM2 All In One https://pm2.keymetrics.io/ https://pm2.io/ $ yarn global add pm2 # OR $ npm install p ...

  9. javascript & global event & custom event

    javascript & global event & custom event new CustomEvent object let event = new CustomEvent( ...

  10. NGK公链:夯实基础设施 实现产业大规模应用

    当前,区块链已经成为全球技术角逐的前沿,大国及科技巨头竞相在该领域布局,引导区块链服务实体经济,激发市场经济活力.据市场相关研究机构预测,2020年,基于区块链的业务将达到1000亿美元. 对于区块链 ...