快点关注我们吧

Blazor

Blazor从诞生到现在也有一段时间了,之前一直在观望,从dotnet5中Blazor的进步以及即将到来的dotnet6中的规划来看,Blazor的前途还是光明的,所以WtmBlazor来了!

Blazor的优势

  • 后台代码的高复用率。不论是server模式还是wasm模式,由于都是用C#编写,Blazor对后台代码的利用率相当的高。

来看一个实例,在Vue或React中,虽然你在后台定义了模型和验证规则,还弄了多语言的字段名称,错误信息等,但是不可避免的,你在前台需要用js重新写一遍,比如一个用户管理,在vue中你会有类似这样的定义:

formItem: {"Entity.ID": {isHidden: true},"Entity.ITCode": {type: "input",label: this.$t("frameworkuser.ITCode"),rules: {required: true,message: this.$t("frameworkuser.pleaseEnterITCode"),trigger: "blur"},props: {disabled: this['status'] !== 'add'}},"Entity.Password": {type: "input",label: this.$t("frameworkuser.Password"),rules: {required: true,message: this.$t("frameworkuser.pleaseEnterPassword"),trigger: "blur"},isHidden: (res, status) =>["edit", "detail"].includes(status)},"Entity.Email": {type: "input",label: this.$t("frameworkuser.Email")},"Entity.Name": {type: "input",label: this.$t("frameworkuser.Name"),rules: {required: true,message: this.$t("frameworkuser.pleaseEnterName"),trigger: "blur"}}
}
export default {zh: {frameworkuser: {ITCode: "账号",Name: "姓名",Gender: "性别",PhotoId: "照片",IsValid: "是否生效",RoleName_view: "角色",GroupName_view: "用户组",Email: "邮箱",Operate: "操作",Password: "密码",CellPhone: "手机号",HomePhone: "座机",Address: "地址",ZipCode: "邮编",SelectedRolesCodes: "角色组",SelectedGroupCodes: "用户组",All: "所有",Selected: "已选",pleaseEnterUserRoles: "请输入角色",pleaseEnterRoleName: "请输入用户组",pleaseEnterITCode: "请输入ITCode",pleaseEnterPassword: "请输入密码",pleaseEnterName: "请输入名称"}},en: {。。。。。} 等等

其实这些你在后台都写过一遍了。使用Blazor你就不需要再写一遍上面这些,后台定义的模型和多语言都可以直接使用,即减少了工作量又降低了出错的可能性。

  • 代码结构更清晰。告别动辄几百兆的js引用,很多js你可能自己都不知道是干啥的。。。调试代码的时候,你的笔记本终于不用嗡嗡作响了。尤其是在前台编写复杂业务逻辑或复杂数据结构的时候,C#肯定要比js优雅一些,依赖注入,泛型,反射,Lambda表达式,以及你学过的那些设计模式都可以用在前端开发上。

  • 应用已有类库。Blazor理论上可以使用任何.net5的类库,图片编辑,音频处理甚至AI相关的都可以直接拿来在Blazor上使用,这极大的丰富了Blazor的使用场景

Blazor的劣势

  • Blazor目前并不适合互联网场景的应用开发,它更适合ToB模式的应用。主要原因是Server模式使用SignalR,难以支持高并发,wasm模式虽然可以但首次下载量比较大。Blazor的后续版本应该会在这方面加以改善。

  • Blazor目前调试还不太行,Server模式好一些,wasm模式的调试体验还是不如调试后台代码,当然你要是跟调试js比那还是可以的。

  • 一些重度依赖js的功能,比如在页面上拖拽控件,在Blazor里实现起来还是比较费劲。

总之,Blazor是值得你投入的技术,虽然现在还有一些问题,但是看微软后续的规划,这些短板也很快会被补齐。如果想使用和学习Blazor,WTM Blazor绝对是你目前最好的选择,Wtm Blazor可以帮你:

  • 一键生成Blazor项目,使用jwt,自带常用的用户,角色,权限,菜单,日志等管理功能,同时支持Server和Wasm模式

  • 代码生成器当然是标配,一键生成增删改查,导入导出,文件上传下载等代码,前后台的代码都有哦

  • 很多Blazor现阶段的小问题都已经在框架层面替你避开了,使用起来更顺畅。

还等啥,来吧:

特别鸣谢BootstrapBlazor组件库作者,微软Mvp,NCC成员,我的好友张广坡,为WTM Blazor版本投入了大量精力。

Wtm官网:https://wtmdoc.walkingtec.cn

BB官网:https://www.blazor.zone

——— WTM 是工具 更是生产力———

Wtm Blazor来了!相关推荐

  1. WTM框架使用技巧之:Layui版本嫁接Vue+ElementUI

    快点关注我们吧 作者介绍 庄星睿,现就职于海运物流行业,威海新海丰物流有限公司,IT技术兼管理职务. 从事过winform,wpf技术开发,自2019年接触wtm框架后,热衷使用wtm框架开发物流公司 ...

  2. WTM系列视频教程:WebApi

    文字摘要: "今天跟大家聊聊WTM中的WebApi,WebApi直接继承Controller Base, 他实际上比普通的Controller要更简单,流程更短,因为它不需要处理关于界面的问 ...

  3. 2020 WTM 继续向前

    WTM3.1 正式发布 在过去的2019年,承蒙各位的厚爱,WTM从零开始一年的时间在GitHub上收获了将近1600星,nuget上的下载量累计超过10万.WTM所坚持的低码开发,快速实现的理念受到 ...

  4. Asp.Net Kestrel自定义IP和端口, WTM框架自定义IP和端口

    Kestrel默认使用5000端口,有两种方法可以进行自定义: 方法1(推荐): 在appsettings.json中增加: "Kestrel": {"Endpoints ...

  5. 不懂代码也可以快速开发软件,wtm体验

    电脑手机软件,不懂代码的人都可以快速开发软件 WtmPlus是建立在WTM开源框架基础上的低代码开发平台,后台基于最新的.Net6,前台支持Vue3,LayUI和Blazor,其核心理念就是尽一切可能 ...

  6. WTM重大更新,多租户和单点登录

    WTM重大更新 多租户 单点登录 随着WTM被越来越多地应用于企业,用户对于多租户和单点登录的需求越来越强烈.经过了几个月的努力,我们把WTM底层代码又进行了一次优化和重构,加入了多租户和单点登录的功 ...

  7. Blazor将.NET带回到浏览器

    由Steve Sanderson开发的Blazor尝试使用WebAssembly和DotNetAnywhere将.NET带回到浏览器.它不是要成为一个像Flash或Silverlight那样的完整生产 ...

  8. 微软正式开源Blazor ,将.NET带回到浏览器

    微软 ASP.NET 团队近日正式开源了  Blazor ,这是一个 Web UI 框架,可通过 WebAssembly 在任意浏览器中运行 .Net . Blazor 旨在简化快速的单页面 .Net ...

  9. .NET Core 3.0 Preview 6中对ASP.NET Core和Blazor的更新

    我们都知道在6月12日的时候微软发布了.NET Core 3.0的第6个预览版.针对.NET Core 3.0的发布我们国内的微软MVP-汪宇杰还发布的官翻版的博文进行了详细的介绍.具体的可以关注&q ...

最新文章

  1. python 发送邮件解决所有乱码问题
  2. 代码段间转移控制时的特权级检查(JMP/CALL)——《x86汇编语言:从实模式到保护模式》读书笔记28
  3. codeigniter mysql -1_在CodeIgniter中使用现有的MySQL数据库
  4. 垃圾软件!动不动就扣费!| 今日最佳
  5. 网络负载平衡oracle,[Oracle] RAC 之 - 负载均衡深入解析
  6. 阿里重磅开源Blink:为什么我们等了这么久?
  7. SqlServer中dateTime、dateTime2、date、datetimeoffset的区别
  8. 微软IT规划方法论解读
  9. tomcat下多个app 不同的图标_5G SA网络切片下,独立APP应用如何自行接入不同网络切片...
  10. 让UpdatePanel支持上传文件:解决当页面显式设置document.domain时提示的500错误
  11. callback函数_小程序不同页面的异步回调,callback和promise的使用讲解
  12. c++ java string_C++中string类型的内部结构是什么?
  13. Java 网络教程: ServerSocket
  14. Mac翻译系列软件推荐二:人人译视界 for Mac
  15. 服务端程序的keeplive
  16. pci转并口卡的安装使用
  17. 特征筛选【IV和WOE】
  18. PicoNeo开发中遇到的问题(一)
  19. Pyramidal Feature Shrinking for Salient Object Detection
  20. 密码学DAY1_02

热门文章

  1. linux汇编中的注释,Linux 汇编器:对照 GAS 和 NASM
  2. 洛谷P2463 Sandy的卡片【后缀数组】【二分】
  3. JMeter中添加dubbo相关插件异常问题解决
  4. Linux系统文件与目录权限管理
  5. Git 常用命令(二)
  6. modernizer的意义
  7. 利用html5看雪花飘落的效果
  8. YouTube键盘快捷键:速查表
  9. NFC服务器在Linux,linux 安装 libnfc ,打开串口PN532
  10. oneproxy检测主从复制同步延迟