写点什么

Node.js 和.NET 相结合的项目 Edge.js

  • 2013-04-01
  • 本文字数:1306 字

    阅读完需:约 4 分钟

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> 委托的预编译程序集的 CLR 语言。当在 Node.js 应用中使用.NET 代码时,Edge.js 目前只支持 C#。”

InfoQ: 在接下来的612个月项目的目标是什么?

Janczuk:“Edge.js 计划使用相对较少的基本概念并保留规模小的组件就能在进程内整合.NET 和 Node.js。对于某些特定场景的功能(例如访问 MS SQL、写 Windows 事件日志,或访问 X.509 证书存储区),会作为新的依赖于 Edge.js 的模块而提供,而不是扩大 Edge.js 本身的范围。Edge.js 本身也有一些值得注意的计划,包括对 Mono 的支持,编译 C#之外的 CLR 语言和在.NET 进程中托管 Node.js。”

InfoQ: 由于现在受雇于微软,那么将来这个项目依然是独立的项目呢还是在某些部分将来会正式成为微软的工具?

Janczuk: “虽然微软也拥抱开源技术,但到目前为止 Edge.js 并没任何计划要成为任何微软产品的一部分。”
Edge.js 是一个在 Apache 许可协议 2.0 下的开源项目。Janczuk 在其项目的主页上提供了项目概况,还包括样例代码以让开发者了解更多的信息。

查看英文原文 Edge.js Combines Node.js with .NET


感谢姚琪琳对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-04-01 10:314903
用户头像

发布了 81 篇内容, 共 20.5 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

超级详细|Linux系统下从0到1的玩法大全

浅羽技术

Linux unix 操作系统 命令 三周年连更

DAPP公链二二复制公排互助系统开发

l8l259l3365

已献出膝盖!GitHub上的宝藏级SpringBoot核心宝典,讲得太清晰了

做梦都在改BUG

Java 架构 微服务 Spring Boot 框架

Android C++系列:C++11函数特殊特性

轻口味

c++ 三周年连更

面试官:介绍一下什么是缓存雪崩、缓存击穿、缓存穿透?

Java你猿哥

redis 面试题 缓存穿透 缓存击穿 缓存雪崩

GitHub爆款!Java性能优化:轻松道破软件性能调优,不止搞定JVM

Java你猿哥

Java JVM Java性能优化

商业堡垒机是什么意思?有免费版的商业堡垒机吗?

行云管家

网络安全 堡垒机 运维审计

【堡垒机】免费堡垒机介绍以及下载看这里!

行云管家

堡垒机 运维审计 免费 小微企业

JSF源码分析(一)

京东科技开发者

spring jsf 企业号 4 月 PK 榜

阿里“妈宝级”之作,Kubernetes原理剖析与实战应用手册,太全了

做梦都在改BUG

Java Kubernetes k8s

共享电单车生产厂家如何选择

自助洗车加盟

共享电动车厂家 共享电单车生产 共享电动车厂商 本铯智能共享电动车商家

阿里p8强烈推荐这部《从零开始学架构》堪称GitHub最强!

Java你猿哥

Java 架构 ssm 架构设计

掌握动态规划,从“什么问题适合用”及“解题思路”入手

华为云开发者联盟

人工智能 AI 华为云 华为云开发者联盟 企业号 4 月 PK 榜

ThreadLocal源码分析

做梦都在改BUG

Java 源码 多线程 ThreadLocal

一文详解RocketMQ-Spring的源码解析与实战

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 4 月 PK 榜

我认真总结并分析了Spring事务失效的十种常见场景

做梦都在改BUG

Java spring Spring事务

Typescript- 数据类型

格斗家不爱在外太空沉思

typescript 三周年连更

如何用DataTester设计并创建可视化实验

字节跳动数据平台

AB testing实战 A/B测试 企业号 4 月 PK 榜

华为云开源项目OpenTiny中TinyVue有什么优势?

英勇无比的消炎药

开源 Vue 组件库

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

Java你猿哥

数据结构 算法 二叉树 排序 LeetCode算法

阿里P8架构师珍藏版:SpringBoot入门到进阶笔记(面面俱到,太全了)

采菊东篱下

编程 微服务

ARB链质押挖矿代币空投游戏dapp系统开发合约定制

开发微hkkf5566

python中对象引用 | python小知识

AIWeker

Python python小知识 三周年连更

基于STM32设计的音乐播放器

DS小龙哥

三周年连更

java 开发 SSM 框架整合之 MyBatis 动态 SQL

Java你猿哥

Java sql mybatis SSM框架 if

《人间失格》

后台技术汇

三周年连更 人间失格

拿来吧你!保姆级Docker底层原理及源码实战手册,上线点赞破10W

做梦都在改BUG

Java Docker 容器

每个Java程序员都必须知道的四种负载均衡算法

做梦都在改BUG

Java 负载均衡 负载均衡算法

The Beacon链游NFT系统开发技术

薇電13242772558

NFT

超简单!Java 项目自动生成接口文档教程

Apifox

Java 接口文档 API 文档生成 自动生成

品牌活动|行云创新出席“新工业·智物联”全国巡回 CEO 峰会

行云创新

行云创新 新工业 智物联 全国巡回CEO峰会珠海站

Node.js和.NET相结合的项目Edge.js_JavaScript_Jeff Martin_InfoQ精选文章