您好,登錄后才能下訂單哦!
怎么使用Asp.net Core3與Blazor的全棧式網站,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
最新的微軟視頻: Full stack web development with ASP.NET Core 3.0 and Blazor - BRK3017
以下是重要步驟截圖配注解:
.Net Core3的全棧解決方案示意圖。
此圖的第一部分Client 是可以靈活替換的,哪怕它是Vue,Angular 或者 JQuery 都是很完美的一個解決方案的。在追求整體的前端解決方案之初,是插件的時代,IFrame的時代。之所以沒有一統江湖的框架出來,可能是沒有一個一統江湖的Router,而Router是框架的粘合劑。ExtJs,Hae之類就是那時的巔峰產物,各自實現了模擬類,組件繼承,路由,頁面生命周期管理等等。到如今這個美好時代,有Vue,Angular了,一個命令行就做好項目框架,現在Blazor (Client-side) 是首個利用WebAssembly 實現的前端解決方案!
在網站開發演化的過程中,前后分離的模式基本被推舉為主流,但不時出現前后一體的技術架構,我稱之為全棧解決方案。 比如之前的Asp.net 和 MEAN 框架了。 Asp.net框架實現WebForm架構,通過重重的ViewState來實現狀態的傳遞,最后經不起MVC的輕輕一擊就讓位出來了;而 MEAN框架更是思維超前,全棧用JS開發,用JSON傳遞數據,但又過于小眾; 還有Gwt或Abp等一些技術,口號是前端直接調用后端的服務或函數。然后這一次Blazor (Server-side) 是微軟第二次摸索前后一體的技術架構,是首個利用WebSocket技術實現的全棧解決方案!
第二部分,廣大Javaer 請手動略過,而且Neter們可以再次信仰充值。到了.Net Core3.0時,Mvc 和 Web Api的Controller完美統一,MVC和Razor pages 的視圖語法統一,Razor Pages可以靈活的介入而無需MVC的諸多約定(asp的再生 )。SignalR的簡單至極的用法,支持Web, .Net ,和Java的客戶端連接以及未來的C++客戶端,它的后臺開發你可以用Web服務承載,甚至可以用控制臺或桌面程序控制。說到桌面程序可以控制每個Client ,讓我想到了網絡游戲的開發,或許SignalR可以支持網絡游戲的后臺管理部分工作,大膽設想一下,以后網絡游戲的網絡連接模塊全用SignalR編寫, 而游戲的其它重心就只剩圖形和邏輯模塊(即游戲的Client開發)了。我沒接觸過游戲開發,不知道現有的游戲引擎的聯網模塊如何的工作和高效的,但我認為SignalR是微軟送給全世界開發者的禮物,無論他是用什么語言,在什么領域,都可以嘗試一下。
第三部分,gRPC的到來是一場革命,雖然它把后端的戰線又拉長了1公里,但這1公里是超值的。暢想以后廣大的Net, Java, Python程序員可以歡座一堂,撫鍵盤而言歡了。而Work Services是.Net Core3中帶來的服務功能,就是一個持續的進程。
不知道細心的人有沒有發現沒有上圖沒有EF Core(數據層)呀!其實EF Core的位置在Web Api, Worker services,和gRPC里面,它地位只是一個小工具了。
以下是啟動步驟,可調試且安全的Blazor!
簡單提到了Blazor 的路由@page , 頁面即組件, Razor文件及Razor語法,如何發起對后臺的Http請求,之后
演示了第三方的表格組件和前端下載Excel文件
如何導出Excel文件
瀏覽器側導出文件本來是弱項,此處到底是如何實現保存文件的需要研究,真的是Net Core實現的?
重要的伙伴
Client-side: 前端加載量大,依賴瀏覽器的wasm能力,響應快。而且微軟標注了 Future
Server-side :前端加載小,SignalR,后端負載大,頁面元素也是實時傳輸的, 它是隨3.0正式發布的。
這個模式我認為是微軟又一次的強造的東東,力量大就是好,直的能掰彎,彎的能掰直,但真的能否推廣開真的是懸疑。這又是微軟的造車計劃,參考asp.net平臺(其它公司只有造輪子的能力,微軟向來是造車的)
服務端模式初始加載很少,400k, 瀏覽器徹底變成一個傀儡。mvc 框架中的View, Razor Pages,以及Blazor的組件都是Rendering Model ,是隨著請求發送給瀏覽器的,而組件的State是放在Server端的, 建議第32~33分鐘反復聽幾次!
現在的Blazor Server項目,瀏覽器端和后端像一個整體的單機程序一樣,比如wpf,winform開發,組件是有狀態的,但你不要關心它即可。這是微軟的asp.net WebForm架構的ViewState方案失敗后的再一次追求前后一體,不明白為什么微軟認定了state這種東西了,難道現在的無狀態HTTP不爽嗎?
Angular7 & asp.net core3完美合體
在.Net Core3.0中,有新的Worker Services模板了,它是長時間運行的工作進程,可以承載在windows services, systemd,WebJobs,容器中,
aps.net core的 易用的配置項,日志及DI都是內置的,所有的一切只需要你新建一個asp.net core項目,選擇Work Services模板即可!
這又是極簡的框架, 還是微軟大法好!
添加 windows的 服務支持,它就很容易部署成service了,以下是步驟!
再加一句話,然后發布項目。
啟動服務即可:
一個批薩訂單的例子
一次啟動多個項目的設置:
proto文件是自動編譯的。
看完上述內容,你們掌握怎么使用Asp.net Core3與Blazor的全棧式網站的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。