0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

.NET应用程序可以直接调用WebAssembly模块了

汽车玩家 ? 来源:开源中国 ? 作者:局长 ? 2019-12-10 11:35 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

WebAssembly Runtime现已添加.NET Core API开发者可直接在.NET应用程序中调用WebAssembly模块。

Mozilla宣布由Bytecode Alliance创建的Wasmtime(WebAssembly runtime)现已添加处于早期预览版状态的.NET Core API,这就意味着开发者可以直接在.NET应用程序中调用WebAssembly代码。

Bytecode Alliance(字节码联盟)是由Mozilla、Fastly、Intel与Red Hat联合成立的组织,该联盟旨在通过协作实施标准和提出新标准,以完善WebAssembly在浏览器之外的生态。Mozilla提到,.NET Core作为一个跨平台的Runtime,仍提供对WebAssembly的支持主要三个好处,除了可跨平台共享更多代码之外,还能安全地隔离不受信任的代码,同时凭借着WebAssembly的接口类型(WebAssembly Interface Types),WebAssembly和.NET可相互传递复杂类型。

虽然我们能够使用.NET Core构建跨平台应用,但如果要使用诸如C或是Rust等原生函数库,这仍然是十分不方便的操作,因为需要函数库为每个平台发布特定函数库版本。不过有了WebAssembly之后,我们可以将其作为桥梁以简单满足上面的需求。原生函数库可以先编译成WebAssembly,然后包括.NET Core在内的许多平台就能使用这些WebAssembly模块,这将简化函数库的发布以及应用程序对这些函数库的依赖方式。

由于WebAssembly是面向网页设计的,网页是一种每次访问网站(读/写数据)都会执行不受信任代码的环境,WebAssembly模块只能调用从主机环境明确输入的外部函数,而且只能在主机分配的内存区域进行读写数据,这种沙盒设计方式也能被应用在.NET Core中,以增加安全性。通过支持WebAssembly,.NET Core也能使用沙盒以执行不信任代码。

另外,Bytecode Alliance力推的WebAssembly接口类型增加了WebAssembly与其他语言的互通性,.NET Core也能从中受益。Mozilla表示,WebAssembly接口类型简化了应用程序与WebAssembly模块间来回传递复杂类型所需的“胶水代码”。当Wasmtime的.NET API最终可以对接口类型进行操作,WebAssembly和.NET之间就能够无缝地传递复杂类型。

最后,Wasmtime新增加的这个.NET Core API尚处于预览阶段,Bytecode Alliance成员仍在对其积极开发中,更新将不保证向后兼容。当前目标是让Wasmtime更为稳定,因此不建议开发者将Wasmtime的.NET Core API用于正式产品开发。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • net
    net
    +关注

    关注

    0

    文章

    127

    浏览量

    56726
  • 应用程序
    +关注

    关注

    38

    文章

    3339

    浏览量

    59234
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    从 app_gatt_callback调用这个队列推送函数时,程序出现硬故障怎么解决?

    ,其大小为 intptr_t。 当我从 \" app_bt_management_c \" allback 调用队列推送 API 时,我的程序可以正常工作。 但是当我从 app_gatt_callback
    发表于 07-04 06:03

    verilog模块调用、任务和函数

    在做模块划分时,通常会出现这种情形,某个大的模块中包含了一个或多个功能子模块,verilog是通过模块调用或称为
    的头像 发表于 05-03 10:29 ?809次阅读
    verilog<b class='flag-5'>模块</b>的<b class='flag-5'>调用</b>、任务和函数

    AWTK-WEB 快速入门(5) - C 语言 WebSocket 应用程序

    导读WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用C语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程序先安装
    的头像 发表于 02-19 11:49 ?522次阅读
    AWTK-WEB 快速入门(5) - C 语言 WebSocket <b class='flag-5'>应用程序</b>

    labview调用dll提示加载程序集时发生错误

    问题描述: 小弟在用构造器节点调用dll的时候提示加载程序集时发生错误,个人觉得可能是.net环境不匹配,还请各位大神支支招 问题图片如下图 dll描述如图
    发表于 02-19 10:46

    ANACONDA——关于发布数据应用程序的新简单方法

    与 Anaconda 的云笔记本服务无缝集成,为用户提供一种轻松共享笔记本结果的方式,并让其他人也可以随意的访问它们。 下面我们来了解关于这项新功能的实际应用: 这项功能与 Panel 的多功能性相结合,将彻底改变您发布数据应用程序
    的头像 发表于 01-17 11:39 ?481次阅读
    ANACONDA——关于发布数据<b class='flag-5'>应用程序</b>的新简单方法

    适用于MySQL和MariaDB的.NET连接器

    支持 ORM 的适用于 MySQL 和 MariaDB 的 .NET 连接器 dotConnect for MySQL 是一种高性能 ADO.NET 数据提供程序,可在开发 MySQL 的应用
    的头像 发表于 01-16 14:17 ?567次阅读
    适用于MySQL和MariaDB的.<b class='flag-5'>NET</b>连接器

    dotConnect:基于ADO.NET架构的增强型数据连接解决方案

    dotConnect是一个基于ADO.NET架构的增强型数据连接解决方案,是一个采用了大量创新技术的开发框架。dotConnect是一款适用于主要数据库和流行云应用程序的高性能数据提供程序,为开发
    的头像 发表于 01-07 11:07 ?493次阅读
    dotConnect:基于ADO.<b class='flag-5'>NET</b>架构的增强型数据连接解决方案

    BQ78412应用程序编程接口

    电子发烧友网站提供《BQ78412应用程序编程接口.pdf》资料免费下载
    发表于 12-18 14:46 ?0次下载
    BQ78412<b class='flag-5'>应用程序</b>编程接口

    TAS2521应用程序参考指南

    电子发烧友网站提供《TAS2521应用程序参考指南.pdf》资料免费下载
    发表于 12-10 13:49 ?0次下载
    TAS2521<b class='flag-5'>应用程序</b>参考指南

    android手机上emulate应用程序的方法

    在Android手机上模拟(emulate)应用程序的方法通常涉及到使用Android模拟器(Emulator)或类似的工具来模拟Android环境,以便在没有实际物理设备的情况下运行和测试应用程序
    的头像 发表于 12-05 15:33 ?1395次阅读

    AWTK-WEB 快速入门(2) - JS 应用程序

    导读AWTK可以使用相同的技术栈开发各种平台的应用程序。有时我们需要使用Web界面与设备进行交互,本文介绍一下如何使用JS语言开发AWTK-WEB应用程序。用AWTKDesigner新建一个
    的头像 发表于 12-05 01:04 ?555次阅读
    AWTK-WEB 快速入门(2) - JS <b class='flag-5'>应用程序</b>

    AWTK-WEB 快速入门(1) - C 语言应用程序

    导读AWTK可以使用相同的技术栈开发各种平台的应用程序。有时我们需要使用Web界面与设备进行交互,本文介绍一下如何使用C语言开发AWTK-WEB应用程序。用AWTKDesigner新建一个应用
    的头像 发表于 11-27 11:46 ?797次阅读
    AWTK-WEB 快速入门(1) - C 语言<b class='flag-5'>应用程序</b>

    PCM2912应用程序的操作环境

    电子发烧友网站提供《PCM2912应用程序的操作环境.pdf》资料免费下载
    发表于 10-21 09:33 ?0次下载
    PCM2912<b class='flag-5'>应用程序</b>的操作环境

    labview调用bartender .NET封装成EXE后加载报错

    labview调用bartender .NET在源代码运行没有问题,但封装成EXE后加载.net就报错这事什么问题。 (注:用ActiveX封装成EXE也没问题,可以运行) 以下是ba
    发表于 10-19 10:14

    使用HIC启用外围扩展应用程序应用说明

    电子发烧友网站提供《使用HIC启用外围扩展应用程序应用说明.pdf》资料免费下载
    发表于 09-14 09:44 ?0次下载
    使用HIC启用外围扩展<b class='flag-5'>应用程序</b>应用说明