專利名稱:定制命令行切換的制作方法
技術領域:
本發(fā)明涉及一種用于改善開發(fā)環(huán)境的啟動特性的方法和系統(tǒng)。
背景技術:
作為用于制造執(zhí)行系統(tǒng)的復雜系統(tǒng)的開發(fā)的一部分,通常需要例如由集成開發(fā)環(huán) 境所包括的第三方工具或功能。為了集成第三方工具,必須要找到引導它們并且使得它們完成特定任務的技術。所述技術可存在于直接的用戶交互中,或者作為更為復雜的任務的一部分存在于 管理環(huán)境的應用中。在這兩種情況下,與第三方工具進行交互的可能性被工具廠商提供的 性能所限制。截至目前,一般實踐都受主流技術所限制。一般存在兩種實現(xiàn)自動操作第三方工 具的預期目標的方式,即命令行選項和自動化模型。命令行選項是提供命令外殼(comand shell)的應用。命令行選項是有利的,原 因在于它們提供了由于每個“命令外殼”都對其進行支持而可被人類用戶所采用、并且由于 (幾乎)每種開發(fā)環(huán)境都通過傳遞特定命令選項來允許發(fā)起(launch)可執(zhí)行文件的而也可 被定制應用所采用的簡單解決方案。然而,基于命令行的解決方案的缺點在于對第三方代 碼的開發(fā)人員所進行的決策有所限制。不訪問諸如原始源代碼之類的應用內部,這種限制 通常無法被克服。自動化模型是外部模塊能夠訪問并操控由應用展現(xiàn)的自動化對象的基礎構造。對 比命令行選項,自動化模型提供了更為豐富的編程可能性的優(yōu)勢。通過組合基本功能可能 獲得甚至無法由原來的開發(fā)人員所明確預見到的性能。自動化模型的缺點在于需要開發(fā)一些軟件模塊以便對其進行利用以及(所出現(xiàn) 的地方)模型的復雜性。如果所展現(xiàn)的自動化模型過于復雜,則與所要構建的功能的價值 相比,學習它所要付出的努力就會過大;結果通常就是放棄特性并且不會向用戶傳遞全部 的可能功能。
發(fā)明內容
因此,本發(fā)明的目標是簡化對自動化模型的訪問并且改善開發(fā)環(huán)境的啟動特性。通過依據(jù)獨立權利要求所采取的措施來實現(xiàn)該目標為了改善將執(zhí)行上下文(execution context)展現(xiàn)為自動化模型的開發(fā)環(huán)境的啟 動特性,在所述開發(fā)環(huán)境啟動時由所述開發(fā)環(huán)境加載插件。所述插件提供命令行選項,以使 得表示所述命令行選項的命令調用至少一部分所述執(zhí)行上下文。優(yōu)選實施例在從屬權利要求中進行描述所述命令所調用的執(zhí)行上下文可由所述命令行選項所表示。所述插件可連接到管 理控制臺或者適于調用所述命令行選項的另一行動方(actor)。所述管理控制臺提供能夠 向其中輸入表示所述命令行選項的命令的命令行。優(yōu)選地,所述執(zhí)行上下文包括類、和/或類的對象、和/或函數(shù)。所述命令行選項可以是執(zhí)行上下文的要素的組合和/或序列的表示 形式。例如,所述命令行選項可以是函數(shù)、和/或對象、和/或函數(shù)組合、和/或對象組合、 和/或函數(shù)和對象的組合的表示形式。優(yōu)選地,所述命令行選項所表示的執(zhí)行上下文包括 函數(shù)和/或對象的組合。對象例如可以是應用所展現(xiàn)出的自動化對象,或者是類的對象。換句話說,本發(fā)明的實施例是對兩種相對的力量進行平衡的結果一方面要能夠 使用第三方應用的全部潛能來創(chuàng)建或擴展任務或功能,而另一方面則要能夠為用戶或應用 給出簡單的命令行選項以運行和執(zhí)行定制任務或功能。再換句話說,為了進行折衷,本發(fā)明的實施例提出了在可執(zhí)行文件啟動期間加載 的插件(根據(jù)目標環(huán)境的命名約定為別名添加、別名擴展等),由此使得能夠進行命令行解 析活動。通過讀取其自己的命令選項,其能夠執(zhí)行所請求的動作。在能夠這樣做的情況下, 可能得到命令行的簡易和自動化性能的豐富這兩個“世界”的最佳結果。本發(fā)明的主要優(yōu)勢在于能夠以簡易的方式(使用命令行)以及以一個步驟發(fā)起應 用,而無需復雜的交互并且不要求發(fā)起方模塊了解目標應用的內部模型。同時,能夠利用目 標工具的完全有效的內部結構來執(zhí)行定制的特定任務。在系統(tǒng)初始開發(fā)期間僅需要一次內部知識。在該階段之后,全部可能的調用方能 夠利用簡化的交互(命令行),而無需對其中的每一個進行“自組織(ad-hoc) ”會話的開發(fā)。
接下來借助于附圖對優(yōu)選實施例進行描述圖1 命令行選項的傳統(tǒng)系統(tǒng)的流程圖;圖2 自動化模型的傳統(tǒng)系統(tǒng)的流程圖;圖3 具有定制命令行(custom command line)的優(yōu)選實施例的流程圖;圖4 本發(fā)明的優(yōu)選實施例;圖5 本發(fā)明的優(yōu)選實施例。
具體實施例方式圖1示出了根據(jù)現(xiàn)有技術的命令行選項的傳統(tǒng)系統(tǒng)的流程圖。在步驟100,確定對 命令行交互的系統(tǒng)需求。在步驟102,確定第三方應用是否提供了會滿足所述需求的適當命 令行選項。在需求沒有得到滿足的情況下,無望獲得成功104。而在需求得以滿足的情況 下,使用命令行選項106。圖2示出了根據(jù)現(xiàn)有技術的自動化模型的傳統(tǒng)系統(tǒng)的流程圖。在步驟110,確定對 豐富交互的系統(tǒng)需求。在步驟112,確定第三方應用是否展現(xiàn)出會滿足所述需求的適當?shù)呢S 富自動化模型。在需求沒有得到滿足的情況下,無望獲得成功114。而在需求得以滿足的情 況下,使用自動化模型116。如圖2所示的自動模型通常提供更大的機會來滿足用戶需求,原因在于執(zhí)行上下 文比圖1所示的命令行選項更為豐富。然而,這是以用戶與自動化模型開發(fā)環(huán)境的更為復 雜的交互為代價的。因此,圖3示出了具有定制命令行的優(yōu)選實施例的流程圖。在步驟10, 確定對定制交互的系統(tǒng)需求。在步驟12,確定第三方應用是否提供了適當?shù)拿钚羞x項。在 所述需求被所述第三方應用所提供的命令行選項滿足的情況下,使用這些命令行選項16。在所述第三方應用的命令行選項沒有滿足用戶需求的情況下,在步驟14確定所述第三方 應用是否展現(xiàn)出自動化模型。在所述第三方應用未展現(xiàn)出自動化模型的情況下,則無望成 功18。在所述第三方應用展現(xiàn)出自動化模型的情況下,在方法步驟20中,作為定制命令行 實施定制交互。具體示例為自動在Microsoft Visual Studio 2005上從命令行打開網(wǎng)站。使用 Microsoft Visual studio 2005,可能創(chuàng)建并打開稱作“網(wǎng)站”的項目類型。這只能夠以交 互方式來完成,即通過在菜單項或向導按鈕進行點擊來完成。也可以通過傳遞作為命令行 上的自變量的項目定義文件來打開其它類型的項目。然而,該選項對于“網(wǎng)站”并不可用, 原因在于并不存在特定的項目文件。Visual Studio 2005并不默認對其進行支持,但是可 通過利用所提出的發(fā)明來實現(xiàn)該情形??梢酝ㄟ^創(chuàng)建新的定制命令行選項切換來擴展用于 “網(wǎng)站”的Microsoft Visual studio 2005功能并且在隨后再使用它。圖4示出了本發(fā)明的優(yōu)選實施例。用于改進對自動化模型的訪問的系統(tǒng)40包括 開發(fā)環(huán)境42。開發(fā)環(huán)境42包括自動化模型44、插件48和管理控制臺50。管理控制臺50 包括命令行52。自動化模型包括執(zhí)行上下文46,其包括對象56、類58和函數(shù)54。插件48 包括命令行選項62、64、68。為了根據(jù)本發(fā)明實施例改進開發(fā)環(huán)境42的啟動特性,系統(tǒng)40執(zhí)行以下步驟啟動開發(fā)環(huán)境42。其展現(xiàn)出作為自動化模型44的執(zhí)行上下文46。在啟動開發(fā)環(huán) 境42時,由開發(fā)環(huán)境42加載插件48。由插件48提供命令行選項62、64、68。插件48連接 到管理控制臺50或者連接到適于調用命令行選項62、64、68的另一行動方。當表示所述命 令行選項62、64、68之一的命令被調用時,至少一部分執(zhí)行上下文46被調用。被所述命令 所調用的執(zhí)行上下文由命令行選項所表示。根據(jù)其它優(yōu)選實施例,管理控制臺50提供能夠向其中輸入表示所述命令行選項 62、64、68的命令的命令行52。根據(jù)另一優(yōu)選實施例,執(zhí)行上下文46包括類58和/或類的對象56和/或函數(shù) 54。根據(jù)另一優(yōu)選實施例,所述命令行選項62、64、68是執(zhí)行上下文46的要素54、56、 58的組合和/或序列的表示形式。根據(jù)另一優(yōu)選實施例,所述命令行選項52、64、68是函數(shù)54,和/或對象56,和/ 或函數(shù)54的組合,和/或對象56的組合,和/或函數(shù)54和對象56的組合的表示形式。根據(jù)另一優(yōu)選實施例,命令行選項所表示的執(zhí)行上下文包括函數(shù)和/或對象的組
I=I O圖5示出了基于Microsoft Visual Studio 2005 (VS)平臺的本發(fā)明的優(yōu)選實施 例。作為開始點,使用名為“分組(Package) ”70的組件。在樣本實施方式中,“分組”70是 從作為VS的內部自動化模型(由VS SDK庫所展現(xiàn))的一部分而提供的基礎所得出的類。 這類鉤(hook)可被用來訪問VS應用的生命周期的各個方面。特別地,(在這種情況下)我們使用它來獲取對devenv. exe過程(VS)的命令行 的訪問并且被通知以所進行的啟動活動。所提供的圖表遵循UML序列圖的注解。你能夠逐 步檢查所涉及的不同實體所執(zhí)行的動作。第一個動作“打開VS2005”71來自于外部并且可由用戶或第三方模塊(這里包括我們自己的套裝的其它部分)來開始。所安裝并注冊的我們的“分組” 70接著被包含于早 期啟動階段之中。其能夠讀取整個命令行(圖表中的“得到所有命令行細節(jié)”72)并且開始 所有預期的定制動作(“定制切換” 73)。我們的實施方式的內部組織被構建為盡可能的靈活。這是引入具有良好定義的角 色的其它類的原因?!岸ㄖ魄袚Q引擎”74被給予命令行文本并且從“配置”75讀取保存了特 性列表的實體以進行激活。另一條信息被“切換選項解析器” 76處理并返回,所述“切換選項解析器” 76從 所述命令行提取有用數(shù)據(jù)的片段。配置數(shù)據(jù)連同處理過的命令行一起被給予“切換創(chuàng)建 器” 77,“切換創(chuàng)建器” 77最終創(chuàng)建實際的“定制切換”。所有的“定制切換”實例接著被返回到“分組” 70,“所述分組” 70能夠將它們全部 運行并且完成所預期的活動。在我們的情況下,所執(zhí)行的其中一個定制活動是發(fā)起不能夠 以其它方式直接打開的特定類型的VS項目(網(wǎng)站)。
權利要求
一種用于改進開發(fā)環(huán)境(42)的啟動特性的方法,包括步驟a)啟動展現(xiàn)出作為自動化模型(44)的執(zhí)行上下文(46)的開發(fā)環(huán)境(42);b)在啟動所述開發(fā)環(huán)境(42)時由所述開發(fā)環(huán)境(42)加載插件(48);c)由所述插件(48)提供命令行選項(62、64、68),其中表示所述命令行選項(62、64、68)的命令調用所述執(zhí)行上下文(46)的至少一部分。
2.如權利要求1所述的方法,其中被所述命令所調用的執(zhí)行上下文由命令行選項所表7J\ ο
3.如權利要求1或2所述的方法,其中所述插件(48)連接到管理控制臺(50)或者連 接到適于調用所述命令行選項(62、64、68)的另一行動方。
4.如權利要求3所述的方法,其中所述管理控制臺(50)提供能夠向其中輸入表示所述 命令行選項(62、64、68)的命令的命令行(52)。
5.如之前任一項權利要求所述的方法,其中所述執(zhí)行上下文(46)包括類(58)、和/或 類的對象(56)、和/或應用所展現(xiàn)出的自動化對象、和/或函數(shù)(54)。
6.如之前任一項權利要求所述的方法,其中所述命令行選項(62、64、68)是所述執(zhí)行 上下文(46)的要素(54、56、58)的組合和/或序列的表示形式。
7.如之前任一項權利要求所述的方法,其中所述命令行選項(52、64、68)是函數(shù)(54)、 和/或對象(56)、和/或函數(shù)(54)的組合、和/或對象(56)的組合、和/或函數(shù)(54)與對 象(56)的組合的表示形式。
8.如之前任一項權利要求所述的方法,其中所述命令行選項所表示的執(zhí)行上下文包括 函數(shù)和/或對象的組合。
9.如之前任一項權利要求所述的方法,其中所述開發(fā)環(huán)境被制造執(zhí)行系統(tǒng)所包括。
10.一種包括適于執(zhí)行之前任一項權利要求的所有方法步驟的裝置的系統(tǒng)(40)。
11.如權利要求10所述的系統(tǒng),其中所述系統(tǒng)是制造執(zhí)行系統(tǒng)。
全文摘要
本發(fā)明涉及定制命令行切換。本發(fā)明提出了一種用于改進開發(fā)環(huán)境(42)的啟動特性的方法,包括步驟a)啟動展現(xiàn)出作為自動化模型(44)的執(zhí)行上下文(46)的開發(fā)環(huán)境(42);b)在啟動所述開發(fā)環(huán)境(42)時由所述研發(fā)環(huán)境(42)加載插件(48);c)由插件(48)提供命令行選項(62、64、68),其中表示所述命令行選項(62、64、68)的命令調用執(zhí)行上下文(46)的至少一部分。
文檔編號G06F9/45GK101944038SQ20101017671
公開日2011年1月12日 申請日期2010年4月7日 優(yōu)先權日2009年4月8日
發(fā)明者D·博列洛, F·卡梅拉 申請人:西門子公司