抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

Blazor 将.NET 带回到浏览器

2017 年 7 月 16 日

由 Steve Sanderson 开发的 Blazor 尝试使用 WebAssembly 和 DotNetAnywhere 将.NET 带回到浏览器。它不是要成为一个像 Flash 或 Silverlight 那样的完整生产框架,而是要探索一下有什么可能性。

WebAssembly 将自己描述成一个“内存安全的沙箱执行环境”标准,它“甚至可以在已有的 JavaScript 虚拟机中实现”。虽然 WebAssembly 在提供原生支持的浏览器中性能更好,但较旧的浏览器可以使用转换器和 asm.js 解释 WebAssembly。

目前,按照设计,WebAssembly 主要为 C 和 C++ 应用程序提供支持。它充当 clang/LLVM 的编译器后台。为了从 C 转到 C#,Blazor 使用了另外一个研究项目。由 Chris Bacon 开发的 DotNetAnywhere 是一个基于 C 面向.NET 公共中间语言(即 IL、CIL、MSIL)的解释器。DotNetAnywhere 项目大约是 6 年前完成的。

Blazor 对 DotNetAnywhere 做了如下修改:

  • 支持使用 Emscripten 构建;
  • 支持通过 p/invoke 在.NET 中调用 JavaScript;
  • 增加其他的互操作原语,如 GCHandle;
  • 接收从 JavaScript 到.NET 的入站调用;
  • 修复了一些 Bug;
  • 支持加载.NET Core 风格的程序集。

Blazor 应用程序使用 Razor 模板构建,在浏览器中执行,而不是服务器。据 Razor 文档介绍,一个简单的“hello world”应用程序需要 300KB 的下载。这包括“所有的东西:一个小型的.NET 运行时、核心库、应用程序代码,以及引导和与 WebAssembly 代码互操作所需的封装库”。

现在尚未剔除没有被实际调用的代码,因此,这个下载量还可以进一步减少。

想要实际地看一下效果的话,请观看 NDC 大会视频“ Web 应用无法真正地‘那样’做,它们能吗?——Steve Sanderson ”。

查看英文原文 Blazor Brings .NET Back to the Browser

2017 年 7 月 16 日 18:473766
用户头像

发布了 1008 篇内容, 共 322.2 次阅读, 收获喜欢 293 次。

关注

评论

发布
暂无评论
发现更多内容

量纲分析(Dimensional Analysis)入门

InfoQ_b5c13aa54782

数学 基础 物理 量纲分析 电磁

区块链政策区域特征分明 产业园区渐成聚集效应

CECBC区块链专委会

区块链 新基建

用python给女朋友做一个歌曲词云图

我是程序员小贱

兄弟,不要偷看人家摄像头

我是程序员小贱

MySQL关于日期为零值的处理

Simon

MySQL

自从有了语音开黑小能手,队友再也不会骂我了!

anyRTC开发者

WebRTC 在线教育 直播 RTC RTMP

Dell G7 指纹识别设备 - Goodix fingerprint 失效官方解决办法(图文)

Saint_X

硬件

企业品尝新基建的美酒前,需要名为NetEngine 8000的酒杯

脑极体

局域网文件共享

冰糖雪梨多冰少糖

局域网共享 iPad air3 文件传输

区块链在新冠病毒爆发中将加速发展

CECBC区块链专委会

区块链技术 供应链 食品追溯

枚举算法练习例题(Python版)

罗罗诺亚

Python 算法 枚举

随手记

InfoQ_0d79a8bcf933

数据结构与算法

小白程序员成长之路-准备篇

桃夭十一里

盲打练习 在线打字

Android |《看完不忘系列》之Retrofit

哈利迪

android

为什么考研,考研能给你带来什么?说说我的感受!

我是程序员小贱

STM32-ADC简单学习笔记

 

别人家的 DevOps 流水线,价值一个亿

Atlassian

DevOps 数字化转型 金融 Jira 数字银行

谈一谈Kuberflow

soolaugust

tensorflow 学习 kubeflow Kubernetes 云原生

集成学习方法及应用,破解AI实践难题

博文视点Broadview

人工智能 学习 AI 周志华

CentOS7 开启3306端口

暴躁小李K

Centos 7 Firewalld防火墙 Liunx

DB-Engines 8 月数据库排名:Redis悄悄拔高,猛超Elasticsearch

华章IT

MySQL 数据库 redis Clickhouse SQL优化

特性预览:Apache 顶级项目 Apache Pulsar 2.6.1 版本即将发布

Apache Pulsar

Apache Apache Pulsar 消息系统

操作系统bochs安装及使用

allworldg

操作系统

是时候学习Linux了

Simon

Linux

低/零代码干掉了传统的开发模式

代码制造者

编程语言 低代码 零代码 信息化 编程开发

写作只是消遣?

Geek_db1689

写作 讨论写作 自我感悟 瞎想乱写

全站加速在互联网媒体应用上的最佳实践

阿里云Edge Plus

CDN

辗转相除法求最大公约数(C语言实现)

InfoQ_3f366696ed0c

C语言

Apache Pulsar 社区周报:08-08 ~ 08-14

Apache Pulsar

Apache Apache Pulsar 消息系统

关于日期及时间字段的查询

Simon

MySQL sql查询

MySQL5.7升级到8.0过程详解

Simon

MySQL

Study Go: From Zero to Hero

Study Go: From Zero to Hero

Blazor将.NET带回到浏览器-InfoQ