你在使用哪种编程语言?快来投票,亲手选出你心目中的编程语言之王 了解详情
写点什么

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:473725
用户头像

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

关注

评论

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

spring-boot-route(一)Controller接收参数的几种方式

Java旅途

Java Spring Boot

第三周总结

_

极客大学架构师训练营 第三周总结

架構師訓練營第 1 期 - 第 02 周作業

Panda

架構師訓練營第 1 期

第三周用组合设计模式编写程序

Geek_fabd84

架构师训练营 1 期第 3 周:代码重构 - 总结

piercebn

极客大学架构师训练营

【读书笔记二】《企业IT架构转型之道-阿里巴巴中台战略思想与架构实战》

Man

中台 分布式 研发管理

架构师训练营第三周命题作业

成长者

极客大学架构师训练营

架构师训练营第 1 期 week2

张建亮

极客大学架构师训练营

Golang单例模式手写稿

Jacky.Chen

架构师训练营第 1 期 week2 总结

张建亮

极客大学架构师训练营

设计模式第三周作业「架构师训练营第 1 期」

天天向善

单例模式 组合模式

集中日志系统ELK

青乡之b

ELK

week03

……

架构师训练营第 1 期 - 第三周学习总结

Anyou Liu

极客大学架构师训练营

架构师训练营第三周学习总结

成长者

极客大学架构师训练营

LeetCode题解:242. 有效的字母异位词,数组计数,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

设计模式第三周总结「架构师训练营第 1 期」

天天向善

Ui Automator 框架和Ui Automator Viewer你会用吗?附送「必备adb命令」拿走不谢 !

清菡

android

架構師訓練營第 1 期 - 第 02 周總結

Panda

架構師訓練營第 1 期

架构师训练营第 1 期 -- 第三周学习总结

发酵的死神

极客大学架构师训练营

Week 3 Assignment

Yinan

spring-boot-route(二)读取配置文件的几种方式

Java旅途

Java Spring Boot

为什么go中的receiver name不推荐使用this或者self

Gopher指北

go 后端

架构师训练营—第三周学习总结

Geek_shu1988

架构师训练营—第三周作业

Geek_shu1988

架构师训练营第 1 期 -- 第三周作业

发酵的死神

极客大学架构师训练营

Linux忘记root密码怎么办

MySQL从删库到跑路

Linux 服务器 root密码 root

极客时间 - 架构师一期 - 第三周作业

_

极客大学架构师训练营 第三周

Mongodb异常关闭,再次启动报错

MySQL从删库到跑路

mongodb

架构师训练营第一期 - 第三周课后 - 作业二

极客大学架构师训练营

第三周作业

icydolphin

极客大学架构师训练营

云原生场景下企业API 网关选型及落地实践

云原生场景下企业API 网关选型及落地实践

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