2009-10-31 30 views
4

在設計應用程序的過程中,我們得出結論:用戶需要可用於向程序添加自定義行爲,但是我們希望通過腳本來允許這種行爲,但是,沒有我們獲得了在應用程序中嵌入腳本引擎的經驗,甚至更少地設計應用程序以成功地允許腳本發佈。成功使應用程序腳本化的資源

我們假設讓應用程序可編寫腳本的關鍵是創建一組腳本可以響應的大量事件,併爲腳本提供暴露的函數。我們寧願閱讀有關該主題的一些資源,而不是急於寫入腳本。

我們正在尋找涵蓋設計腳本應用程序的過程的資源(最好是書籍)。任何建議也會很棒。關於這個話題或多或少的任何建議都會很好。

如果需要有關項目的詳細信息,請這麼說,我將添加一段說明更詳細的細節。

回答

2

你想讓你的腳本技巧如何?

如果您的用戶很樂意使用.Net,那麼這個artice就介紹如何製作一個可擴展的應用程序。

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

+0

我最初開始使用LUA,因爲我已經熟悉了,但由於它的託管包裝是違反直覺的,並沒有提供太多的調試信息,所以我決定嘗試動態編譯.NET代碼,我必須說我喜歡這個。 –

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

+0

爲什麼我會使用IronRube/Pything而不是C#? –

+0

由於C#不是用來編寫腳本的,它的目的是編譯而不是解釋。對於不是程序員的用戶,Python或Ruby可能更容易接受。即使用戶是程序員,也可能有采用Ruby或Python的理由,因爲腳本可以更簡潔,包含更多的邏輯,更少與編譯器交談。 –

+0

你可能有一個點。我對Ruby和Python都沒有經驗。腳本編寫的語言應該是可交換的,因爲您可以根據偏好語言使用CodeCompiler。 –

1

這很難取決於您的要求。這可能很容易。

在我的應用程序中,我構建了一小組類,它們暴露了我希望可用於腳本的基本數據模型。我構建了一個創建IronPython引擎實例的腳本管理器,將數據模型的根對象實例添加爲全局實例,並加載並執行腳本。

現在,就我而言,我實際上是做所有腳本的人。所以我不需要任何一種花哨的開發環境或測試平臺應用程序,並且我基本上沒有安全考慮因素。如果我需要擔心這些問題,問題會變得更加困難。

相關問題