关于 Blazor Server Side 的一些杂项, 感想
在2016年, 本人就開始了一個內部項目, 其特點就是用C#構建DOM樹, 然后把DOM同步到瀏覽器中顯示. 并且在一些小工程中使用.
3年下來, 效果很不錯, 但因為是使用C#來構建控件樹, 在沒有特定語法的情況下, 代碼風格不是那么好.
典型的風格大概是這樣的:
這個模式挺好的, 有點嫌棄C#代碼占比太高, HTML代碼靠字符串來完成, 在界面的設計上, 比較吃力.?
?
?
在2019年秋, Asp.Net 3.0出來了, Blazor Server Side 也正式公布, 可以在VS2019中使用.
當時我就去嘗嘗鮮, 發現這東西, 和我的框架很接近. 不同的是,
Blaozr Server Side 是基于 MVVM 的, 而我的框架是基于傳統控件樹的.
Blazor畢竟有微軟做爸爸, 在VS上的支持是直接的, 由Razor文件來負責 HTML+C# 的代碼模式, 完全支持智能提示.
天呀, 這不是就是我夢寐以求的開發方式嗎? 于是, 在疫情期間, 我把以前的框架, 和Blazor直接整合在一起. 開始做一些小工程做驗證.
現在這個整合大部分需求與問題都得到了解決. 還需要提供更多的控件用以提高工程的開發速度.
?
先上圖,? 看看?Blazor?的代碼是長什么樣子的.?
(Razor語法,?和MVC有點接近.?但是MVC是輸出靜態HTML的, Blazor組件是生成服務器樹狀結構的)
?
?
與 MVC?的 Razor語法是接近的 ,?然而最大不同時 , MVC?的最終目標是生成字符串發給瀏覽器.? 而Blazor生成了模型之后,?依然是"活動"的,?隨時準備好響應客戶端的事件.
?
??
?
?
對于 Blazor?架構的一些特點,?畫了一些圖.?
首先, 我把這種模式成為 "服務器UI映射" , 后面都會陸續使用這個概念.
個人看法 ,?通常的情況,?僅供參考
?
?
?Blazor 因為在服務器上把代碼運行狀態駐留在內存,
所以程序運行的上下文得以保存, 而關聯的事件也會綁定到上下文中.
事件處理函數被調用時, 相關的對象和數據會全部可用.
具體的細節無法說太多, 畢竟這是新事物, 我自己也是一邊使用一邊積累心得.
我以后會陸陸續續放上各種例子, 提供給感興趣的網友們, 用節省時間的方式去迅速掌握Blazor的開發流程.
最后, 放上一個對照表, 以供參考:
總結
以上是生活随笔為你收集整理的关于 Blazor Server Side 的一些杂项, 感想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从对我的质疑说起,谈谈Linux下的文件
- 下一篇: 重现江湖!大数据高并发——架构师秘籍