前几天我在做一个副业,意识到我需要使用一些 JavaScript 功能。一想到要再次处理 Node.js 和 npm,我就完全放弃了,所以我决定研究一下在 .NET 应用程序中运行 JavaScript 的可能性。很疯狂吧?实际上,这出乎意料的简单。
1你为什么要这样做?
尽管我很喜欢 .NET 生态系统,但有些事情,JavaScript 生态系统做得更好。其中之一就是任何事情都能找到一个库,特别是涉及到网络时。
以语法高亮为例。这可以直接用 C# 来做,但这不是一个特别流畅的体验。例如,TextMateSharp
项目为 TextMate 语法提供了一个解释器。这些文件是 VS Code 用来为一种语言添加基本语法高亮的。然而,如果你想部署应用程序,它包装了一个本地依赖,这就增加了一些复杂性。
相比之下,JavaScript 有大量成熟的语法高亮库。仅举几例,有 highlight.js
、Prism.js
(在本博客中使用)和 shiki.js
。尤其是前两个,非常成熟,有多个插件和主题,而且有简单的 API。
作为一个 .NET 开发者,JavaScript 的明显问题是,你需要学习并选择进入一个完整的独立工具链,与 Node.js 和 NPM 一起工作。这似乎是一个很大的开销,只是为了使用一个小功能。
因此,我们陷入了一个困境。我们要么走 C#( Native)路线,要么就得转用 JavaScript。
或者......我们直接从我们的 .NET 应用程序中调用 JavaScript