2011-12-15 34 views
0

我该如何解决这个问题,有没有任何库可以简化它? 用户需要能够在存储在纯文本文件中的VB语言中编写“宏”。来自C的迷你BASIC IDE#

这些宏随后附加到C#应用程序中的给定按钮,并在单击该按钮时执行。

这是一个Windows窗体应用程序(可能是WPF)使用.NET 4

我需要支持如文本框,下拉列表,标签,按钮&他们控制弹出形式可能是图片盒也是如此。 IF THEN ELSE,*, - ,%,+,/,=的基本功能包含,是,不取消消息框... 将数据从一个脚本传递到另一个脚本并获取任何返回的数据。

我知道你在想什么,告诉他们安装VB.net免费版!但我不能,因为我需要添加一些定制的功能来扩展语言,也允许与内部系统通过现有的COM对象提供读写系统的通信。

此外宿主的C#应用​​程序需要包含许多按钮,每个按钮都附有自己的脚本。

如果这还不够糟糕的用途必须能够如此理想的编写自己的脚本,也需要某种形式的基本的IDE。

有什么建议吗?

+0

如果未来的用户已经具备一些编程知识,那么简单地编写一个可以提供所需扩展功能的API并教他们如何使用这些API可能会更容易一些吗? – 2011-12-15 12:59:56

+0

感谢斯莱德,是的,它会更容易,但大多数用户将有非常有限的编程知识。而且公司不希望他们直接使用VB,这更多的是用宏或脚本自动化他们现有的产品。 – Adrian 2011-12-15 13:04:50

回答

1

让我想起了各种技术,可以实现您的部分要求。

1)如果你想为快速构建简单的用户界面,你可以使用LightSwitch的一个简单的工具使用LightSwitch中的RAD形成
。 您可以提供您自己的程序集作为Lightswitch中的参考添加,充当LightSwitch应用程序的代码框架。

2)Windows工作流基础RuleEngine
的RuleEngine,可以修改/存储businessrules。您可以将您的内部程序集绑定到RuleEngine,然后您可以根据绑定程序集来编写脚本代码。
规则很简单“如果”“那么”“其他”语句。 http://karlreinsch.com/2010/10/18/wf-rules-unleashing-the-rule-engine-within-dot-net/

3)负载XAML动态
使用WPF可以序列/反序列化的用户界面,并在运行时从文件加载它们。借助Blend或自己的工具,您可以创建UI并将其绑定到您的业务逻辑。 请参阅http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/a53ff197-8703-4c6c-8726-45570304fb7b/

0

在这种情况下你的描述,我会建议寻找到已经存在的脚本技术(也许如LUA)。然后,您可以将此类脚本挂接到现有代码(例如,您已经构建的API以利用您所需的功能)。

我建议使用现有的脚本系统的原因是因为它已经被尝试和测试过了,这意味着您不必自己定义一种新语言并构建解析引擎。