edge.js
https://github.com/tjanczuk/edge
运行的时候会报 System.DllnotfoundException 无法加载node.dll,要把\packages\Edge.js.4.0.0\content\下edge目录复制到运行环境下。 nuget自己不会复制这个目录。
看了下source code,src\double\dotnet\EdgeJs.cs 实现这个。
开发环境下运行可以,但是到客户环境运行确报错,
Error: The specified module could not be found.
用depends工具看了下edge.node (在edge\x64 & x86 下) 需要 msvcp120.dll,msvcr120.dll
复制了后发现报
Error: %1 is not a valid Win32 application.
查了半天,发现开发机里的 %windir%\system32下的 msvcp120.dll,msvcr120.dll 也是64位的,orz,上面一错误就是32位下运行64位程序的通用错。
还好它源代码里lib\native\win32下带了这两个dll ,ia32目录下是32位,x64下64位。
-------------------------------------------------------
edge文档里写的需要 .net 4.5,其实edge 4.0.0是用.net 4.0运行的,手上老项目还是.net 4.0一时不能升级,不能用async await 关键字。改成.net调用task的方法
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using EdgeJs; class Program
{ static void Main(string[] args)
{
var func = Edge.Func(@"
return function (data, callback)
{
var date1 = new Date(); for(var i = 0;i<100;i++)
{
var diff = date1-data; } callback(null, 'Node.js welcomes ' + diff);
}
"); Stopwatch s = Stopwatch.StartNew(); for(int i = ;i<;i++)
{ var task = func(new DateTime(,,).AddDays());
var a = task.Result;
//Console.WriteLine(a);
}
s.Stop();
Console.WriteLine(s.Elapsed.TotalSeconds);
Console.ReadLine(); }
}
测了一下速度 300000 * 100 次date类型减法 , 16s~18s
似乎比ClearScript快, jint更加没法比。
------------------------------------------------------
edge和jint里, .net的DateTime到javascript变成 js的Date
ClearScript和jurassic 确还是clr的DateTime
jint里list和array也变成js array
edge还没测
----------------------------------------------------------
不用装node.js也可以用,可能用node自己模块会要装node.js
edge.js的更多相关文章
- Edge.js:让.NET和Node.js代码比翼齐飞
通过Edge.js项目,你可以在一个进程中同时运行Node.js和.NET代码.在本文中,我将会论述这个项目背后的动机,并描述Edge.js提供的基本机制.随后将探讨一些Edge.js应用场景,它在这 ...
- edge.js架起node.js和.net互操作桥梁
今天要介绍的是edge.js这个github上刚兴起的开源项目,它可以让node.js和.net之间在in-process下互操作..net版本在4.5及以上,因为.net4.5带来的Task,asy ...
- Nodejs与Net 和SQL 交互利器Edge.js
https://github.com/tjanczuk http://www.cnblogs.com/joylee/archive/2013/02/05/msnodesql.html edge.js这 ...
- .NET Core开发日志——Edge.js
最近在项目中遇到这样的需求:要将旧有系统的一部分业务逻辑集成到新的自动化流程工具中.这套正在开发的自动化工具使用的是C#语言,而旧有系统的业务逻辑则是使用AngularJS在前端构建而成.所以最初的考 ...
- Playing audio from Node.js using Edge.js
http://tomasz.janczuk.org/2014/06/playing-audio-from-nodejs-using-edgejs.html
- node.js通过edge访问.net动态链接库
从了解node.js到现在经历了几个月时间,一直忙于实际的项目,没有动手写点关于node.js的代码.最近将开发工作安排就绪,个人的时间相对从容了,所以这几天开始测试一下node.js. 多年来,一直 ...
- nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞
第0.1节 HTML5和桌面软件开发的碰撞 当我们谈论桌面软件开发技术的时候,你会想到什么?如果不对技术本身进行更为深入的探讨,在我的世界里,有这么多技术概念可以被罗列出来(请原谅我本质上是一个Win ...
- Node.js开发利器
开发工具 WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 做些小型项目用Sublime Text. Browserify:将你 ...
- (转)Edge实现NodeJS与.NET互操作(包括UI界面示例)
本文转载自:http://blog.csdn.net/kimmking/article/details/42708049 1. Edge是什么 Edge是一种在进程内实现NodeJS与.NET互操作 ...
随机推荐
- AngularJs学习笔记--html compiler
原文再续,书接上回...依旧参考http://code.angularjs.org/1.0.2/docs/guide/compiler 一.总括 Angular的HTML compiler允许开发者自 ...
- 如何理解JS项目
JS API(DOM/PhoneGap/Cordova/NodeJS/Library/Android/MongoDB....)最基础,可以看懂一行代码. -------> JS OOP, JS语 ...
- asp.net的sessionState节点详解
web.config关于sessionState节点的配置方案,sessionState有四种模式:off,inProc,StateServer,SqlServer. 1.off模式 从字面上就可以看 ...
- JavaScript 文件上传类型判断
文件上传时用到一个功能,使用html元素的input标签实现, <input id="imageFile" name="imageFile1" accep ...
- Sqli-labs less 17
Less-17 本关我们可以看到是一个修改密码的过程,利用的是update语句,与在用select时是一样的,我们仅需要将原先的闭合,构造自己的payload. 尝试报错 Username:admin ...
- MYSQL注入天书之后记
后记 对于工具的看法: 我之所以在每个例子中只写了几个示例,是因为我希望你能通过这一两个示例举一反三将其他的列出来.如果让我来完成每一次完整的注入,应该在知道原理的情况下,必然使用工具或者自己写代码实 ...
- C#&java重学笔记(面向对象)
C#部分 1.C#有一个internal关键字,指字段可以同一个程序集中访问,出了程序集不行.还有一个protected internal(没有先后之分)修饰词,指只能在同一个程序集中的子类访问 2. ...
- HDU4916 Count on the path(树dp??)
这道题的题意其实有点略晦涩,定义f(a,b)为 minimum of vertices not on the path between vertices a and b. 其实它加一个minimum ...
- 控制台应用程序的Main方法
总结一下Main方法规则: 1.Main 方法名大小写有规范. 2.Main 方法返回类型只有 void.int两种返回类型. 3.Main 方法的参数可以是string[] args,也可以为空,只 ...
- Git教程之安装配置(1)
1.Git是什么? Git是目前世界上最先进的分布式版本控制系统. 2.SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...