.net脚本语言

时间:2010-10-22 14:42:33

标签: .net scripting

人们在.net应用中使用什么来编写脚本。 MS放弃IronPython后的新问题

IP曾经是我最喜欢的;然后Lua

脚本编写是什么意思?我的意思是我有一个大型系统管理工具,允许用户插入一些智能,包括程序集和脚本。我应该使用什么语言编写脚本。所以我需要一个可嵌入的解释器,最好是与.net

完美结合的解释器

MS公告在这里

http://www.theregister.co.uk/2010/10/22/microsoft_kills_dynamic_languages_projects/

F# - 有几个人说F#。 F#是否可用作嵌入式脚本语言?

编辑:我最好的朋友是javascript; .net

有几个质量实现

13 个答案:

答案 0 :(得分:9)

Powershell是.net网络本机脚本shell,可以导入到您的应用中。随着时间的推移,我已经开始使用它来完成从单元测试到提供可扩展性的所有事情。此外,它在7之后的每个版本的Windows上发布,因此您无需担心安装它,并且正在努力开发基于单声道的版本。

答案 1 :(得分:6)

我们大部分时间都在使用C#进行脚本编写。在自己的应用程序中可以动态编译和集成。即使作为纯脚本的替代是可行的,但请查看http://www.csscript.net/

过了一会儿,我遇到了IronPython。如果我不得不在我的应用程序中重做脚本,我会选择它,因为它证明在运行时具有更大的灵活性。除了其他方面之外,不需要繁琐的AppDomain处理。

答案 2 :(得分:3)

答案 3 :(得分:3)

F#,Lua。

但我们经常通过Mono使用C#:How To Host Mono’s CSharp Compiler as a Service in .NET - For Runtime Code Evaluation/REPL 或通过我们的应用程序或The C# Script Engine

实施

答案 4 :(得分:3)

IDE脚本(想想VBA):

Visual Studio Tools for Applications(VSTA),支持VB和C#。它是当前支持的微软解决方案,旨在取代VSA和VBA。他们暂时忽略了它,但又把它取回了。 VSTA就像VBA并暴露了一个IDE。使用的结束将需要在他们的机器上安装VSTA,这是免费的。

http://www.microsoft.com/en-us/download/details.aspx?id=38806

直文脚本:

PowerShell的

http://blogs.msdn.com/b/kebab/archive/2014/04/28/executing-powershell-scripts-from-c.aspx

Roslyn(这取代CodeDom,但仍处于预览状态)

https://roslyn.codeplex.com/

http://msdn.microsoft.com/en-us/vstudio/roslyn.aspx

CodeDom(比你想要的要重一点)

http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx

http://www.codeproject.com/Articles/12852/Compile-and-Run-VB-NET-Code-using-the-CodeDom

http://www.codeproject.com/Articles/3289/Dynamic-Code-Generation-and-Code-Compilation

DynamicMethod(我喜欢这个,因为我可以将代码定义为具有特定参数和返回的函数。它将脚本缩小到你想要的内容)

http://msdn.microsoft.com/en-us/library/system.reflection.emit.dynamicmethod.aspx

答案 5 :(得分:2)

答案 6 :(得分:2)

IronPython,单声道的米格尔·德伊卡萨接任项目负责人。 http://tirania.org/blog/archive/2010/Oct-22.html

答案 7 :(得分:2)

我们差不多两年前做出决定,决赛选手是Python和Lua。那时,IronPython得到了点头,因为它得到了MS的支持。 VBA quit getting licensed对于2007年的新客户来说,VSTA看起来要便宜得多,但每位50美元(年度承诺在5到6的低位),它仍然超出老板会接受的范围

看起来我们需要重新评估我们的脚本语言决策。我们目前正在使用它的应用程序是一个许可中等5位数的应用程序,并自动化我们的其他几个软件产品(销售中3到低4位数。)

最适合在应用程序内部编写脚本的书籍可能是为游戏开发人员编写的书籍,通常带有“AI for games”等标题。许多其他赚钱销售软件的公司已经决定选择luapython出于某些正当理由,阅读一些细节可能会有所帮助,这些细节解释了他们为什么选择这些路线。

答案 8 :(得分:2)

2018年回答:

您可能想看看MS ClearScript https://github.com/Microsoft/ClearScript

您可以将 JavaScript (V8引擎)嵌入到.NET应用中

答案 9 :(得分:0)

如果您需要自定义DSL,您可以使用DLR编写自己的DSL。 http://en.wikipedia.org/wiki/Dynamic_Language_Runtime

我知道最常用的解析器生成器是antlr,它可以生成.NET解析器http://www.antlr.org/

对于简单的验证和配置脚本,您可以使用Spring.NET的表达式语言:http://www.springframework.net/doc-latest/reference/html/expressions.html

答案 10 :(得分:0)

对于那些寻求.Net标准/核心支持的人,V8.Net现在支持它。如果您想在后端编写脚本,也可以在ASP.NET Web应用程序中使用它。我现在在VPL项目(FlowScript)中使用它来添加服务器端脚本,该脚本还公开了V8引擎中的精选.Net类型。

nuget

答案 11 :(得分:0)

问题的一部分是您想要哪种语言。也许您想要C#的全部功能和灵活性。或者也许您希望它更简单一些,以便人们可能不是真正的程序员来使用它。

我刚刚将Silk library发布到GitHub上的.NET。它采用第二种方法,并且语言没有过多的标点符号,并且不区分大小写。数据类型也很宽松。

它非常易于使用。只需注册您的代码可用于脚本的功能,将源代码编译为字节码,然后运行它即可。调用其中一个函数时,将引发一个事件,并且您的代码可以实现该函数。

答案 12 :(得分:0)

https://sharpscript.net/ 我只是找到了这个,没有以前的经验。它与Javascript有相似之处,支持模板语法,它具有各种已发现和尚未发现的应用程序,尤其是制作网站/ webapps。