Scripting language options for .NET Core [closed]
Asked Answered
N

0

7

I'm writing an application for .NET Core 1.0 and UWP in which I would like to embed a scripting engine to allow end-user scripting (sort of like VBA in Excel).

What scripting options are technically feasible for .NET Core and UWP applications?

My first thought was IronPython. I used it very successfully in a .NET 4.0 application, including consuming exposed .NET APIs in the end-user IronPython scripts. I think python would also be a good choice for most users (approachable language). However, it looks like IronPython has not been updated for a couple of years and I don’t see recent news about making it work on .NET Core or UWP.

My second thought was Roslyn, but it appears that the scripting engine is not allowed in UWP applications.

My third thought was an open source scripting language like Lua or Boo, but I can't find specific information on feasibility of using one of these (or something similar) with .NET Core or UWP.

Any suggestions will be appreciated.

Noose answered 27/6, 2016 at 21:23 Comment(6)
I think taking roslyn and basic (or C#) is maybe the best choice available right now for .NET Core.Noose
"Lua would require a native binary that would not work for UWP" - UWP is inherently unmanaged. It's not unmanged code that's difficult to get off the ground. It's really .NET that is. SQLite is a native binary, for example.Farcical
AFAIK, UWP does not allow runtime code generation, so Roslyn is not an option (unless you only use the parser). You need to look for an interpreted language (or write an interpreter yourself).Indoxyl
@KrisVandermotten: .NET for UWP lists all types necessary to emit runtime-generated code. Although I don't know, this does seem to allow for code generation, and execution of (tool-)generated code.Farcical
My original wording was poor (agree it was opinion-based). Reworded to ask what options are technically feasible, which is not opinion based.Noose
Have you looked at SILK?Simba

© 2022 - 2024 — McMap. All rights reserved.