.NET in Browser - Blazor

什麼是Blazor

Blazor 是一個實驗性的. NET web 框架, 使用 C# 和 HTML 在任何瀏覽器中不須要插件便可運行 WebAssembly 程序集。javascript

什麼是WebAssembly

WebAssembly是一種新的適合於編譯到Web的,可移植的,大小和加載時間高效的格式,是一種新的字節碼格式。它的縮寫是」.wasm」,.wasm 爲文件名後綴,是一種新的底層安全的「二進制」語法。它被定義爲「精簡、加載時間短的格式和執行模型」,而且被設計爲Web 多編程語言目標文件格式。
這意味着瀏覽器端的性能會獲得極大提高,它也使得咱們可以實現一個底層構建模塊的集合.
介紹1 介紹2html

爲何要用.NET開發Web項目

  • 穩定,成熟,高效 : .net standard, msbuild
  • 快速,可擴展性,可靠 : .net core用於後端服務
  • 現代語言 : C#
  • 一流的開發工具: Visual studio

客戶端web開發一直是JavaScript的惟一領域。WebAssembly準備經過向語言、框架和工具的完整生態系統開放web來改變這一點。Blazor是一個經過WebAssembly網絡平臺將.net引入網絡的實驗性項目。使用.net進行全棧Web開發,而且不須要插件或代碼轉換,可適用於全部現代瀏覽器,包括移動瀏覽器。能夠理解爲,這是一個C#語言的Vue, Angular, React。前端

Browser + Razor = Blazorjava

Blazor有哪些功能

  • 組件化開發
  • 支持路由
  • 佈局
  • 依賴注入
  • javascript互操做
  • 自動構建
  • 調試
  • 發佈
  • 應用程序大小優化
  • 在不支持WebAssembly的瀏覽器中回溯到asm.js
  • 豐富的智能感知和工具

Blazor的兩種工做方式 瞭解服務器端Blazor框架

1 客戶端模式
將cs和cshtml編譯打包成靜態文件,可直接部署到web服務器,發佈文件以下:
git

2 服務端工做模式
服務端工做模式是要依賴dotnet,dotnet做爲後端服務,經過SignalR與瀏覽器通信
github

Blazor將要實現的功能

  • 優化運行時性能
  • AOT編譯到WebAssembly
  • 優化下載大小
  • 改進對.net standard的支持
  • 實時重裝(SignalR斷開後須要刷新頁面)
  • 延遲加載應用程序區域
  • 服務端渲染
  • 安全
  • 表單和驗證
  • 測試框架
  • 跨平臺工具(Blazor+Electron)
  • 服務器端狀態和鏈接管理

Blazor乾貨

Blazor 目前版本是0.6,目前更新比較頻繁,可是已經能夠用來開發後端應用了。這裏有一套Blazor框架,能夠實現Blazor服務端工做方式和客戶端工做方式的切換,不須要修改任何代碼, 前端用Razor實現SEO,後端用Blazor,當Blazor是以Server-Side工做時,直接後端依賴注入,當Blazor以Client-Side工做時,Host將Service 轉換成 Controller 提供API, 前端經過HttpClient調用(防止業務dll泄漏,這個也是Blazor將要解決的安全問題)
Blazor1 Blazor2web

相關文章
相關標籤/搜索