Management Console 工具管理類軟體通用開發架構(開放源碼)

來源:互聯網
上載者:User

做ERP/MIS之類的軟體,通常會開發一些協助工具輔助來加速開發,比如代碼產生器,資料字典產生工具。隨著時間的積累,這類小工具會越來越多,雖然開發的速度會快,方便,但是也會因為找不到,不好尋找這些小工具,產生麻煩。原因很簡單,已經發了很多精力去做成了工具,自然就不會考慮用很原始的方式來完成任務。

舉例說明
對於外掛程式式的開發,我們通常會先做好介面功能,然後把這個功能添加到系統的功能列表中,以啟用功能,為完成這個目的,可以採用如下的SQL指令碼來完成

INSERT System_Function(Module,Function,Description)

    VALUES(‘Inventory’,'ICMISR’,'Inventory Receipt’)

這樣,就把新做好的進倉單功能加到系統功能中,以啟用功能。

但情況通常沒有這樣簡單,通常還要設定有哪些使用者和角色有許可權執行進倉功能,等等。

一種改善的辦法,是把這些功能都做成指令檔,一次調用就完成功能增加,許可權分配的任務

如,就產生了這麼一個小工具. 這是很簡化的情況。

 

我要講述的主題是,當積累了很長時間,手頭有很多這樣的小工具,如何把它們整合到一個容器中,方便調用。

先看,邊看圖邊說
 

,在這裡,我整合諸多工具,比如
DataSet Reader 用於讀取dataset的工具

Translation  多國語言的翻譯工具,
StringBuilder 字串構造工具,例如,我想把SQL語句
                    SELECT  FunctionCode FROM  dbo.AuditTrail   轉化成字串,以傳遞到SQL Server中

 

為了整合進倉單的功能到這個工具中,需要如下處理

修改表單的繼承基類為FormBase,給表單類添加FunctionCode的特性,這個特性用於反射尋找這裡的表單

修改ListItem.xml檔案,增加一個Item項,

內容是

<Item Index="10" Text="InventoryReceipt"  Tag="Inventory Receipt" ImageIndex="35"></Item>

ListItem的內容,就是中,要顯示在Task List任務框中的內容,Text是標題,Tag是功能的FunctionCode的值,ImageIndex是映像的索引。

其實,這裡還可以做更多的控制。比如,如果沒有功能的原始碼,需要用反射的方式去call功能所在的程式集,為實現這個目的,還需要增加Item.Assembly以指向它所有的程式集;
如果功能的原始碼不是.NET代碼所寫,要支援Process.Start的方式啟動工具,必要時還需要增加參數。

 

再進入原始碼,看看這個工具是如何構造的

MainForm是主表單,這裡採用的是Infragistics2.Win.UltraWinTabbedMdi組件,取代過時的MDI表單組織形式,

NewProject是Task List工作表單,這是功能顯示的整合項目,Ctrl+N啟動這個表單,ListItem.xml是它的配置項

主表單中的其他菜單,均沒有使用

Startup是啟動時顯示的主表單,在這裡,可以顯示一些常見工具的捷徑
為了擷取和Office 2007一樣的藍色佈景主題效果,可反注釋如下的代碼

ToolStripManager.Renderer = new WinUI.Misc.Office2007Renderer();
statusStrip.Renderer = new WinUI.Misc.Office2007Renderer();

菜單和狀態列的效果如

反射應用於尋找表單的特性,找出它的定義,顯示出來,代碼架構如下

Assembly assembly = Assembly.GetExecutingAssembly();

object entryForm = Activator.CreateInstance(formBaseType) as Form;

entryForm .MdiParent = this;
entryForm .Show();
entryForm .Activate();
這便是這個工具,最有價值的內容。也達到了開頭提出的效果,只開發功能和配置ListItem檔案,確實達到外掛程式的目的.

請到epn.codeplex.com上擷取最新的原始碼,請使用Visual Studio 2008編譯。

因圖中提及的部分外掛程式工具已經應用到實際生產中,恕不提供原始碼下載。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.