C# 成功使应用程序可编写脚本的资源

C# 成功使应用程序可编写脚本的资源,c#,scripting,C#,Scripting,在设计应用程序的过程中,我们得出结论,用户需要能够向程序添加自定义行为,我们希望通过脚本实现这一点,我们中没有人有在应用程序中嵌入脚本引擎的经验,更不用说设计应用程序以成功地执行脚本了 我们假设使应用程序可编写脚本的关键是创建一组脚本可以响应的大型事件,以及公开脚本要使用的函数。与其草率地编写脚本,我们更愿意阅读有关该主题的一些资源 我们正在寻找资源(最好是书籍),这些资源涵盖了设计脚本应用程序的过程。任何建议都会很棒。关于这个话题的任何建议都会很好 如果需要有关项目的详细信息,只需这样说,我将

在设计应用程序的过程中,我们得出结论,用户需要能够向程序添加自定义行为,我们希望通过脚本实现这一点,我们中没有人有在应用程序中嵌入脚本引擎的经验,更不用说设计应用程序以成功地执行脚本了

我们假设使应用程序可编写脚本的关键是创建一组脚本可以响应的大型事件,以及公开脚本要使用的函数。与其草率地编写脚本,我们更愿意阅读有关该主题的一些资源

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


如果需要有关项目的详细信息,只需这样说,我将添加一段解释更深入的细节。

您希望脚本编写的技术程度如何

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

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


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

就一般书籍而言,我可能从这里开始:。有关IronPython的详细信息,请参阅曼宁的标题:。对于IronRuby,这本书仍处于测试阶段:

这也可能是微软专业开发者会议上的一个可靠资源:。

你能等C#4.0和DLR(或部署)吗


请参阅。

这到底有多困难取决于您的要求。这很容易

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


现在,在我的情况下,我实际上是一个做所有脚本的人。因此,我不需要任何花哨的开发环境或测试平台应用程序,而且我基本上没有任何安全考虑。如果我需要担心其中的任何一件事,问题就会变得更加困难。

为什么我要使用IronRube/Pything而不是C?因为C不是为编写脚本而设计的,它是为了编译而不是解释。对于不是程序员的用户来说,Python或Ruby可能更容易掌握。即使用户是程序员,也有理由采用Ruby或Python,因为脚本可以更简洁,包含更多的逻辑,更少与编译器对话。我对Ruby和Python都没有经验。脚本编写的语言应该是可交换的,因为您可以根据首选语言使用CodeCompiler。理论上,由于我没有尝试过,我不确定,您可以编写自己的应用程序API与DLR集成,DLR是IronRuby和IronPython的基础,并且能够支持使用任何可用的或最终在DLR之上开发的语言。通过利用微软通过IronRuby和IronPython项目在DLR中所做的工作,你可以想象自己能够支持多种脚本语言,这些语言实际上可以协同工作。我最初是从LUA开始的,因为我已经熟悉了,但是由于它的托管包装器是违反直觉的,并且没有提供太多调试信息,所以我决定尝试动态编译.NET代码,我必须说我很喜欢它。