zoukankan      html  css  js  c++  java
  • .Net与 WebAssembly 随笔

    WebAssembly 是啥

    • - WebAssembly 是一种浏览器支持的字节码格式,WebAssembly 字节码和底层机器码很相似可快速装载运行,因此性能相对于 JS 解释执行大大提升,需要放到 WebAssembly 虚拟机中才能运行, 浏览器厂商需要做的就是根据 WebAssembly 规范实现虚拟机。使用WebAssembly,我们可以在浏览器中运行一些高性能、低级别的编程语言,可用它将大型的C和C++代码库比如游戏、物理引擎甚至是桌面应用程序导入Web平台。
    • - 可以认为, WebAssembly 是传统浏览器插件的妥协结果。覆盖率最广的flash自己作死,因为性能和安全问题被apple拿下,其它的activeX/silverlight/javaApplet/ 又因浏览器或其它限制做不到全平台覆盖。那就用html5吧,但html5+js的性能又不行,那么大家就坐下来商量一个通用二进制插件,WebAssembly就横空出现了。
    • - WebAssembly现在限制还有很多,如不能用线程、无垃圾回收等。和html5一样,WebAssembly标准也会有一个耗时持久的扯皮过程。此外,WebAssembly 还有安全限制,它是运行在浏览器沙箱中的。另外,开发环境/调试等问题涵待慢慢解决。
    • - 现阶段 WebAssembly 适合做些依赖网络的应用(如视频播放、游戏、工具应用),不适合做操作系统相关的、操作硬件、并发线程的、体积庞大的类似的应用。
    • - WebAssembly的前世今生可以参考:https://blog.csdn.net/GarfieldEr007/article/details/68215694

    .Net与 WebAssembly

    (1)https://github.com/aspnet/Blazor  

    •     该项目支持在Web客户端运行.net代码,语法同razor。
    •     与silverlight不同,它不涉及UI部分,所有的UI都由Html标签呈现
    •     Blazor引擎将C#程序编译成WebAssembly,可以用c#代码来操作页面元素
    •     理论上加一个封装器,很容易改造成各种平台的客户端,可以这种方式做到跨平台。

    (2)Unity 3D 可以编译成WebAssembly

      这里有一个很酷的示例,原先Unity在web上是用UnityPlayer或flash插件实现的,现在用WebAssembly

          https://webassembly.github.io/demo

  • 相关阅读:
    java基础部分的一些有意思的东西。
    antdvue按需加载插件babelpluginimport报错
    阿超的烦恼 javaScript篇
    .NET E F(Entity Framework)框架 DataBase First 和 Code First 简单用法。
    JQuery获得input ID相同但是type不同的方法
    gridview的删除,修改,数据绑定处理
    jgGrid数据格式
    Cannot read configuration file due to insufficient permissions
    Invoke action which type of result is JsonResult on controller from view using Ajax or geJSon
    Entity model数据库连接
  • 原文地址:https://www.cnblogs.com/surfsky/p/9298985.html
Copyright © 2011-2022 走看看