Blazor将.NET带回到浏览器

由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”。

相关文章: 

  • WebAssembly,开发者赢了

  • WebAssembly:随风潜入夜

原文地址:http://www.infoq.com/cn/news/2017/07/Blazor


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssl2342-打击犯罪【并查集】

正题 大意 有n个犯罪团伙,他们之间可以相互联系,按照1到n的顺序打击,求最少打击多少个犯罪团伙可以使多个犯罪团伙组成的已经无法与外联系的团伙最大的那个不超过n/2。 解题思路 先储存每条连接的路径,然后从n枚举到1&#xff0…

Java 必须掌握的 12 种 Spring 常用注解

转载自 Java 必须掌握的 12 种 Spring 常用注解 1.声明bean的注解 Component 组件,没有明确的角色 Service 在业务逻辑层使用(service层) Repository 在数据访问层使用(dao层) Controller 在展现层使用&#xff…

过滤器和监听器

文章目录01 过滤器的简介02 使用过滤器进行乱码解决03 使用过滤器进行登陆的控制04 过滤器更多内容05 监听器实现日志记录06 监听器实现在线人数的统计07 其他监听器使用01 过滤器的简介 为什么使用过滤器? 我们目前书写项目中遇到的问题? A、目前使用的…

高启航:秋运会!

本文原创:高启航(本文所有收益均归高启航所有)在十月份的二十一号,我们济南信息工程学校迎来了一年一度的秋季运动会。这次秋运会,每一个班级所准备的开幕式、训练已久的千人武术大展演、以及在运动会上表现优越的运动…

用python画出吉祥物

大前提 你需要一个"npy" 效果图 源码 # 库的导入 import turtleturtle.title(PythonBingDwenDwen(axing)) #这里的字我们可以自己进行修改turtle.speed(10) # 速度,如果觉得20快了,你们可以设置10# 左手 turtle.p…

RabbitMQ知多少

1.引言 RabbitMQ——Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适。RabbitMQ 是一个由 Erlang 语言开发的AMQP(高级消息队列协议)的开源实现,其内部结构如下: RabbitMQ作为一个…

分布式系统中处理参数配置的 4 种方案

转载自 分布式系统中处理参数配置的 4 种方案 一个系统中包含有各种各样的配置信息,如一个日志文件需要配置以下几个信息。 日志文件生成主目录 日志文件名称,不同的日志级别对应不同的文件 当前日志级别 还有其他各种业务参数、系统参数等&#x…

P1455-搭配购买【图论,并查集,dp,背包】

正题 题目链接: https://www.luogu.org/problemnew/show/P1455 大意 有n个商品,给出价值和价格。有m组搭配,如果买了其中一个就得买另一个,给出你拥有的钱,求能获得的最大价值 解题思路 首先用并查集算出每个搭配的…

王宝兴:秋运会

本文原创:王宝兴本文所有收益归王宝兴所有一年一度的运动会如期而至。可谓是“沙场秋点兵”的壮阔,给了我们难以言喻的激情。为了入场式,为了我们每个人,为了我们整个班集体,所有人付出的不止一点,在这短短…

.NET Core快速入门教程 1、开篇:说说.NET Core的那些事儿

一、.NET Core的诞生 聊 .NET Core,就不得不说他的爸爸 .NET。当年Java刚刚兴起,如火如荼,微软也非常推崇Java,当时Windows平台的Java虚拟机就是微软按照JVM标准实现的,据说也是当时性能最好的Java虚拟机。但是微软也…

P2814-家谱【图论,并查集,std map库】

正题 题目链接&#xff1a; https://www.luogu.org/problemnew/show/P2814 大意 有n个父子关系&#xff08;可能不止一个孩子&#xff09;&#xff0c;询问一些人最大的祖先 代码 #include<cstdio> #include<map> #include<string> #include<iostream…

机器学习和深度学习概念入门

转载自 机器学习和深度学习概念入门 作者&#xff1a;谭东 遵循&#xff1a;BY-SA&#xff08;署名-相同方式共享4.0协议&#xff09; 对于很多初入学习人工智能的学习者来说&#xff0c;对人工智能、机器学习、深度学习的概念和区别还不是很了解&#xff0c;有可能你每天…

lldb 调试 linux下 .net Core 总结及开源扩展 yinuo

相信很多朋友在跟随微软.net core 从windows平台迁移至linux平台的过程中遇到很多别扭的地方&#xff0c;这里我只聊聊 运行时 调试的那些事儿。 首先从工具上来讲Windows上的windbg肯定是运行时的首选调试工具(因为有对应版本的SOS.dll)&#xff0c;在linux平台运行时调试需要…

班级日常分享:一天一瞬间!

好久没有记录班级日常了&#xff0c;自运动会结束之后&#xff0c;事情比较多&#xff0c;也很忙&#xff0c;所以没有及时记录。19级3班最近在上bootstrap&#xff0c;属于前端的范畴&#xff0c;内容较简单&#xff0c;同学们都能跟的上老师的步伐&#xff0c;一行一行大代码…

Java 程序员必须掌握的 8 道数据结构面试题,你会几道

转载自 Java 程序员必须掌握的 8 道数据结构面试题&#xff0c;你会几道 瑞士计算机科学家Niklaus Wirth在1976年写了一本书&#xff0c;名为《算法数据结构编程》。 40多年后&#xff0c;这个等式仍被奉为真理。这就是为什么在面试过程中&#xff0c;需要考察软件工程师对数…

【2018.3.24】模拟赛之一-ssl2545 奇数【水题】

前言 其实我实在不想写这道题&#xff0c;可是老师说都要写&#xff0c;我就水水过吧。 正题 大意 求一个区间的奇数 送上我在博客里写过的最短的代码 代码 #include<cstdio> using namespace std; int a,b; int main() {scanf("%d%d",&a,&b);if (…

vue.js 01 模板语法

文章目录vue插值vue指令vue插值 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&…

如何使用bootstrap实现轮播图?

大家好&#xff0c;我是雄雄&#xff0c;今天给大家分享的是如何使用bootstrap实现轮播图&#xff0c;美观大方且兼容性还好&#xff01;轮播图就不做过多的介绍了&#xff0c;大家都知道&#xff0c;只是轮播的实现有多种方式&#xff0c;例如使用纯js写&#xff0c;费时费力&…

Visual Studio Code: 利用 MSSQL 插件创建数据库 IDE

尽管面对繁重的 .NET 开发任务 Visual Studio 仍是我的首选 IDE&#xff0c;但我却已深深迷恋上 Visual Studio Code (VS Code)&#xff0c;无论我使用的语言是 C#、JavaScript 还是 Node&#xff0c;也无论我使用的操作系统是 Windows 还是 macOS。 当然&#xff0c;VS Code 及…

正则表达式真的很骚,可惜你不会写

转载自 正则表达式真的很骚&#xff0c;可惜你不会写 本文旨在用最通俗的语言讲述最枯燥的基本知识 文章提纲&#xff1a; 元字符 重复限定符 分组 转义 条件或 区间 正则表达式在几乎所有语言中都可以使用&#xff0c;无论是前端的JavaScript、还是后端的Java、c#。他…