[Asp.Net Core] 淺談Blazor Server Side_實用技巧

來源:腳本之家  責任編輯:小易  

重要的是.NET Core和ASP.Net添加‘go live’協議,允許用戶在生產環境部署,可以反饋在生產環境是如何運作的。并且,現在.Net Core已經完全支持Mac,Linux和Windows三個平臺,特性都已完整。Net Core還新增了大量APIs,包括key ones for localization和networking。ASP.Net v5修改了hosting model,所以可以持續跨平臺,支持Mac,Linux和Windowswww.anxorj.tw防采集請勿采集本網。

在2016年, 本人就開始了一個內部項目, 其特點就是用C#構建DOM樹, 然后把DOM同步到瀏覽器中顯示. 并且在一些小工程中使用.

新框架沒用過,.Net Core 2.0感覺應該是支持的。這里有一篇帖子,你可以參考一下。www.bamn.cn/course/volume/3991 實在不行你就轉url吧,就像檢測用戶一樣,凡是沒有訪問權限的都轉到那個頁面。

3年下來, 效果很不錯, 但因為是使用C#來構建控件樹, 在沒有特定語法的情況下, 代碼風格不是那么好.

查了一下,可以用命令行生成相應的文件: Scaffold-DbContext\"Server=.\\SQLExpress;Database=SchoolDB;Trusted_Connection=True;Microsoft.EntityFrameworkCore.SqlServer-OutputDir Models

典型的風格大概是這樣的:

在asp.net core 里非常建議使用entity framework,因為新的entity framework core定義了一套接口標準,就如同ado.net一樣,只要有廠家實現了這套接口就行,而且廠家的實現肯定會更好一些。在asp.

這個模式挺好的, 有點嫌棄C#代碼占比太高, HTML代碼靠字符串來完成, 在界面的設計上, 比較吃力.

不可以。首先要知道。NET CORE 是基于.netframework 4.6 起步的(當然這個不是說是原版本的netframe版本)跨平臺解決方案技術. 而使用 開發的 VS 是推薦 直接使用 2017 版本,開發系統 推薦 WIN10

在2019年秋, Asp.Net 3.0出來了, Blazor Server Side 也正式公布, 可以在VS2019中使用.

這個吧,可能有些東西你不太理解造成的。關于性能提升的問題,net core是否性能提升10倍?答案是還真差不多!為什么呢?這是因為.net core為了跨平臺,編譯的方式使用的是dotnet publish-r 版本

當時我就去嘗嘗鮮, 發現這東西, 和我的框架很接近. 不同的是,

Blaozr Server Side 是基于 MVVM 的, 而我的框架是基于傳統控件樹的.

Blazor畢竟有微軟做爸爸, 在VS上的支持是直接的, 由Razor文件來負責 HTML+C# 的代碼模式, 完全支持智能提示.

天呀, 這不是就是我夢寐以求的開發方式嗎? 于是, 在疫情期間, 我把以前的框架, 和Blazor直接整合在一起. 開始做一些小工程做驗證.

現在這個整合大部分需求與問題都得到了解決. 還需要提供更多的控件用以提高工程的開發速度.

先上圖,  看看 Blazor 的代碼是長什么樣子的.

(Razor語法, 和MVC有點接近. 但是MVC是輸出靜態HTML的, Blazor組件是生成服務器樹狀結構的)

與 MVC 的 Razor語法是接近的 , 然而最大不同時 , MVC 的最終目標是生成字符串發給瀏覽器.  而Blazor生成了模型之后, 依然是"活動"的, 隨時準備好響應客戶端的事件.

對于 Blazor 架構的一些特點, 畫了一些圖.

首先, 我把這種模式成為 "服務器UI映射" , 后面都會陸續使用這個概念.

個人看法 , 通常的情況, 僅供參考

Blazor 因為在服務器上把代碼運行狀態駐留在內存,

所以程序運行的上下文得以保存, 而關聯的事件也會綁定到上下文中.

事件處理函數被調用時, 相關的對象和數據會全部可用.

具體的細節無法說太多, 畢竟這是新事物, 我自己也是一邊使用一邊積累心得.

我以后會陸陸續續放上各種例子, 提供給感興趣的網友們, 用節省時間的方式去迅速掌握Blazor的開發流程.

最后, 放上一個對照表, 以供參考:

服務器UI映射 C/S B/S  B+C混合
簡單概述 活在服務器

投影到客戶端

活在客戶端

與服務器通信

服務器生成HTML

客戶端展示與回發

服務器先生成HTML

客戶端深化界面功能

典型方案 Blazor Server Side

at server hosted

平臺:Windows/Android/iOS GUI框架

網頁:JS控件類/React/Argular/Vue..

Blazor WebAssembly

Blazor Server Side at client hosted 

各種WEB服務器方案:

ASP/ASP.NET WebForms,MVC

PHP/Java/Node.js/..

各種框架混合使用
典型應用 無 , 適合: 微信公眾號應用,

網站后臺, 手機嵌入頁面

小程序webview嵌入頁面

各種Desktop/Mobile客戶端

游戲客戶端,網站SPA,微信小程序,

各種入門級展示型網站 各種復雜點的網站
讀寫數據 直接, 方便 需通過服務器代勞 直接, 方便 混合
通信方式 已在服務器運行 HTTP/Socket/WebSocket等等

由各平臺/框架提供

HTTP GET/POST為主 混合
通信代碼 無需額外編寫(優點) 基于XML/JSON/Query/Form/自定格式

程序員指定具體的名稱與值

服務器與客戶端都要編寫大量代碼(缺點)

關乎權限的話要保證安全性,工作量會很大

主要是Query/Form

程序員指定具體的名稱與值

只適合簡單的程序

混合
服務重啟

熱更新

丟失未保存的狀態(缺點)

對正使用的用戶造成影響

未保存狀態在客戶端保存

只要重試便可

狀態在瀏覽器保存

只要重試便可

狀態在瀏覽器保存

只要重試便可

服務器負荷 最重,(缺點)

每在線用戶會占用服務器內存

只適合少量在線用戶場合

最少(優點)

服務器基本上只處理業務邏輯

每個請求會很快釋放,負擔很小

不多 較少
適合場景 資金少的企業定制應用

用戶量較少的小功能

以快速開發為目標

通用開發模式

適合絕大部分情況

比較適合內容展示網站

或比較簡單的業務系統

混合
代碼部署 純服務器,更保密 客戶端,沒那么保密(缺點)

通信機制可能會被濫用攻擊

服務器為主,較為保密 混合情況
首次啟動 極快 100KB下載量起 慢,看框架和程序整體大小 極快, 看內容多少 混合
版本更新 直接覆蓋 客戶端需下載或重新載入 直接覆蓋 混合情況
搜索引擎 可被收錄
被惡意

收集數據

目前較安全 通過通信協議收集 通過爬蟲收集 混合

以上就是[Asp.Net Core] 淺談Blazor Server Side 的詳細內容,更多關于Blazor Server Side 的資料請關注真格學網其它相關文章!

ASP.NET Core 是一個全新的開源、跨平臺框架,可以用它來構建基于網絡連接的現代云應用程序,比如:Web 應用,IoT(Internet Of Things,物聯網)應用和移動后端等。ASP.NET Core可以運行在.NET Core 或完整的.NET Framework 之上,其架構為發布到云端或本地運行的應用提供了一個最佳的開發框架,由開銷很小的模塊化組件構成,這就保持了你構造解決方案的靈活性。你可以跨平臺地在Windows、Mac和Linux等設備上開發和運行你的 ASP.NET Core 應用。ASP.NET Core有以下優勢:ASP.NET Core相對于之前的版本有許多變化,才使得它成為一個更加靈活和模塊化的框架。ASP.NET Core不再是基于System.Web.dll,它基于一組分解在NuGet的包。這使您可以根據實際需要來判斷是否引用相應的Nuget包,可以優化您的應用程序。表面積更小的應用程序的好處包括安全更強、維修更少,提高性能,降低成本。最新版本的 ASP.NET 叫做 ASP.NET Core (也被稱為 ASP.NET 5)它顛覆了過去的 ASP.NET內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • [asp.net core]用blazor server side實現圖片驗證碼
  • asp.net "對路徑的訪問被拒絕" 解決方法的分析
  • .net core跨平臺執行命令、腳本的方法詳細
  • asp.net防重復提交機制實現方法
  • c#中html字符轉換函數分享
  • asp.net實現的des加密解密操作示例
  • asp.net mvc中url地址傳參的兩種寫法
  • 詳解高效而穩定的企業級.net office 組件spire(.net組件介紹之二
  • 把時間戳轉換為日期格式的js代碼
  • vb.net 查詢獲取數據庫數據信息
  • asp.net web頁面自定義分頁控件使用詳解
  • ASP.net core是什么?
  • 如何評價asp.net core
  • 請問:ASP.net mvc5和asp.net.core有什么區別呢?在今后的發展中這個前景怎么樣?
  • vs2017 asp.net core 啟動異常
  • Asp.Net Core 設置 .html 頁為起始頁
  • 請問asp.net core mvc怎么使用ef連接現有數據庫?
  • asp.net core里面,EF和NH哪個對Oracle的支持更好?
  • ASP.NET Core win2003上可以用嗎
  • asp.net core mvc 是不是未包含使用UA 動態選擇displayModel
  • 沒有基礎可以學 asp.net core嗎?
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全基礎應用實用技巧自學過程首頁asp.net[asp.net core]用blazor server side實現圖片驗證碼asp.net "對路徑的訪問被拒絕" 解決方法的分析.net core跨平臺執行命令、腳本的方法詳細asp.net防重復提交機制實現方法c#中html字符轉換函數分享asp.net實現的des加密解密操作示例asp.net mvc中url地址傳參的兩種寫法詳解高效而穩定的企業級.net office 組件spire(.net組件介紹之二把時間戳轉換為日期格式的js代碼vb.net 查詢獲取數據庫數據信息asp.net web頁面自定義分頁控件使用詳解java正則表達式 pattern和matche未將對象引用設置到對象的實例 (asp.net(c#)網頁跳轉七種方法小結未能加載文件或程序集“xxx”或它asp.net“服務器應用程序不可用”asp.net中的幾種彈出框提示基本實asp.net gridview 72般絕技asp.net生成excel并導出下載五種asp.net對路徑"xxxxx"asp.net漢字轉拼音和獲取漢字首字asp.net中xml轉json的方法實例asp.net jscript 一句話木馬淺談.net core 注入中的三種模式:single擁有網頁版小u盤 asp.net實現文件上傳與下asp.net中實現模板頁實例講解.net中資源文件的創建與使用asp.net textbox回車觸發事件 圖片在img顯asp.net數據庫編程之access連接失敗asp.net中3種驗證碼示例(實現代碼)(數字,asp.net微信公眾號查看粉絲信息接口
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载