我的Winform程序要支持用脚本扩展功能,在考察了Lua、Javascript、Python等脚本语言在.Net平台上封装后,决定用IronPython.
现在总结一下几种脚本在.Net下的支持情况。
1、Lua在.Net上的有开源项目Luainterface,Luainterface的实现不错,可惜不支持中文标识符。这点无法接受。
2、Javascript在.net上的实现非常多,有的自己实现的,有的是封装的其它的引擎,比如V8。
1)Noesis.Javascript是V8的一个Wapper,使用很简单,但功能也打折扣,和宿主互调用比较麻烦。没有简单的方法在c#中调用js中的函数。
2)Jurassic可以方便的调用js中的函数,exposing对象到engine中不方便,其它都还好。本来打算要用这它了,但不支持 Scope.
3、IronPython,支持汉字标识符,支持Scope,唯一的缺点就是语法太另类,客户不是太好掌握。engine初始化有点慢,不过运行效率给我带了点小惊喜。