前几天我在做一个副业,意识到我需要使用一些 JavaScript 功能。一想到要再次处理 Node.js 和 npm,我就完全放弃了,所以我决定研究一下在 .NET 应用程序中运行 JavaScript 的可能性。很疯狂吧?实际上,这出乎意料的简单。

1你为什么要这样做?

尽管我很喜欢 .NET 生态系统,但有些事情,JavaScript 生态系统做得更好。其中之一就是任何事情都能找到一个库,特别是涉及到网络时。

以语法高亮为例。这可以直接用 C# 来做,但这不是一个特别流畅的体验。例如,TextMateSharp 项目为 TextMate 语法提供了一个解释器。这些文件是 VS Code 用来为一种语言添加基本语法高亮的。然而,如果你想部署应用程序,它包装了一个本地依赖,这就增加了一些复杂性。

相比之下,JavaScript 有大量成熟的语法高亮库。仅举几例,有 highlight.jsPrism.js(在本博客中使用)和 shiki.js。尤其是前两个,非常成熟,有多个插件和主题,而且有简单的 API。

作为一个 .NET 开发者,JavaScript 的明显问题是,你需要学习并选择进入一个完整的独立工具链,与 Node.js 和 NPM 一起工作。这似乎是一个很大的开销,只是为了使用一个小功能。

因此,我们陷入了一个困境。我们要么走 C#(+ Native)路线,要么就得转用 JavaScript。

或者......我们直接从我们的 .NET 应用程序中调用 JavaScript

在 .NET 应用程序中运行 JavaScript相关推荐

  1. 在 .NET Core 中运行 JavaScript

    一.前言 在 .NET Framework 时,我们可以通过V8.NET等组件来运行 JavaScript,不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core ,我们如何在 . ...

  2. 微信小程序中的JavaScript 简明介绍

    小程序的主要开发语言是 JavaScript ,开发者使用 JavaScript 来开发业务逻辑以及调用小程序的 API 来完成业务需求. 1 ECMAScript 在大部分开发者看来,ECMAScr ...

  3. php运行js代码,如何在PHP中运行JavaScript代码?(代码示例)

    JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何如何在PHP中运行JavaScript?本篇文章就来给大家介绍几种在PHP中运行JavaScript的方法,希 ...

  4. 采用Rhino在JAVA中运行JavaScript

    由于有些网页采用的是swing技术实现(用swing也可以做出好看的界面),在其中使用JavaScript的话可以采用Rhino 对于Rhino的介绍和使用可以参看这篇文章--Rhino 使 Java ...

  5. UIWebView中运行javascript的方法得到网页的html内容

    原文地址:http://blog.csdn.net/favormm/archive/2010/10/19/5950993.aspx 本篇介绍的方法是通过运行javascript的方法得到网页的html ...

  6. 如何在Python程序中运行Unix命令

    Unix是由Ken Thompson和Dennis Ritchie在1969年左右在AT&T贝尔实验室开发的操作系统. 我们可以使用许多有趣的Unix命令来执行不同的任务. 问题是,我们可以直 ...

  7. C#在窗体程序中运行控制台程序并管理其进程

    运行环境 .Net Framework-4.7.1 visual studio 2017 一. 控制台程序的运行 使用Process类,官方文档地址 使用样例: public void FrpStar ...

  8. ip地址转换数字函数 iton_c# – RabbitMQ CreateConneciton问题 – 在一个应用程序中运行,但在另一个应用程序中运行...

    所以这是连接代码. var factory = new ConnectionFactory { HostName = "myserver", UserName = "te ...

  9. VC程序中运行其他程序的三种方法

    有三个函数可以使用: WinExec, ShellExecute,CreateProcess 1.WinExec(String lpCmdLine,Long nCmdShow); 参数说明: 参数 类 ...

最新文章

  1. PX4编写msg文件
  2. 缇 、 像素 、 厘米
  3. 【比较面】真核生物和原核生物的异同
  4. 汇编语言——《分支与循环程序设计》实验报告
  5. 用友t3服务器文件丢失,服务器系统损坏数据恢复
  6. 缩点(有向图的强连通分量)学习笔记
  7. VS Code 的 Java 七月更新,新的重构特性
  8. PHP简单留言板代码
  9. IOMeter存储测试工具
  10. 运算放大器虚短和虚断
  11. 常见必问面试问题一_面试自我介绍3分钟、离职原因、期望薪资…(含面试技巧和答案)
  12. 基于STM32控制的PS2摇柄模块—双轴按键摇杆控制器控制TFTLCD
  13. 【kali】WLAN识别
  14. 【你是如何应对杠精行为?】如此精彩语录,看完不笑算我输
  15. 滁州市区地图小区楼盘图矢量高清cdr|pdf2021年(高品质)
  16. Python 七段数码管
  17. 在线预览文档 Office Online
  18. 百度编辑器的样式手机端配置
  19. 矩阵初等变换的“打洞技巧”与“分块矩阵的行列式公式”
  20. USB摄像机方案汇总分析,好东西都不为人知。

热门文章

  1. java解析ip地址_通过JAVA解析IP地址
  2. 商家开通直播前需了解哪些市场数据?
  3. 初学安装oracle11g遇到的问题,以及解决方案
  4. 二叉平衡树的算法复杂度笔记
  5. 车载智能导航系统有没有采用嵌入式计算机,嵌入式车载导航系统的应用与研究...
  6. OSPF、RIP路由双向引入实验报告
  7. java web查询某个时间段记录
  8. 百度之星 大搬家 递推
  9. chat--hxxdfd
  10. 基于时间序列特征提取的车载网络系统入侵检测技术