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互操作 ...
随机推荐
- PowerDesigner(九)-模型文档编辑器(生成项目文档)(转)
模型文档编辑器 PowerDesigner的模型文档(Model Report)是基于模型的,面向项目的概览文档,提供了灵活,丰富的模型文档编辑界面,实现了设计,修改和输出模型文档的全过程. 模型文 ...
- Codeforces Round #254DIV2
C:万恶的一道题: 开始想用贪心做:每次去除一个点,相应的去除相连边,结果BUG了,想想也对,因为有一次去掉多个点的情况, 后来被送一助攻,队友给出一个猜想:可能枚举一条边即可产生最大值:然后小小证明 ...
- PHP PDO_MYSQL 操作类 YAF嵌入高性能类而准备
https://github.com/indieteq/PHP-MySQL-PDO-Database-Class PHP-PDO-MySQL-Class A PHP MySQL PDO class s ...
- docker-py的配置与使用
测试环境 75机:Red Hat Enterprise Linux Server 7.0,无外网访问权限 73机:Red Hat Enterprise Linux Server 7.0,无外网访问权限 ...
- Python之socketserver源码分析
一.socketserver简介 socketserver是一个创建服务器的框架,封装了许多功能用来处理来自客户端的请求,简化了自己写服务端代码.比如说对于基本的套接字服务器(socket-based ...
- poj 2975 Nim 博弈论
令ans=a1^a2^...^an,如果需要构造出异或值为0的数, 而且由于只能操作一堆石子,所以对于某堆石子ai,现在对于ans^ai,就是除了ai以外其他的石子 的异或值,如果ans^ai< ...
- MFC中错误知识总结(一)
1.在继承与派生中,单目:表示派生,双目::表示继承,例如 class A { public: void c(); }; class B: public A {}; //类B继承类A void A:: ...
- mysql之视图
视图 视图是虚拟的表.与包含数据的表不一样,视图只包含使用时动态检索数据的查询. 理解视图最好的办法就是来看一下例子: SELECT cust_name , cust_contact FRO ...
- Badboy录制
摘要 Badboy是一个强大的工具,被设计用于测试和开发复杂的动态应用.Badboy功能丰富(包括一个捕获/重播接口,强大的压力测试支持,详细的报告.图形)使得测试和开发更加容易. Badboy是用来 ...
- Java7编程高手进阶读书笔记—集合框架
定义:Java集合框架API是用来表示和操作集合的统一框架,它包含接口.实现类.以及帮助程序员完成一些编程的算法 作用: ●编程更加省力,提高城程序速度和代码质量 ● 非关联的API提高互操作性 ● ...