2011-12-15 30 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以利用您所需的功能)。

我建議使用現有的腳本系統的原因是因爲它已經被嘗試和測試過了,這意味着您不必自己定義一種新語言並構建解析引擎。