成功创建应用程序脚本的资源

时间:2009-10-31 17:02:32

标签: c# scripting

在设计应用程序的过程中,我们得出结论:用户需要可以向程序添加自定义行为,我们希望通过脚本来实现这一点,但是,我们都没有任何嵌入式的经验应用程序中的脚本引擎,甚至更少设计应用程序以成功允许脚本放置。

我们认为使应用程序可编写脚本的关键是创建脚本可以响应的大量事件,以及公开要使用的脚本的函数。我们宁愿阅读有关该主题的一些资源,而不是肆无忌惮地匆匆写入脚本。

我们正在寻找涵盖设计脚本应用程序的过程的资源(最好是书籍)。任何建议都会很棒。或多或少关于这个主题的任何建议都会很好。

如果需要有关项目的详细信息,我会添加一段解释更深入细节的内容。

4 个答案:

答案 0 :(得分:2)

您希望如何制作脚本?

如果您的用户乐意使用.Net,那么本文将介绍如何制作可扩展的应用程序。

http://www.developerfusion.com/article/4529/using-net-to-make-your-application-scriptable/

当我在不久前调查类似的事情时,我也发现sharpdevelop应用程序的技术说明非常有帮助。

http://www.icsharpcode.net/TechNotes/ProgramArchitecture.pdf http://damieng.com/blog/2007/11/08/dissecting-a-c-application-inside-sharpdevelop

答案 1 :(得分:2)

将脚本功能嵌入到应用程序中将在很大程度上取决于构成应用程序的语言和技术。在您的情况下,使用C#进行开发有一些有趣的选项,因为动态语言运行时的工作。您应该查看IronRubyIronPython项目,因为它们将提供与.NET应用程序的最佳整体集成,因为它们本身就是.NET平台上的Ruby和Python脚本语言的实现。由于我的经验主要集中在Ruby上,我会查看hosting IronRuby in a .NET application上的信息。

就一般书而言,我可能会从这里开始:Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages。有关IronPython的详细信息,有Manning的这个标题:IronPython in Action。对于IronRuby,这本书仍在测试版中:IronRuby in Action

这也可能是微软专业开发人员大会上的可靠资源:Using Dynamic Languages to Build Scriptable Apps

答案 2 :(得分:1)

您可以等待C#4.0和DLR(或部署beta)吗?

请参阅Application Extensibility and Embedded Scripting

答案 3 :(得分:1)

这有多难取决于您的要求。它可以很容易。

在我的应用程序中,我构建了一小组类,这些类公开了我希望脚本可用的基本数据模型。我构建了一个脚本管理器,用于创建IronPython引擎的实例,将数据模型的根对象实例添加为全局,并加载并执行脚本。

现在,在我的情况下,我实际上是执行所有脚本编写的人。所以我不需要任何花哨的开发环境或测试平台应用程序,我基本上没有安全考虑因素。如果我需要担心任何这些问题,问题会更加困难。