Wtm Blazor来了!
快点关注我们吧
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来了!相关推荐
- WTM框架使用技巧之:Layui版本嫁接Vue+ElementUI
快点关注我们吧 作者介绍 庄星睿,现就职于海运物流行业,威海新海丰物流有限公司,IT技术兼管理职务. 从事过winform,wpf技术开发,自2019年接触wtm框架后,热衷使用wtm框架开发物流公司 ...
- WTM系列视频教程:WebApi
文字摘要: "今天跟大家聊聊WTM中的WebApi,WebApi直接继承Controller Base, 他实际上比普通的Controller要更简单,流程更短,因为它不需要处理关于界面的问 ...
- 2020 WTM 继续向前
WTM3.1 正式发布 在过去的2019年,承蒙各位的厚爱,WTM从零开始一年的时间在GitHub上收获了将近1600星,nuget上的下载量累计超过10万.WTM所坚持的低码开发,快速实现的理念受到 ...
- Asp.Net Kestrel自定义IP和端口, WTM框架自定义IP和端口
Kestrel默认使用5000端口,有两种方法可以进行自定义: 方法1(推荐): 在appsettings.json中增加: "Kestrel": {"Endpoints ...
- 不懂代码也可以快速开发软件,wtm体验
电脑手机软件,不懂代码的人都可以快速开发软件 WtmPlus是建立在WTM开源框架基础上的低代码开发平台,后台基于最新的.Net6,前台支持Vue3,LayUI和Blazor,其核心理念就是尽一切可能 ...
- WTM重大更新,多租户和单点登录
WTM重大更新 多租户 单点登录 随着WTM被越来越多地应用于企业,用户对于多租户和单点登录的需求越来越强烈.经过了几个月的努力,我们把WTM底层代码又进行了一次优化和重构,加入了多租户和单点登录的功 ...
- Blazor将.NET带回到浏览器
由Steve Sanderson开发的Blazor尝试使用WebAssembly和DotNetAnywhere将.NET带回到浏览器.它不是要成为一个像Flash或Silverlight那样的完整生产 ...
- 微软正式开源Blazor ,将.NET带回到浏览器
微软 ASP.NET 团队近日正式开源了 Blazor ,这是一个 Web UI 框架,可通过 WebAssembly 在任意浏览器中运行 .Net . Blazor 旨在简化快速的单页面 .Net ...
- .NET Core 3.0 Preview 6中对ASP.NET Core和Blazor的更新
我们都知道在6月12日的时候微软发布了.NET Core 3.0的第6个预览版.针对.NET Core 3.0的发布我们国内的微软MVP-汪宇杰还发布的官翻版的博文进行了详细的介绍.具体的可以关注&q ...
最新文章
- python 发送邮件解决所有乱码问题
- 代码段间转移控制时的特权级检查(JMP/CALL)——《x86汇编语言:从实模式到保护模式》读书笔记28
- codeigniter mysql -1_在CodeIgniter中使用现有的MySQL数据库
- 垃圾软件!动不动就扣费!| 今日最佳
- 网络负载平衡oracle,[Oracle] RAC 之 - 负载均衡深入解析
- 阿里重磅开源Blink:为什么我们等了这么久?
- SqlServer中dateTime、dateTime2、date、datetimeoffset的区别
- 微软IT规划方法论解读
- tomcat下多个app 不同的图标_5G SA网络切片下,独立APP应用如何自行接入不同网络切片...
- 让UpdatePanel支持上传文件:解决当页面显式设置document.domain时提示的500错误
- callback函数_小程序不同页面的异步回调,callback和promise的使用讲解
- c++ java string_C++中string类型的内部结构是什么?
- Java 网络教程: ServerSocket
- Mac翻译系列软件推荐二:人人译视界 for Mac
- 服务端程序的keeplive
- pci转并口卡的安装使用
- 特征筛选【IV和WOE】
- PicoNeo开发中遇到的问题(一)
- Pyramidal Feature Shrinking for Salient Object Detection
- 密码学DAY1_02