0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

.NET應用程序可以直接調用WebAssembly模塊了

汽車玩家 ? 來源:開源中國 ? 作者:局長 ? 2019-12-10 11:35 ? 次閱讀

WebAssembly Runtime現(xiàn)已添加.NET Core API,開發(fā)者可直接在.NET應用程序中調用WebAssembly模塊。

Mozilla宣布由Bytecode Alliance創(chuàng)建的Wasmtime(WebAssembly runtime)現(xiàn)已添加處于早期預覽版狀態(tài)的.NET Core API,這就意味著開發(fā)者可以直接在.NET應用程序中調用WebAssembly代碼。

Bytecode Alliance(字節(jié)碼聯(lián)盟)是由Mozilla、Fastly、Intel與Red Hat聯(lián)合成立的組織,該聯(lián)盟旨在通過協(xié)作實施標準和提出新標準,以完善WebAssembly在瀏覽器之外的生態(tài)。Mozilla提到,.NET Core作為一個跨平臺的Runtime,仍提供對WebAssembly的支持主要三個好處,除了可跨平臺共享更多代碼之外,還能安全地隔離不受信任的代碼,同時憑借著WebAssembly的接口類型(WebAssembly Interface Types),WebAssembly和.NET可相互傳遞復雜類型。

雖然我們能夠使用.NET Core構建跨平臺應用,但如果要使用諸如C或是Rust等原生函數(shù)庫,這仍然是十分不方便的操作,因為需要函數(shù)庫為每個平臺發(fā)布特定函數(shù)庫版本。不過有了WebAssembly之后,我們可以將其作為橋梁以簡單滿足上面的需求。原生函數(shù)庫可以先編譯成WebAssembly,然后包括.NET Core在內的許多平臺就能使用這些WebAssembly模塊,這將簡化函數(shù)庫的發(fā)布以及應用程序對這些函數(shù)庫的依賴方式。

由于WebAssembly是面向網頁設計的,網頁是一種每次訪問網站(讀/寫數(shù)據)都會執(zhí)行不受信任代碼的環(huán)境,WebAssembly模塊只能調用從主機環(huán)境明確輸入的外部函數(shù),而且只能在主機分配的內存區(qū)域進行讀寫數(shù)據,這種沙盒設計方式也能被應用在.NET Core中,以增加安全性。通過支持WebAssembly,.NET Core也能使用沙盒以執(zhí)行不信任代碼。

另外,Bytecode Alliance力推的WebAssembly接口類型增加了WebAssembly與其他語言的互通性,.NET Core也能從中受益。Mozilla表示,WebAssembly接口類型簡化了應用程序與WebAssembly模塊間來回傳遞復雜類型所需的“膠水代碼”。當Wasmtime的.NET API最終可以對接口類型進行操作,WebAssembly和.NET之間就能夠無縫地傳遞復雜類型。

最后,Wasmtime新增加的這個.NET Core API尚處于預覽階段,Bytecode Alliance成員仍在對其積極開發(fā)中,更新將不保證向后兼容。當前目標是讓Wasmtime更為穩(wěn)定,因此不建議開發(fā)者將Wasmtime的.NET Core API用于正式產品開發(fā)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • net
    net
    +關注

    關注

    0

    文章

    124

    瀏覽量

    56047
  • 應用程序
    +關注

    關注

    37

    文章

    3198

    瀏覽量

    57360
收藏 人收藏

    評論

    相關推薦

    將STM32的App應用程序用MDK直接仿真,MDK下載后無法正常仿真的原因?

    如題,嘗試了下將STM32的App應用程序用MDK直接仿真,發(fā)現(xiàn)MDK下載后無法正常仿真,程序起始地址和中斷偏移都設置。以前用IAR是可以
    發(fā)表于 04-12 08:00

    三星Good Lock應用程序Lockstar模塊現(xiàn)存預覽與實際效果不符的BUG

    據報道,三星社區(qū)管理員日前回應網友反映,Good Lock應用程序中的Lockstar模塊的確存在技術漏洞:用戶在自定義鎖屏界面時,預覽樣式與實際效果不相符。
    的頭像 發(fā)表于 04-09 15:16 ?524次閱讀

    使用ADS .NET Framework構建一個應用程序,.s (匯編文件)文件無法編譯的原因?

    我正在嘗試使用 ADS .NET Framework 構建一個應用程序。 我遇到了以下錯誤,因為 .s (匯編文件)文件無法編譯。
    發(fā)表于 03-04 06:58

    verilog如何調用其他module

    。 1.2 為什么要調用其他模塊? 在復雜的設計中,我們通常需要實現(xiàn)各種不同的功能,并且這些功能往往可以通過不同的模塊來實現(xiàn)。通過調用其他
    的頭像 發(fā)表于 02-22 15:56 ?4154次閱讀

    RTC第二個功能和應用程序

    一般RTC模塊設備管理時間日歷、計時器等。從年到二。一些愛普生RTC模塊可以通過使用來自32768 Hz的分割頻率來管理次第二功能。本文件描述RTC
    發(fā)表于 01-03 15:45 ?0次下載

    LabVIEW程序中包含.net和C++dll的注意事項簡介

    LabVIEW的VI調用.NET程序集或者C++動態(tài)鏈接庫時的關系圖如下
    的頭像 發(fā)表于 12-11 09:22 ?1028次閱讀
    LabVIEW<b class='flag-5'>程序</b>中包含.<b class='flag-5'>net</b>和C++dll的注意事項簡介

    python調用windows命令

    Python是一種強大的編程語言,可以用于開發(fā)各種不同類型的應用程序。其中一個常見的用途是使用Python調用Windows命令來執(zhí)行特定的任務。在本文中,我們將詳細討論如何使用Python調
    的頭像 發(fā)表于 11-29 14:34 ?827次閱讀

    開發(fā)java應用程序的基本步驟是

    ava是一種面向對象的編程語言,廣泛用于開發(fā)各種類型的應用程序。在開發(fā)Java應用程序時,有一些基本步驟需要遵循,以確保應用程序的正確性和可靠性。 1.確定需求:這是開發(fā)任何應用程序
    的頭像 發(fā)表于 11-28 16:52 ?1311次閱讀

    .NET 8.0中有哪些新的變化?

    發(fā)布容器映像,并且默認情況下是非 root 的。由于 .NET 基礎映像更小,因此可以更快地部署容器化應用程序 - 包括我們映像的新實驗變體,這些變體可為本機 AOT 提供真正最小的應用程序
    的頭像 發(fā)表于 11-20 16:15 ?823次閱讀
    .<b class='flag-5'>NET</b> 8.0中有哪些新的變化?

    如何查看及更改函數(shù)/函數(shù)塊的調用環(huán)境

    模塊化設計的思想是把一些相似的功能(比如電機控制、閥控制)設計成函數(shù)或函數(shù)塊,這樣就可以反復調用。其優(yōu)點是:使程序架構更加清晰,避免重復編寫相似功能的代碼。不過可能會產生一個疑惑:既然
    的頭像 發(fā)表于 11-17 09:08 ?665次閱讀
    如何查看及更改函數(shù)/函數(shù)塊的<b class='flag-5'>調用</b>環(huán)境

    .NET8為原生AOT改進 Linux上原生AOT應用程序大小最多減少50%

    .NET 7 首次引入了以原生 AOT (Native AOT)?發(fā)布應用程序的選項?;诖颂匦?,開發(fā)者使用原生 AOT 發(fā)布應用程序可以創(chuàng)建一個完全獨立 (self-containe
    的頭像 發(fā)表于 11-14 11:53 ?1203次閱讀
    .<b class='flag-5'>NET</b>8為原生AOT改進 Linux上原生AOT<b class='flag-5'>應用程序</b>大小最多減少50%

    Flask如何升級到 Quart 應用程序

    本文詳細介紹典型的生產環(huán)境的 CRUD 應用程序從 Flask 到 Quart 的轉換,并展示相關的性能改進優(yōu)勢。 將這個 Flask-pyscopg2 應用程序升級到 Quart-asyncpg
    的頭像 發(fā)表于 11-01 16:23 ?539次閱讀
    Flask如何升級到 Quart <b class='flag-5'>應用程序</b>

    SEW-MOVIPRO啟動應用程序配置程序

    AMA0801應用程序模塊使用六個過程數(shù)據字進行尋址。因此,應用程序配置程序必須將這六個過程數(shù)據字傳輸?shù)捷S,而不進行更改。這是通過選擇“透明6PD”選項來確保的。
    的頭像 發(fā)表于 10-22 16:18 ?628次閱讀
    SEW-MOVIPRO啟動<b class='flag-5'>應用程序</b>配置<b class='flag-5'>程序</b>

    LabVIEW命令行調用exe傳入的參數(shù)如何獲取

    有些場景下,我們用LabVIEW開發(fā)的應用程序,需要通過命令行來調用,并向該應用程序傳遞參數(shù),那么在程序中如何才能獲取這些參數(shù)呢?
    發(fā)表于 10-11 09:28 ?1963次閱讀
    LabVIEW命令行<b class='flag-5'>調用</b>exe傳入的參數(shù)如何獲取

    仿真測試2:全加器(模塊調用

    做任何模塊前,要確定輸入輸出端口有哪些,有一個整體的概念;方便以后模塊調用;
    的頭像 發(fā)表于 10-10 14:10 ?543次閱讀
    仿真測試2:全加器(<b class='flag-5'>模塊</b><b class='flag-5'>調用</b>)