LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

微軟為什么還要推blazor?

admin
2023年6月2日 17:56 本文熱度 1292

導(dǎo)讀

blazor是個(gè)極好的東西, 如果微軟的 blazor 路線貫徹實(shí)施下去,將會(huì)是截至目前為止最優(yōu)秀的全棧解決方案。

blazor 生態(tài)包括 blazor server/blazor wasm/maui+blazor。其中,blazor server 是最簡單粗暴的,這玩意開發(fā)用戶量不多的 web 應(yīng)用速度天下第一快,比第二快的快很多的那種快,能把其他解決方案甩到看不見。搭配一套熟悉的ui框架,開發(fā)速度跟他娘的畫原型圖速度差不多,甚至比畫原型圖還快。

當(dāng)有個(gè)需求,直接上 blazor server,可以以極快的速度搞個(gè)可以跑的東西出來。用戶量幾百幾千都扛得住,套個(gè)殼可以搞成桌面程序。這個(gè)程序可以抗住需求驗(yàn)證和小規(guī)模推廣階段,當(dāng)有更多需求時(shí),可以考慮拆成前后臺(tái),ui 代碼大部分可以復(fù)用,弄到 blazor wasm,maui+blazor,前臺(tái)就可以跨瀏覽器,桌面,移動(dòng)設(shè)備,改動(dòng)不大。

1、blazor 技術(shù)的實(shí)質(zhì)

blazor 的技術(shù)實(shí)質(zhì)是使用 html/css 來繪制界面,但是使用 C# 語言來互動(dòng)操作而并非 js 語言來進(jìn)行互動(dòng)操作。C# 語言相對于 js 帶巨大的生產(chǎn)力提升,哪怕是相對于 typescript ,生產(chǎn)力的提升也非常大。

因?yàn)槭褂?C# 得有個(gè)運(yùn)行時(shí)。運(yùn)行時(shí)放在服務(wù)器端的,叫 blazor server。運(yùn)行時(shí)用 wasm 實(shí)現(xiàn)的,叫 blazor wasm。運(yùn)行時(shí)扔給 MAUI,是 blazor maui (這個(gè)我沒實(shí)際用過,猜的)。

當(dāng)然,運(yùn)行時(shí)還可以往 winform,wpf,avalonia 等上放。

2、blazor server

這是幾種 blazor 里我最喜歡的,用之前覺得它很垃圾,越用越喜歡。

它的運(yùn)行時(shí)在服務(wù)器端,跟 asp.net 在一起,前端的互動(dòng)會(huì)通過 websocket 發(fā)給后端,后端的響應(yīng)會(huì)傳遞給前端進(jìn)行 ui 的更新。這里不用過多考慮前后端咋通訊的,微軟封裝的特別好,使用體驗(yàn)非常棒。

從技術(shù)角度來說,blazor server 有兩個(gè)缺點(diǎn):

(a)由于UI響應(yīng)操作是服務(wù)器端進(jìn)行的,網(wǎng)絡(luò)的延時(shí)會(huì)影響 UI 體驗(yàn);

(b)服務(wù)器承擔(dān)了相比傳統(tǒng)web程序多的計(jì)算量,服務(wù)器端的壓力要大一點(diǎn)。

對于缺點(diǎn)(a),如果你的用戶跟服務(wù)器距離的不遠(yuǎn),比如,就是局域網(wǎng)用,或同城用,或者就國內(nèi)用,體驗(yàn)度還可以,而全球的話,體驗(yàn)就不行了。

對于缺點(diǎn)(b),現(xiàn)在服務(wù)器硬件越來越強(qiáng)大,越來越便宜,寫的時(shí)候稍微注意點(diǎn),一臺(tái)服務(wù)器也能抗幾百人、幾千人同時(shí)用,更多的就不好說了。也就是說,相同的硬件,抗的人數(shù)較傳統(tǒng)的技術(shù)抗的人數(shù)要低。

在能規(guī)避這兩個(gè)缺點(diǎn)的地方,它就是王炸。

它的優(yōu)點(diǎn):在所有 web 開發(fā)技術(shù)中 ,它是生產(chǎn)力最高,出東西最快的。前端拖一個(gè) css ui 框架,Ant Design Pro 這種,后端用 Lite DB 這樣的純 .net 的文檔數(shù)據(jù)庫,生產(chǎn)力簡直是狂霸酷帥龍傲天,在座的(其它技術(shù))都是垃圾。生產(chǎn)力的提升不是一倍兩部,而是三倍五倍這種。

傳統(tǒng)的 web 開發(fā),要考慮 UI,要考慮服務(wù)器,要考慮 UI 和服務(wù)器的交互,這里 UI 和服務(wù)器的交互是兩個(gè)機(jī)器間的交互,可他娘的復(fù)雜了。但是 blazor server 里,UI 雖然是在瀏覽器端展現(xiàn)的,但是 UI 和服務(wù)器端交互是在服務(wù)器進(jìn)程里的,直接在內(nèi)存里開干。

blazor server 的潛力非常大。大家體驗(yàn)過通過遠(yuǎn)程桌面遠(yuǎn)程辦公沒?我放了一臺(tái)很強(qiáng)的外星人臺(tái)式機(jī)在家里,通過反向代理遠(yuǎn)程桌面練上去,辦公體驗(yàn)已經(jīng)非常不錯(cuò)了。這種模式,就是應(yīng)用在遠(yuǎn)程跑,UI渲染在服務(wù)器端,通過視頻流傳到遠(yuǎn)程控制端。現(xiàn)在的云電腦,還有云游戲,也都是這種模式。服務(wù)器端渲染把畫面?zhèn)鞯娇蛻舳苏宫F(xiàn)。這屬于最重的服務(wù)器渲染的搞法,而 blazor server 在技術(shù)上,可以看作這種模式的輕量級實(shí)現(xiàn),他將渲染指令通過 html 的方式,發(fā)送給瀏覽器來展現(xiàn),無論響應(yīng)速度還是對帶寬的要求,還是對服務(wù)器的壓力,都小得多。

隨著網(wǎng)絡(luò)的進(jìn)一步發(fā)展,云電腦、云游戲用的人會(huì)越來越多,比這兩種技術(shù)輕量得多的 blazor server ,也會(huì)有一些獨(dú)特的應(yīng)用場景。這是一個(gè)介于 web 程序和云電腦之間的生態(tài)位,這個(gè)生態(tài)位還沒有人占,至于會(huì)涌現(xiàn)出什么樣的新產(chǎn)品,我他娘的也想不出來,得讓子彈飛幾年。

我也只有一些想法。比如,要開發(fā)在線視頻編輯這種應(yīng)用,完全在 web 端在線編輯視頻,受到技術(shù)限制體驗(yàn)會(huì)很差,用 blazor server,可以突破這個(gè)限制。在服務(wù)器端進(jìn)行渲染,web 端只做顯示和交互轉(zhuǎn)發(fā)。這個(gè)要基于 webrtc 來做,還沒有封裝好的控件。在這個(gè)架構(gòu)下,很多傳統(tǒng)的重量級應(yīng)用可以搬到 web 上了。

拋開上面這種還需要探索的新場景不提,看看現(xiàn)在 blazor server 可以干的事情:

(a)0-1 階段的新產(chǎn)品開發(fā)。新產(chǎn)品開發(fā)存在巨大不確定性,需要以最快的速度搞個(gè)可以看到東西來消除不確定性。傳統(tǒng)搞法是產(chǎn)品經(jīng)理畫原型圖,然后就原型圖討論確定做還是不做。做的話,再讓開發(fā)來搞。就我的體驗(yàn),中后臺(tái)型產(chǎn)品,直接用 blazor server + Ant Design Pro + LiteDB 搭一個(gè)看著很漂亮,具備真實(shí)交互邏輯的原型,它的速度幾乎和用 Axure 等工具畫原型圖一樣快。可以非常快的搞個(gè)原型出來討論,討論通過決定做了,得了,這不已經(jīng)做出來了嘛 …… 還開發(fā)個(gè)毛線啊。直接上手用,哪里出現(xiàn)了限制,咱再改。

(b)局域網(wǎng)程序或同城Web應(yīng)用開發(fā)。這種情況下,用戶量不多,又都很集中,可以完美避開 blazor server 的缺點(diǎn)。這里提一個(gè)小的應(yīng)用場景,比如,你開發(fā)了一個(gè) web 系統(tǒng),在 linux 下跑,要做內(nèi)部用的可視化運(yùn)維工具,blazor server 就非常合適。

(c)桌面程序。.net 程序現(xiàn)在打包非常容易,開發(fā)完了直接把 server 打包,用 electron 或者什么的包一下,就是桌面程序了。

現(xiàn)階段,blazor server 在論證新產(chǎn)品這塊,具有非常大的優(yōu)勢。在中小型企業(yè)(一半都不跨城吧)、大型企業(yè)內(nèi)部應(yīng)用領(lǐng)域,具有非常大的優(yōu)勢。在開發(fā)桌面程序,具有一定的優(yōu)勢。而在未來,開發(fā)類似于云游戲這種服務(wù)器渲染的新應(yīng)用,具備技術(shù)優(yōu)勢。它是當(dāng)前最完美的 baby 階段產(chǎn)品開發(fā)技術(shù)。用 blazor server,你能以最快速度開發(fā)出產(chǎn)品,這個(gè)產(chǎn)品能在 server 端跑,能在桌面上跑。放服務(wù)器端跑的話,還他娘的天生帶了反破解、反爬蟲的特性。一個(gè)半吊子懂點(diǎn)產(chǎn)品的C#程序員,可以一個(gè)人當(dāng)三個(gè)人用 - 產(chǎn)品經(jīng)理 + 前端 + 后端。

因?yàn)?blazor wasm 和 blazor maui 還沒成熟,blazor server 是我現(xiàn)在最提倡的 blazor 使用模式,當(dāng)然,互聯(lián)網(wǎng)公司沒法用,用戶量大,服務(wù)全球用戶,恰恰踩住了 blazor server 的兩個(gè)缺點(diǎn),而互聯(lián)網(wǎng)程序員的話語權(quán)比較大,所以在網(wǎng)上,看不到啥人吹 blazor server 的。

3、blazor wasm

blazor 將運(yùn)行時(shí)放在 wasm 里,缺點(diǎn)就是尺寸比較大,怎么也有幾M。在現(xiàn)階段來說,還是有些大。目前默認(rèn) wasm 下跑的 C# 是以解釋的方式跑的,性能較 js 要低得多,AOT 速度塊,但是整體還不夠成熟。而隨著網(wǎng)速越來越快,AOT 成熟后,blazor wasm 的應(yīng)用場景會(huì)增多。blazor wasm 是網(wǎng)上討論最多的 blazor。它相對于傳統(tǒng)的前端后端分離開發(fā)來說,解決了 C# 寫前端的問題,可以提升前端開發(fā)的效率。AOT 成熟后,可以在瀏覽器端跑部分高性能應(yīng)用。缺點(diǎn)就是,現(xiàn)在速度還不夠快,瀏覽器要加載運(yùn)行時(shí),會(huì)導(dǎo)致加載時(shí)間比較長。

由于 C# 程序員稀缺,以及 js 前端程序員及生態(tài)的泛濫,這里的前景,我不是很看好。js 三大框架 + springboot 的生態(tài)優(yōu)勢太強(qiáng)大了。而 blazor wasm 現(xiàn)階段,也沒法開發(fā)小程序,也會(huì)影響采用。

未來可期,未來有多遠(yuǎn),還不清楚。

4、blazor maui

blazor maui 就相當(dāng)于把 electron 用 maui 替代了,由于 maui 自身就是 C# 程序,它就可以成為 blazor 的宿主,asp.net 那塊也沒必要要了(沒看具體實(shí)現(xiàn),我是這么猜的)。

可以把它看成 maui + blazor,也可以看成 blazor + maui。看成前者的話,blazor 為 maui 提供了 web ui 技術(shù)。看成后者的話,maui 為 blazor 提供了寄宿環(huán)境,可以直接和本地交互。而 maui 是跨平臺(tái)的,這一來,一套代碼,在桌面端和在移動(dòng)端都能跑。

blazor maui 等于 blazor server 和 blazor wasm 的演化。對于 blazor server 來說,它等于將運(yùn)行時(shí)從遠(yuǎn)程給放在本地了。對于 blazor wasm 來說,它等于將解釋環(huán)境變成了本地編譯環(huán)境。可以用它來做沒 server 的程序,也可以用它來做有 server 的程序。

blazor maui 是我比較看好的。但由于 vs 正式版還沒把它集成進(jìn)來,我沒怎么實(shí)際用過。上面這些技術(shù)細(xì)節(jié)是推測的,有錯(cuò)誤地方,還請指正。

5、總結(jié)

我看好 blazor server 和 blazor maui。

要采納一個(gè)技術(shù),它必須相比現(xiàn)有技術(shù)有不可替代的優(yōu)勢。

blazor wasm 在現(xiàn)階段很難說服大家去用。

blazor server 在產(chǎn)品 baby 階段有非常強(qiáng)的生產(chǎn)力優(yōu)勢,成本的投入也較其他技術(shù)要低得多。錢少、事急是 baby 階段重要特征,blazor server 可以解決這兩個(gè)痛點(diǎn),并且,為后續(xù)發(fā)展提供了一個(gè)很清晰的演化路徑:

(a)使用 blazor server 進(jìn)行產(chǎn)品論證;

(b)產(chǎn)品論證完了,就放出去可以直接用了,用戶不接受,直接 GAME OVER;

(c)用戶沒意見,掏腰包付錢;

(d)用戶需要桌面版程序:現(xiàn)階段用 electron 之類的包一下發(fā)出去;等 blazor maui 成熟后,用 maui 包一下發(fā)出去;

(e)產(chǎn)品突然爆火了:將 blazor server 代碼,抽離出 Restful 接口出來,如果 blazor wasm 可行,用 blazor wasm 寫下前端,如果不可行,用 vue.js 之類的寫下前端。后端改動(dòng)很少。原產(chǎn)品繼續(xù)跑著,等新產(chǎn)品開發(fā)出來后,直接切換升級。

(f)產(chǎn)品要提供原生移動(dòng)端工具:用 maui 包一下發(fā)布。

如果做 Web 產(chǎn)品,當(dāng) blazor server 扛不住了:blazor server -> 前后端分離 -> blazor wasm + asp.net / js + asp.net;

如果做 移動(dòng) 產(chǎn)品:blazor server -> blazor maui;

如果做 桌面產(chǎn)品:blazor server -> blazor + electron / blazor maui;

如果做全制霸的產(chǎn)品,幾個(gè)路徑一起推進(jìn),整個(gè)路徑很平滑。就算不考慮 C# 強(qiáng)大的生產(chǎn)力,整個(gè)技術(shù)架構(gòu)也是有最多的共享代碼,最節(jié)省人力的。


該文章在 2023/6/2 17:59:28 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲色国内在线精品视频 | 久久久中文字幕精品视频 | 亚洲精品中文字幕制服丝袜 | 亚洲国产福利A∨在线观看 天天国产精品污视频 | 日本午夜福利片在线观看 | 亚洲成AV人片在线观看网址 |