通过Blazor使用C#开发SPA单页面应用程序(1)
2019年9月23——25日 .NET Core 3.0即將在.NET Conf上發布! .NET Core的發布及成熟重燃了.net程序員的熱情和希望,一些.net大咖也在積極的為推動.NET Core而不懈的努力。在這次.NET Core 3.0中一項新的技術也首次出現在人們的視野,這就是Blazor。說起Blazor也許許多人并不知曉,但這幾年一片熱火朝天的Angular,React,Vue等前端技術估計無人不知無人不曉。對Blazor就是Microsoft提供的使用C#構建SPA的技術,雖然他姍姍來遲,但帶給了大家一個與Angular,React,Vue等框架完全不一樣的體驗、完全不一樣的架構。
? ? 由于這是一個全新的技術,目前學習資料非常有限,我將自己學習到的內容記錄匯總在這里以便查閱,也給感興趣的童鞋提供參考。
1.????簡介
? ? Blazor是一個新的Web UI框架,使用C#,Razor和HTML以及WebAssembly (W3C標準)。它允許您使用C#而不是JavaScript構建交互式Web UI。Blazor應用程序由使用C#,HTML和CSS實現的可重用Web UI組件組成。客戶端和服務器代碼都是用C#編寫的,允許您共享代碼和庫。
2.????在WebAssembly或服務器上運行
? ? Blazor可以使用WebAssembly直接在瀏覽器中運行客戶端C#代碼。因為它是在WebAssembly上運行的真實.NET,所以您可以從應用程序的服務器端部分重用代碼和庫(客戶端渲染)。
或者,Blazor可以在服務器上運行您的客戶端邏輯。客戶端UI事件使用SignalR(實時消息傳遞框架)發送回服務器。執行完成后,所需的UI更改將發送到客戶端并合并到DOM中(服務器端渲染)。
3.????Web Assembly (Wasm)
? ? 基于W3C開放標準,用于在瀏覽器中運行低級字節代碼。使用此標準,我們可以直接在瀏覽器中運行服務器端語言(Rust,C ++,C#...)而不是Javascript。
? ? 還記得Java applet和Microsoft Silverlight嗎,我們必須在瀏覽器中安裝插件來運行Java和C#代碼,但是WebAssembly提供了基本標準,現在我們不需要任何插件,他的二進制格式以.wasm文件表示,能夠提供接近本機的性能。
4.????建立在開放的Web標準之上
? ? Blazor使用開放的Web標準,沒有插件或代碼轉換。Blazor適用于所有現代Web瀏覽器,包括移動瀏覽器。
? ? 在瀏覽器中運行的代碼在與JavaScript框架相同的安全沙箱中執行。
Blazor 客戶端渲染支持的瀏覽器
瀏覽者 | 版本 |
Microsoft Edge | 當前 |
Mozilla Firefox | 當前 |
Google Chrome, 包括 Android | 當前 |
Safari, 包括 iOS | 當前 |
Microsoft Internet Explorer | 不支持 * |
* Microsoft Internet Explorer 不支持WebAssembly。
Razor 服務器端渲染支持的瀏覽器
瀏覽者 | 版本 |
Microsoft Edge | 當前 |
Mozilla Firefox | 當前 |
Google Chrome, 包括 Android | 當前 |
Safari, 包括 iOS | 當前 |
Microsoft Internet Explorer | 11x17 * |
*需要額外的填充代碼 (例如, 可通過Polyfill.io捆綁添加承諾)。
5.????單頁面應用程序(SPA)
? ? 單頁面應用程序(SPA)是一種構建在瀏覽器中單個頁面上的Web應用程序,頁面塊可以動態呈現而無需呈現完整的頁面。
Angular,React,Vue和許多其他語言為構建SPA提供了支持,但所有這些語言都構建在相同的Javascript語言之上。現在,Microsoft提供了使用C#和Razor頁面構建SPA的基礎,類似ASP.Net Core中的語法,所以它被稱為Blazor。
? ? Blazor是ASP.Net Core提供的新的Web框架,用于在瀏覽器中使用C#和WebAssembly標準構建SPA。
? ? ASP.Net Core是一個在Linux,Mac或Windows操作系統上運行的開源Web框架。
6.????JavaScript互操作
? ? C#代碼可以輕松調用JavaScript API和庫。在C#中編寫邏輯時,您可以繼續使用存在于客戶端UI中的大型JavaScript庫生態系統。當然如果愿意您還可以從 JavaScript 調用 .NET 實例方法和靜態方法。
7.????優點
受益于 .NET 的性能、可靠性和安全性,提供近乎原生的性能,高效且便攜
使用 C# 代替 JavaScript 來編寫代碼。
利用現有的 .NET 庫生態系統,我們可以在網頁中使用現有的豐富.net生態系統功能。
在服務器和客戶端之間共享應用邏輯。
始終高效支持 Windows、Linux 和 macOS 上的 Visual Studio。
以一組穩定、功能豐富且易用的通用語言、框架和工具為基礎來進行生成。
代碼維護和調試更可靠。
8.????缺點
Javascript已經非常成熟,許多組件庫已經存在于市場中。
具有Web Assembly標準的Blazor是市場上的新手,需要時間才能成熟,而且.net是WebAssembly眾多實現中的早期版本。
原文鏈接:https://www.cnblogs.com/liuxtj/p/11344539.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?
總結
以上是生活随笔為你收集整理的通过Blazor使用C#开发SPA单页面应用程序(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过Blazor使用C#开发SPA单页面
- 下一篇: 基于 WPF 模块化架构下的本地化设计实