.Net與 WebAssembly 隨筆

WebAssembly 是啥html

  • - WebAssembly 是一種瀏覽器支持的字節碼格式,WebAssembly 字節碼和底層機器碼很類似可快速裝載運行,所以性能相對於 JS 解釋執行大大提高,須要放到 WebAssembly 虛擬機中才能運行, 瀏覽器廠商須要作的就是根據 WebAssembly 規範實現虛擬機。使用WebAssembly,咱們能夠在瀏覽器中運行一些高性能、低級別的編程語言,可用它將大型的C和C++代碼庫好比遊戲、物理引擎甚至是桌面應用程序導入Web平臺。
  • - 能夠認爲, WebAssembly 是傳統瀏覽器插件的妥協結果。覆蓋率最廣的flash本身做死,由於性能和安全問題被apple拿下,其它的activeX/silverlight/javaApplet/ 又因瀏覽器或其它限制作不到全平臺覆蓋。那就用html5吧,但html5+js的性能又不行,那麼你們就坐下來商量一個通用二進制插件,WebAssembly就橫空出現了。
  • - WebAssembly如今限制還有不少,如不能用線程、無垃圾回收等。和html5同樣,WebAssembly標準也會有一個耗時持久的扯皮過程。此外,WebAssembly 還有安全限制,它是運行在瀏覽器沙箱中的。另外,開發環境/調試等問題涵待慢慢解決。
  • - 現階段 WebAssembly 適合作些依賴網絡的應用(如視頻播放、遊戲、工具應用),不適合作操做系統相關的、操做硬件、併發線程的、體積龐大的相似的應用。
  • - WebAssembly的前世此生能夠參考:https://blog.csdn.net/GarfieldEr007/article/details/68215694

 

 

.Net與 WebAssemblyhtml5

(1)https://github.com/aspnet/Blazor  java

  •     該項目支持在Web客戶端運行.net代碼,語法同razor。
  •     與silverlight不一樣,它不涉及UI部分,全部的UI都由Html標籤呈現
  •     Blazor引擎將C#程序編譯成WebAssembly,能夠用c#代碼來操做頁面元素
  •     理論上加一個封裝器,很容易改形成各類平臺的客戶端,能夠這種方式作到跨平臺。

(2)Unity 3D 能夠編譯成WebAssemblygit

  這裏有一個很酷的示例,原先Unity在web上是用UnityPlayer或flash插件實現的,如今用WebAssemblygithub

      https://webassembly.github.io/demoweb

相關文章
相關標籤/搜索