Javascrip 项目 Node.js 现在可以在同一个进程中与.NET 代码一起运行了,这得益于 Edge.js 项目(前身为 owin )。跟 IKVM 项目将 Mono 和.NET 结合一样,Edge.js 提出了 “两全其美”的方法将.NET 和 Node.js 结合。这样开发者可以充分利用每种工具的优势去最大限度提高他们项目的效率。
Edge.js 由 Tomasz Janczuk 创立,其目的在于让开发人员最大限度地发挥 Node.js 的威力,而不用使用非 CLR 的语言,如 C/C ++。 Edge.js 实现的方法提供了若干好处,包括在.NET 中执行计算密集型的运算时不阻塞 Node.js 的事件循环。它也允许使用 C#编写 Node.js 的插件去访问 Windows 平台的特定功能,而这些都无需使用 C 或者 C++。
Node.js 和 Edge.js 之间的连接是无缝的和相互的:Node.js 的可以调用.NET 方法,.NET 代码也可以调用 Node.js。Edge.js 可以在运行时编译 C#源代码,也可以在 Edge.js 运行前预编译。
InfoQ 有幸和 Janczuk 探讨该项目并谈及他将来对 Edge.js 的计划:
InfoQ: 除了仅仅希望提供将C#和Node.js结合外,还有什么特别的动机么?
Janczuk: “Edge.js 致力于为开发人员提供一个在一定范围内根据任务特点选择使用技术的机会,而不是在整个应用中去选择。Edge.js 基于一切都可以通过 Node.js 或者.NET 去实现的前提,但某些具体的功能可能用其中一种技术更加适合。在 Edge.js 之前,开发人员必须在整个应用程序范围内选择是使用 Node.js 还是.NET。而有了 Edge.js,开发人员可以根据他们应用中哪些部分更适合使用 Node.js 或.NET 而作出选择。”
InfoQ: .NET的例子全部是使用C#,Edge.js需要C#吗?如果需要的话,是否支持.NET**** 平台中的其他语言?
Janczuk:“Edge.js 允许.NET 代码通过指定一个预编译的 CLR 程序集,或者在 Node.js 应用中包含.NET 源代码的方法去和 Node.js 应用整合。Edge.js 支持任何可以生成一个 Func<object,Task
评论