Wtm Blazor来了!
快點(diǎn)關(guān)注我們吧
Blazor
Blazor從誕生到現(xiàn)在也有一段時(shí)間了,之前一直在觀望,從dotnet5中Blazor的進(jìn)步以及即將到來(lái)的dotnet6中的規(guī)劃來(lái)看,Blazor的前途還是光明的,所以WtmBlazor來(lái)了!
Blazor的優(yōu)勢(shì)
后臺(tái)代碼的高復(fù)用率。不論是server模式還是wasm模式,由于都是用C#編寫(xiě),Blazor對(duì)后臺(tái)代碼的利用率相當(dāng)?shù)母摺?/p>
?????來(lái)看一個(gè)實(shí)例,在Vue或React中,雖然你在后臺(tái)定義了模型和驗(yàn)證規(guī)則,還弄了多語(yǔ)言的字段名稱,錯(cuò)誤信息等,但是不可避免的,你在前臺(tái)需要用js重新寫(xiě)一遍,比如一個(gè)用戶管理,在vue中你會(huì)有類似這樣的定義:
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: "賬號(hào)",Name: "姓名",Gender: "性別",PhotoId: "照片",IsValid: "是否生效",RoleName_view: "角色",GroupName_view: "用戶組",Email: "郵箱",Operate: "操作",Password: "密碼",CellPhone: "手機(jī)號(hào)",HomePhone: "座機(jī)",Address: "地址",ZipCode: "郵編",SelectedRolesCodes: "角色組",SelectedGroupCodes: "用戶組",All: "所有",Selected: "已選",pleaseEnterUserRoles: "請(qǐng)輸入角色",pleaseEnterRoleName: "請(qǐng)輸入用戶組",pleaseEnterITCode: "請(qǐng)輸入ITCode",pleaseEnterPassword: "請(qǐng)輸入密碼",pleaseEnterName: "請(qǐng)輸入名稱"}},en: {。。。。。} 等等?其實(shí)這些你在后臺(tái)都寫(xiě)過(guò)一遍了。使用Blazor你就不需要再寫(xiě)一遍上面這些,后臺(tái)定義的模型和多語(yǔ)言都可以直接使用,即減少了工作量又降低了出錯(cuò)的可能性。
代碼結(jié)構(gòu)更清晰。告別動(dòng)輒幾百兆的js引用,很多js你可能自己都不知道是干啥的。。。調(diào)試代碼的時(shí)候,你的筆記本終于不用嗡嗡作響了。尤其是在前臺(tái)編寫(xiě)復(fù)雜業(yè)務(wù)邏輯或復(fù)雜數(shù)據(jù)結(jié)構(gòu)的時(shí)候,C#肯定要比js優(yōu)雅一些,依賴注入,泛型,反射,Lambda表達(dá)式,以及你學(xué)過(guò)的那些設(shè)計(jì)模式都可以用在前端開(kāi)發(fā)上。
應(yīng)用已有類庫(kù)。Blazor理論上可以使用任何.net5的類庫(kù),圖片編輯,音頻處理甚至AI相關(guān)的都可以直接拿來(lái)在Blazor上使用,這極大的豐富了Blazor的使用場(chǎng)景
Blazor的劣勢(shì)
Blazor目前并不適合互聯(lián)網(wǎng)場(chǎng)景的應(yīng)用開(kāi)發(fā),它更適合ToB模式的應(yīng)用。主要原因是Server模式使用SignalR,難以支持高并發(fā),wasm模式雖然可以但首次下載量比較大。Blazor的后續(xù)版本應(yīng)該會(huì)在這方面加以改善。
Blazor目前調(diào)試還不太行,Server模式好一些,wasm模式的調(diào)試體驗(yàn)還是不如調(diào)試后臺(tái)代碼,當(dāng)然你要是跟調(diào)試js比那還是可以的。
一些重度依賴js的功能,比如在頁(yè)面上拖拽控件,在Blazor里實(shí)現(xiàn)起來(lái)還是比較費(fèi)勁。
總之,Blazor是值得你投入的技術(shù),雖然現(xiàn)在還有一些問(wèn)題,但是看微軟后續(xù)的規(guī)劃,這些短板也很快會(huì)被補(bǔ)齊。如果想使用和學(xué)習(xí)Blazor,WTM Blazor絕對(duì)是你目前最好的選擇,Wtm Blazor可以幫你:
一鍵生成Blazor項(xiàng)目,使用jwt,自帶常用的用戶,角色,權(quán)限,菜單,日志等管理功能,同時(shí)支持Server和Wasm模式
代碼生成器當(dāng)然是標(biāo)配,一鍵生成增刪改查,導(dǎo)入導(dǎo)出,文件上傳下載等代碼,前后臺(tái)的代碼都有哦
很多Blazor現(xiàn)階段的小問(wèn)題都已經(jīng)在框架層面替你避開(kāi)了,使用起來(lái)更順暢。
還等啥,來(lái)吧:
特別鳴謝BootstrapBlazor組件庫(kù)作者,微軟Mvp,NCC成員,我的好友張廣坡,為WTM Blazor版本投入了大量精力。
Wtm官網(wǎng):https://wtmdoc.walkingtec.cn
BB官網(wǎng):https://www.blazor.zone
——— WTM 是工具 更是生產(chǎn)力———
總結(jié)
以上是生活随笔為你收集整理的Wtm Blazor来了!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SqlServer SqlParser
- 下一篇: 用implicit和explicit打通