惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
博客园_首页
T
Tailwind CSS Blog
美团技术团队
博客园 - 叶小钗
Microsoft Security Blog
Microsoft Security Blog
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
MongoDB | Blog
MongoDB | Blog
The Cloudflare Blog
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Y
Y Combinator Blog

博客园 - 我爱我家喵喵

LookImage2:用 Rust 打造的轻量级专业图像查看器 bat以隐藏模式运行jar包 完美单机155端gs修改:允许10次转生 [Docker] 部署 Nexus Repository OSS 仓库 [docker] 部署 AnythingLLM [nginx] 使用nginx代理实现Ollama支持本地html访问 [docker] 部署 Seata 分布式事务 [docker] 部署 Nacos 服务 CEF 谷歌内核下载地址 [Delphi] 自带皮肤动态切换 [VUE] WebPack 打包后自动修改 dist 中 package.json 版本号 【算法】python版A-Star(A星)寻路 【算法】决策树算法:ID3 【算法】K-means 算法学习 【Unity】使用VSCode调试 [Python] 基于 flask 构建 Web API 实现参数注入和校验 [Redis] 解决多个 Redis 服务同步删除有关联的 key [MySql] 数据库死锁的排查和相关知识 [redis] 设置密码 [Java] 扩展 Jackson 的 TypeReference 支持泛型参数传递
[C#] JavaScript 引擎
我爱我家喵喵 · 2023-04-07 · via 博客园 - 我爱我家喵喵

调研了一些兼容 .Net Framework 4.8 的 JavaScript 引擎。

JavaScriptEngineSwitcher

这个对C#常用的JS引擎作了集成,让你简单地尝试各种JS库。

  • JavaScriptEngineSwitcher.Core
    提供通用的 API (需要安装)

  • JavaScriptEngineSwitcher.V8

    JavaScript V8 引擎,实际上使用的是 ClearScript 引擎,兼容性很好,需要安装类库:

    • JavaScriptEngineSwitcher.V8.Native.win-x64 win64 环境
    • JavaScriptEngineSwitcher.V8.Native.win-x86 win32 环境
    • JavaScriptEngineSwitcher.V8.Native.linux-x64 linux x64 环境
  • JavaScriptEngineSwitcher.Jurassic

    Jurassic (侏罗纪)是使用纯 C# 实现的JS引擎,兼容所有的 es5 (包括严格模式, 似乎也部分支持 ES6),它不是一个解释器,它将 JavaScript 编译成 IL,这使得它的速度非常快,而且它没有本地的依赖性。性能好同时很轻量(一个dll),但基本上没有更新维护(好用不需要维护?)。JavaScriptEngineSwitcher.Jurassic 是对 Jurassic 的封装,这个不需要安装类库。

  • 其它

    • Jint
      它是一个完全在 .NET 中运行的 JavaScript 解释器,没有任何本地的依赖!它完全支持 ECMAScript 5.1 (ES5),并支持 .NET Standard 2.0
    • ClearScript (V8)
      Node.JS、Chromium、Chrome 和最新的 Edge 使用的都是 V8 JavaScript 引擎。Microsoft.ClearScript 包为该库提供了一个封装,为调用 V8 库提供了一个 C# 接口。就像 ChakraCore 一样,V8 引擎本身是一个本地依赖。ClearScript 库负责 P/Invoke 调用,提供了一个很好的C# API,但你仍然要确保你在目标平台上部署了正确的本地库。
    • ChakraCore
      ChakraCore 是 Edge 转为基于 Chromium 引擎之前最初使用的 JavaScript 引擎

使用

最终使用 JavaScriptEngineSwitcher.V8,需要在 NuGet 中安装以下包:

  • JavaScriptEngineSwitcher.Core
  • JavaScriptEngineSwitcher.V8
  • JavaScriptEngineSwitcher.ChakraCore.Native.win-x64

注意

不要多个线程操作同一个 JS 引擎对象。