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的方法

  1. using System;
  2. using System.Diagnostics;
  3. using System.Threading.Tasks;
  4. using EdgeJs;
  5.  
  6. class Program
  7. {
  8.  
  9. static void Main(string[] args)
  10. {
  11. var func = Edge.Func(@"
  12. return function (data, callback)
  13. {
  14. var date1 = new Date();
  15.  
  16. for(var i = 0;i<100;i++)
  17. {
  18. var diff = date1-data;
  19.  
  20. } callback(null, 'Node.js welcomes ' + diff);
  21. }
  22. ");
  23.  
  24. Stopwatch s = Stopwatch.StartNew();
  25.  
  26. for(int i = ;i<;i++)
  27. {
  28.  
  29. var task = func(new DateTime(,,).AddDays());
  30. var a = task.Result;
  31. //Console.WriteLine(a);
  32. }
  33. s.Stop();
  34. Console.WriteLine(s.Elapsed.TotalSeconds);
  35. Console.ReadLine();
  36.  
  37. }
  38. }

测了一下速度 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的更多相关文章

  1. Edge.js:让.NET和Node.js代码比翼齐飞

    通过Edge.js项目,你可以在一个进程中同时运行Node.js和.NET代码.在本文中,我将会论述这个项目背后的动机,并描述Edge.js提供的基本机制.随后将探讨一些Edge.js应用场景,它在这 ...

  2. edge.js架起node.js和.net互操作桥梁

    今天要介绍的是edge.js这个github上刚兴起的开源项目,它可以让node.js和.net之间在in-process下互操作..net版本在4.5及以上,因为.net4.5带来的Task,asy ...

  3. Nodejs与Net 和SQL 交互利器Edge.js

    https://github.com/tjanczuk http://www.cnblogs.com/joylee/archive/2013/02/05/msnodesql.html edge.js这 ...

  4. .NET Core开发日志——Edge.js

    最近在项目中遇到这样的需求:要将旧有系统的一部分业务逻辑集成到新的自动化流程工具中.这套正在开发的自动化工具使用的是C#语言,而旧有系统的业务逻辑则是使用AngularJS在前端构建而成.所以最初的考 ...

  5. Playing audio from Node.js using Edge.js

    http://tomasz.janczuk.org/2014/06/playing-audio-from-nodejs-using-edgejs.html

  6. node.js通过edge访问.net动态链接库

    从了解node.js到现在经历了几个月时间,一直忙于实际的项目,没有动手写点关于node.js的代码.最近将开发工作安排就绪,个人的时间相对从容了,所以这几天开始测试一下node.js. 多年来,一直 ...

  7. nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞

    第0.1节 HTML5和桌面软件开发的碰撞 当我们谈论桌面软件开发技术的时候,你会想到什么?如果不对技术本身进行更为深入的探讨,在我的世界里,有这么多技术概念可以被罗列出来(请原谅我本质上是一个Win ...

  8. Node.js开发利器

    开发工具 WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 做些小型项目用Sublime Text. Browserify:将你 ...

  9. (转)Edge实现NodeJS与.NET互操作(包括UI界面示例)

    本文转载自:http://blog.csdn.net/kimmking/article/details/42708049 1.  Edge是什么 Edge是一种在进程内实现NodeJS与.NET互操作 ...

随机推荐

  1. jQuery实现 浏览器后退到上次浏览位置

    近日看腾讯.新浪的移动端网站,发现一件非常蛋疼的事情,在列表浏览内容,我往下翻,往下翻,突然,看到一个十分霸气的标题,于是点到文章查看详细内容,若干时间后,点回退按钮,浏览器回退到页面的最顶部了. 于 ...

  2. angularjs取Sevice和directive的引用

    取Sevice和directive的引用 3: Grab any Services We can grab a reference to any service using the injector  ...

  3. Javascript全局变量的使用方法

    1.demo例子说明 <script type="text/javascript"> var gDivId; //js全局变量 function geocoder(la ...

  4. ExtJs之字段集FieldSet

    //Ext.form.FieldSet扩展自Ext.container.Container.其优点就是把相同字段集中在一起,在外面字段外面加了个线"围住"他们.        // ...

  5. 大并发连接的oracle在Linux下内存不足的问题的分析

    大并发连接的oracle在Linux下内存不足的问题的分析 2010-01-28 20:06:21 分类: Oracle 最近一台装有Rhel5.3的40G内存的机器上有一个oracle数据库,数据库 ...

  6. java 格式化代码 不进行换行

    此处无声胜有声.

  7. Linux信号处理1

    函数原型 NAME signal - ANSI C signal handling SYNOPSIS #include <signal.h> typedef void (*sighandl ...

  8. 连接池和 "Timeout expired"异常【转】

    异常信息: MySql.Data.MySqlClient.MySqlException (0x80004005): error connecting: Timeout expired. The tim ...

  9. Gradle Goodness: Continue Build Even with Failed Tasks

    If we run a Gradle build and one of the tasks fails, the whole build stops immediately. So we have f ...

  10. odata

    http://www.odata.org/ Open Data Protocol (开放数据协议,OData)是用来查询和更新数据的一种Web协议,其提供了把存在于应用程序中的数据暴露出来的方式.OD ...