專利名稱:在集成開發(fā)環(huán)境中作為設(shè)計器的主宿的應用程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件開發(fā)環(huán)境,尤其涉及便于把未管理的應用程序帶入到環(huán)境中作為設(shè)計器的體系結(jié)構(gòu)。
背景技術(shù):
迄今為止,軟件集成開發(fā)環(huán)境(IDEs)并不能將未管理的主宿的(hosted)應用程序的功能集成到該開發(fā)工作空間中。這樣,編寫豐富的設(shè)計器通常是非常復雜和費時的任務,這就必須考慮非常緊密地與該主宿的應用程序的集成。
需要的是一種體系結(jié)構(gòu),它把未管理的應用程序按一致仍而可使用的方式集成到設(shè)計環(huán)境中,使得開發(fā)者能使用該主宿的應用程序的原有的功能并同時調(diào)節(jié)由該IDE提供的充足的生產(chǎn)效率的特征。
發(fā)明內(nèi)容
以下給出了本發(fā)明的簡化概述,以提供對本發(fā)明某些概念的基本理解。這個概述并不是本發(fā)明的廣泛綜述。這并不旨在標識本發(fā)明的關(guān)鍵/決定性元素或者描述本發(fā)明的范圍。其唯一的目的是以簡化的形式給出本發(fā)明某些概念,作為以后給出的更詳細描述的序言。
此處揭示并要求保護的本發(fā)明,在其一個方面中,包括一種體系結(jié)構(gòu),它把未管理的應用程序作為主宿的應用程序按一致而可使用的方式集成到設(shè)計環(huán)境中,使得該開發(fā)者能使用該主宿的應用程序的原有的功能,同時調(diào)節(jié)(leverage)由該IDE提供的充足的生產(chǎn)效率的特征。在此作為支持,提供了一種具有主宿組件的IDE,該組件包括一應用程序適配程序,它提供從未管理應用程序到該IDE的接口。該IDE包括提供對IDE的設(shè)計器能力的用戶訪問的設(shè)計器框架。宿主適配程序直接地和/或通過一集成接口連接到設(shè)計器框架。由此,開發(fā)者/用戶然后能夠訪問未管理應用程序的原有功能以及該IDE功能。這就提供了開發(fā)環(huán)境與該主宿的應用程序之間的豐富的集成,其結(jié)果是設(shè)計器與該IDE交互。
為了實現(xiàn)前述的相關(guān)目的,此處結(jié)合以下描述和附圖描述了本發(fā)明的某些說明性方面。然而,這些方面僅指示了可采用本發(fā)明的原理的各種方式中的幾種,并且本發(fā)明旨在包括所有這樣的方面和其等效方面。當結(jié)合附圖考慮時,本發(fā)明的其它優(yōu)點和新穎特征將從以下本發(fā)明的詳細描述中變得顯而易見。
圖1示出本發(fā)明的一個系統(tǒng)。
圖2示出在IDE中集成原有的應用程序功能的過程的流程圖。
圖3示出依照本發(fā)明的OLE文檔開發(fā)過程的流程圖。
圖4所示是依照本發(fā)明的集成功能的一個示例窗口。
圖5所示是本發(fā)明的集成且層疊的菜單特征的窗口。
圖6示出了可用于執(zhí)行所揭示的體系結(jié)構(gòu)的計算機的框圖。
圖7示出根據(jù)本發(fā)明的示例性的計算環(huán)境的示意性框圖。
具體實施例方式
現(xiàn)在,本發(fā)明將參照附圖來描述,貫穿附圖,相同的標號用于表示相同的元素。在以下的論述中,以解釋為目的,闡明了若干具體細節(jié),以提供對本發(fā)明的徹底的理解。然而,很明顯,本發(fā)明可以不采用這些具體細節(jié)來實踐。在其它的例子中,以框圖的形式示出了眾所周知的結(jié)構(gòu)和設(shè)備,以便于描述本發(fā)明。
如本申請中所使用的,術(shù)語“組件”和“系統(tǒng)”意在指計算機相關(guān)的實體,它可以是硬件、硬件和軟件的組合、或執(zhí)行中的軟件。例如,組件可以是,但不局限于,在處理器上運行的進程、處理器、對象、可執(zhí)行碼、執(zhí)行線程、程序和/或計算機。作為說明,運行在服務器上的應用程序和該服務器都能夠是組件。一個或多個組件可駐留在進程和/或執(zhí)行線程之中,而且組件可定位在一個計算機上和/或分布在兩個或多個計算機之間。
現(xiàn)在參照圖1,示出了本發(fā)明的一個系統(tǒng)100。系統(tǒng)100是一個增強的“集成”開發(fā)環(huán)境(IDE)102,它便于把未管理應用程序104的原有功能帶入到開發(fā)環(huán)境102之中。此外,IDE 102包括一主宿組件106,它至少是通過宿主適配器108連接到未管理應用程序104。宿主適配器108是主宿組件102的一部分,并且對特定的未管理應用程序104是專用的。即,當未管理應用程序104是文字處理程序時,宿主適配器提供對文字處理應用程序?qū)S玫慕涌谀芰?。類似地,電子表格應用程序?qū)⒕哂兴约旱膶S盟拗鬟m配器,以便于把它的原有的功能帶入IDE 102之中。
主宿組件106還包括設(shè)計器框架110,它與宿主適配器108接口,并擔當主宿組件106和IDE 102之間的接口。宿主適配器108還通過一集成接口112與設(shè)計器框架接口,接口112擔當用于第三方應用程序的接口,如果有對該第三方應用程序的宿主適配器108,其原有的功能也能被帶入到IDE 102中。
主宿組件106還包括一文檔主宿子組件114,它與設(shè)計器框架110和未管理應用程序接口,以便于主宿應用程序104的一個相關(guān)聯(lián)的文檔。
如上所述,系統(tǒng)100能夠集成多個未管理應用程序(稱作為“未管理App1”…“未管理AppN”)的原有功能。由此,IDE 102包括對應的多個主宿組件(稱作為“主宿組件1”…“主宿組件x”)。每一個主宿組件包括宿主適配器、設(shè)計器框架、集成接口和文檔主宿子組件。注意,雖然這些組件被表示成分離的實體,然而這些實體能以被認為適合于把未管理應用程序的原有功能帶入到IDE中的任何方式來組合。
系統(tǒng)100尤其適用于OLE(對象鏈接和嵌入)技術(shù),這里該IDE支持OLE,并且由文檔主宿子組件114主宿的文檔是一OLE文檔。這樣,任何支持OLE文檔接口的應用程序能夠被集成到IDE 102之中。然而,本發(fā)明并非局限于這樣一個OLE技術(shù),并構(gòu)想任何其它合適的技術(shù)可用于該IDE中。
在IDE內(nèi)部主宿基于文檔的豐富的應用程序(如文字處理程序和電子表格應用程序)之后的創(chuàng)新是這些應用程序被作為可視的設(shè)計器來對待。主宿的應用程序是功能完整的,但利用了由IDE提供的豐富的功能。當在IDE中主宿時,主宿文檔能夠通過與不同的工具窗口的交互被可視化地設(shè)計。例如,“工具箱”可以將控件和組件拖放到設(shè)計器上。在設(shè)計器中可以選中文檔上的控件,并且它們的屬性可以在“屬性”窗口中編輯。另一操作例如通過一“數(shù)據(jù)源拾取工具”窗口在應用程序中實現(xiàn)數(shù)據(jù)綁定功能。
本發(fā)明將主宿應用程序轉(zhuǎn)換成為可視設(shè)計器,而不會減少由該主宿應用程序提供的原有功能的任一個。這就有效地把主宿應用程序轉(zhuǎn)換成為設(shè)計表面,開發(fā)人員能夠在其上拖放對象以快速地創(chuàng)建解決方案和應用程序。而且,所揭示的方法提供了一個熟悉且一致的開發(fā)模型以開發(fā)該IDE中的應用程序。另外,本發(fā)明的增強的IDE將概念的數(shù)量保持為最小,而同時最小化設(shè)計范例的數(shù)量。
現(xiàn)在參照圖2,示出了在IDE中集成原有應用程序功能的過程的流程圖。盡管為了簡化解釋的目的,此處例如以流程圖的方式示出的一個或多個方法被表示和描述為一系列的動作,然而應該理解和認識到,本發(fā)明并不限制于這些動作的次序,因為根據(jù)本發(fā)明,某些動作可以不同的次序和/或與在此示出并描述其它動作并發(fā)地發(fā)生。例如,本領(lǐng)域的技術(shù)人員應理解和認識到,方法可以被替換地表示為一系列內(nèi)部相關(guān)的狀態(tài)和事件,如以狀態(tài)圖表示。此外,并非所有示出的動作都被要求來實現(xiàn)根據(jù)本發(fā)明的方法。
在200,提供一IDE。在202,在IDE中提供主宿組件,以便于主宿未管理應用程序。在204,設(shè)計器框架如此被提供并接口到主宿組件。在206,提供對未管理應用程序?qū)S玫乃拗鬟m配器作為主宿組件的一部分。在208,宿主適配器直接并且間接地通過用于第三方應用程序的集成接口來與設(shè)計器框架接口。在210,文檔主宿子組件被提供并與設(shè)計器框架和未管理應用程序接口。在212,主宿文檔現(xiàn)在已能使用設(shè)計器功能和未管理應用程序的原有功能二者來進行操縱。然后該過程達到“停止”塊。
現(xiàn)在參照圖3,示出了根據(jù)本發(fā)明用于OLE文檔開發(fā)的過程的流程圖。在這個具體過程實現(xiàn)之中,IDE環(huán)境支持OLE技術(shù)。在300,開發(fā)人員打開IDE環(huán)境。在302,未管理應用程序被選中。在304,打開一個新的文檔或打開一個已存在的文檔用于編輯。在306,能夠為該文檔設(shè)置安全性設(shè)定,以便例如,根據(jù)文檔將在何處被處理來設(shè)定各種準許或限制級別。在308,開發(fā)人員/用戶利用設(shè)計器框架和主宿程序的原有功能之一或二者的能力來操縱該文檔。然后該處理達到“停止”塊。
宿主適配器當主宿應用程序作為設(shè)計器被打開時,該主宿菜單將與IDE的菜單合并。根據(jù)該主宿應用程序是否被聚焦到,可啟用某些菜單項,而其它的將被禁用。即,如果該IDE被聚焦,則在主宿應用程序中禁用某些菜單項。相反,如果主宿應用程序被聚焦,則禁用IDE的某些菜單項。這是,但也僅僅是宿主適配器的一個功能。
現(xiàn)在參照圖4,有一示例窗口400,它示出根據(jù)本發(fā)明的集成功能。窗口400是主宿的電子表格應用程序(例如,與EXCEL品牌的電子表格應用程序有關(guān))的表示。窗口400示出了與IDE的IDE菜單404合并的主宿菜單402、帶有附加的“View Code(察看代碼)”命令408的宿主上下文菜單406、示出項目結(jié)構(gòu)412的“Solution Explorer(解決方案瀏覽器)”410、示出所選中的電子表格的屬性416的“Property(屬性)”窗口414、以及具有能添加到主宿文檔422中的控件和組件420的列表的“Toolbox(工具箱)”418。
該“Property(屬性)”窗口顯示代碼在后(code-behind)工程項目和其它設(shè)計器工程項目的屬性。主宿應用程序?qū)⑵鋵傩酝迫搿癙roperty”窗口中。主宿應用程序能夠選擇向“Property”窗口傳播屬性。主宿應用程序提供屬性列表(例如,屬性名和屬性類型)。
包含嵌入或鏈接的對象的任何文檔能夠在IDE中打開。選中一個嵌入或鏈接的對象將促使菜單和工具箱對所選中的對象改變。
如果選中“Tools(工具)”選項中的第一個單選按鈕,則適配器捕獲所有的加速鍵(accelerator)并將加速鍵傳遞到動態(tài)創(chuàng)建的IDE中的快捷鍵表(或鍵映射表)。任何沒有被處理的事情由該IDE表向下傳遞回主宿應用程序以便處理。
在設(shè)計器上右鍵單擊將調(diào)出標準的電子表格上下文菜單。附加的菜單命令“View Code”是該上下文菜單中的第一個命令。令該“View Code”命令處于列表的頂端提供了與其它程序的上下文菜單的一致性。從電子表格單元格中選擇該“View Code”命令將開發(fā)者導航到該工作表的代碼編輯器。該光標將被設(shè)置到在之前它被設(shè)置到的地方。默認地,這意味著光標將被設(shè)置到編輯器的頂部。在“ViewControl(察看控件)”上右鍵單擊將顯示該“View Control”的上下文菜單。從“ViewControl”中選擇“View Code”命令將開發(fā)者導航到該IDE的代碼編輯器,并將光標設(shè)置到之前它被設(shè)置到的地方。
在工作表格的選項卡上右鍵單擊將調(diào)出電子表格應用程序的一個上下文菜單。該上下文菜單包含一個“View Code”命令,如果被選中,它將用戶導航到IDE代碼編輯器中該電子表格文件后的代碼。代碼編輯器中與對于“View Code”命令的光標放置行為與它在設(shè)計器中對于“View Code”命令是同樣的。
現(xiàn)在參照圖5,示出了窗口500,它示出本發(fā)明的一個集成且層疊的特征。主宿應用程序(也稱為服務器應用程序)與IDE的集成會導致相似地命名的菜單項之間的沖突。這里,IDE和主宿應用程序的集成引起菜單沖突,使得至少“View(察看)”菜單項是沖突的。IDE修改其已存在的“View”菜單502,以包括主宿應用程序菜單504(可通過“Server View Commands(服務器察看命令)”來訪問并標記為“Server View Commands”)。該IDE向用戶呈現(xiàn)了清楚地標識服務器“View”菜單選項在IDE“View”菜單502中的位置。與該“Server View Commands”菜單選項相關(guān)聯(lián)的擴充箭頭便于訪問該層疊的服務器子菜單項目。
示例場景在IDE中,用戶創(chuàng)建一新的電子表格工程。與電子表格相關(guān)的工程項目在該“Solution Explorer(解決方案瀏覽器)”和電子表格工作簿中創(chuàng)建,并且工作表作為設(shè)計器被顯示在文檔窗口中。該電子表格文檔在IDE內(nèi)部設(shè)計。所揭示的體系結(jié)構(gòu)將該IDE的菜單和主宿應用程序合并,并且工具欄在設(shè)計器的電子表格應用程序中可用,從而在一個環(huán)境之中提供了生產(chǎn)效率特征和IDE特征的全部。該電子表格能夠使用電子表格應用程序的全部逼真度來編輯和修改,并采用該IDE工具窗口和編輯器以利用已管理代碼來定制電子表格。從Toolbox(工具箱)中,用戶能將一個已管理按鈕拖放到該文檔上。該按鈕能夠被選中并且其屬性可以采用屬性網(wǎng)格來修改。定制可以在自動生成的事件處理器的內(nèi)部通過在按鈕上雙擊并輸入“Code View”來作出。
設(shè)計器模式主宿應用程序以設(shè)計模式和運行時模式操作,以便在主宿應用程序內(nèi)的設(shè)計動作和運行時動作之間區(qū)分。在每個模式中用戶可以執(zhí)行的動作集可能在各個應用程序之間不同,并依賴于主宿應用程序,而與是否在IDE中無關(guān)。在一個實施例中,主宿應用程序是設(shè)計時模式,并當主宿在IDE中,保持在設(shè)計時模式。這個體驗便于拖動控件到設(shè)計器上、選擇該控件以察看和編輯其屬性、并雙擊該控件以進入代碼視圖。當在IDE中時,用于未管理應用程序的宿主適配器將文檔推入并保持在設(shè)計模式中。
另一個模式是“運行”模式。當該應用程序正在運行或正被調(diào)試時,它就處于“運行”模式之中。在這個模式中,只有原有的應用程序功能是可用的。一旦調(diào)試開始,代碼編輯器成為活動的設(shè)計器,而且所有的加速鍵都由IDE處理。
文檔視圖由IDE主宿的文檔至少能具有二種視圖設(shè)計視圖和代碼視圖。一般而言,設(shè)計視圖是應用程序的設(shè)計/普通視圖。設(shè)計視圖對支持“OLE文檔”技術(shù)的文檔啟用。當工作在這些文檔上時,用戶的體驗基本上類似于使用原始的主宿應用程序的體驗。這意味著,開發(fā)人員能夠設(shè)計摸板/文檔、建立和修改文檔、以及使用專用的宿主的特征,如格式化、圖表化和模式映射等等。這種行為通過調(diào)節(jié)OLE技術(shù)和在IDE中主宿所主宿的應用程序來實現(xiàn)。
設(shè)計視圖能以主宿應用程序所支持的格式來顯示新的和已存在的文檔。例如,設(shè)計器將以二進制和XML格式來處理文檔。這是通過調(diào)整OLE文檔技術(shù)來實現(xiàn)的,以將文檔完全集成到IDE中,從而取用了各種操作,諸如將控件拖放到設(shè)計器上、選擇上下文、和在控件上雙擊以寫入代碼。設(shè)計器能夠顯示整個文檔的內(nèi)容,包括但并不局限于格式化、樣式、模式映射和嵌入對象等。
當在IDE中時,主宿的應用程序處于“設(shè)計模式”。IDE中主宿的應用程序是全功能的,即,當在IDE中開發(fā)解決方案時,主宿的應用程序的菜單、命令、上下文菜單、和加速鍵對用戶全部可用。同時,存在一些附加到宿主的原有功能中的特征和體驗。如在此所指出的,例子包括與IDE工具窗口的交互、在設(shè)計器(文檔)上右鍵單擊和選擇“Code View”命令以導航到文件之后的代碼的能力、選擇功能鍵以開始調(diào)試等等。這些特征顯著地改進了IDE內(nèi)部的開發(fā)人員體驗,并在設(shè)計應用程序時幫助開發(fā)人員。
有時存在用戶在主宿應用程序中的體驗不同于在IDE中體驗的情況。例如,如果一個“Tool>Macro(工具>宏)”菜單選項不可用,則當運用某些鍵組合時會發(fā)生不同的動作(例如,如果選擇“Alt+F11”,將載入一個“Micro(宏)”環(huán)境)。主宿的應用程序的行為不同于它在IDE之外時的行為的具體情況是與宿主適配器相關(guān)聯(lián)的。宿主適配器通過關(guān)閉這些宿主特征或修改它們的行為來處理這些行為上的差異。這樣做的目的是改進開發(fā)人員的體驗,并提高主宿的應用程序和開發(fā)環(huán)境之間的集成性。
注意,如果一個應用程序文檔具有多個與它關(guān)聯(lián)的“子文檔”(例如,多個工作表關(guān)聯(lián)于一個工作簿),那么將存在與每一個“子文檔”相關(guān)聯(lián)的代碼視圖(即,代碼在后的文件關(guān)聯(lián)于每一個工作表)。正在被主宿的并且在IDE中定制的文檔具有一個關(guān)聯(lián)的代碼視圖。
代碼視圖揭示一個關(guān)聯(lián)于文檔的代碼在后的文件。與由設(shè)計器表示的文檔相關(guān)聯(lián)的代碼窗口能夠以多種方式被激活。一種方式是當設(shè)計器或相應的代碼工程項目在解決方案瀏覽器中被選中時,通過單擊該解決方案瀏覽器上的“View-Code”按鈕或者從VS視圖菜單中選擇菜單項“View-Code”。在解決方案瀏覽器中選中設(shè)計器的情況下,對應于當前活動子文檔的代碼窗口被打開。另一種方式是通過從設(shè)計器的上下文菜單中選擇“View Code”菜單(注意該光標并不在映射的元素上)。還有另一種方式是通過從解決方案瀏覽器中的工程項目上下文菜單中選擇“View-Code”。
在所有以上的行動中,代碼窗口用窗口頂部的光標的設(shè)置來載入。當代碼窗口通過在設(shè)計器中的控件上雙擊而調(diào)出時,代碼生成(即處理程序定義)和導航然后就發(fā)生。在此情況下,光標被設(shè)置在默認的控件事件處理程序內(nèi)部。如果處理程序尚不存在,則生成它。主宿的應用程序向IDE提供足夠的數(shù)據(jù),以了解要生成哪一事件處理程序。如果已生成了默認的事件處理程序,則在控件上雙擊將用戶導航到代碼編輯器,并且將光標放置在默認的事件處理程序中。
視圖控件視圖控件是被聚集以支持數(shù)據(jù)綁定的對象,并提供開發(fā)人員能用于響應由視圖控件引發(fā)的事件的事件模型。為了提高視圖控件的可視性和可發(fā)現(xiàn)性,控制被安置在工具箱中,作為用戶可以拖放到應用程序設(shè)計器上的“控件”。以下的討論是關(guān)于支持發(fā)現(xiàn)、創(chuàng)建、刪除和與文字處理應用程序中的視圖控件一起工作的設(shè)計時工具。然而應該理解,電子表格應用程序也具有與之相關(guān)聯(lián)的視圖控件。
在文字處理應用程序(和電子表格應用程序)中存在某一級別的原有支持,例如,它們可以用于創(chuàng)建并與視圖控件一起工作。為了改進該體驗,附加的工具支持被添加到視圖控件周圍,以增加這個特征的可視性和可發(fā)現(xiàn)性,同時也改進了以它們工作的整個開發(fā)人員體驗。為了提供開發(fā)人員熟悉的模型,在視圖控件上體驗模仿與已管理的控件一起工作,例如,選擇上下文和屬性窗口支持、從工具箱加入視圖控件以及在視圖控件上雙擊以導航到代碼視圖。
特征包括但并不局限于對視圖控件從從工具箱中拖放的常規(guī)支持、通過工具箱對所添加的視圖控件的默認命名、為視圖控件選擇上下文(例如,在設(shè)計器中選擇視圖控件將顯示屬性窗口之中顯示屬性,并在屬性網(wǎng)格中選擇個視圖控件將在設(shè)計器中下拉選擇視圖控件)、在視圖控件上雙擊以導航到代碼編輯器、默認事件處理程序生成、添加到設(shè)計器的后方代碼和控件的動態(tài)同步、對通過屬性窗口命名視圖控件的支持、以及對代碼編輯器中的視圖控件的事件下拉支持。其它特征可包括對視圖控件的可訪問性(支持在工具箱中的“輸入”和“雙擊”以添加視圖控件)、顯示書簽、處理重疊的書簽、對工具箱中的視圖控件項目的功能鍵(F1)支持、工具箱可訪問性(支持Ctrl-C和Ctrl-V以添加視圖控件)、對刪除書簽的支持、向用戶提供選項以將視圖控件降級(demote)為常規(guī)書簽(減少混亂)、在視圖控件之間跳格切換(tab)、以及對形狀的工具箱支持。對文字處理程序支持書簽視圖控件,它用于從單個字符跨越到多個段落。
當在IDE中時,開發(fā)人員能使用文字處理程序的XML結(jié)構(gòu)任務窗格來向文檔應用模式。該映射過程為每個映射的元素建立XML結(jié)點視圖控件。該XML結(jié)點視圖控件的默認命名將與模式映射的元素相同。為確保模式映射的視圖控件變量的唯一性,如果發(fā)生沖突則向該名字添加一X(這里,X=整數(shù),它在附加的沖突發(fā)生時遞增)。
對于電子表格應用程序視圖控件,提供一種“命名范圍(Named-Range)”控件和“列表對象(ListObject)”控件。名字范圍控件是一種機制,以容易地命名一個范圍,并為每個電子表格維護一名字表,以確保對每個被命名的范圍唯一地命名。列表對象是電子表格范圍的擴充,它被設(shè)計來提供改進的數(shù)據(jù)體驗,包括自動增長/收縮到它所應用數(shù)據(jù)集的能力。列表對象包括行和列,它們被展示為“列表行(ListRows)”和“列表列(ListColumns)”。
組件托盤(Component Tray)組件托盤在主宿應用程序時促進顯示或可視化非可視組件的方法。一些開發(fā)組件在運行時并不具有可視化的表示,例如數(shù)據(jù)適配器和相關(guān)的組件。組件托盤提供一種用于在設(shè)計時可視地識別和操縱非可視組件的機制。開發(fā)人員可以拖放、編輯屬性、和可視化這些組件。將組件添加到視圖的一種方式是通過從工具箱中拖出組件并將它放到該文檔上、設(shè)置它們的屬性、刪除它們等等。非可視組件成為該文檔后的類的已命名類成員實例。
如果在文檔中存在非可視組件,則呈現(xiàn)該托盤。如果不存在非可視組件,則托盤完全消失。用戶通過把第一非可視組件放置到該視圖的主要部分以將其插入到視圖上,這將促使托盤被打開,并且非可視組件被移到該托盤中。后續(xù)的非可視組件能夠被放置到可視表單或直接放到托盤上。
如果可視項目在托盤上拖動,則顯示一不可放置圖標,并且該放置動作執(zhí)行一個無操作。當最后一個非可視組件從表單中刪除時,托盤消失,并且選擇返回到設(shè)計器。托盤的背景是該系統(tǒng)窗口背景顏色。組件被自動排列以與托盤的當前寬度相匹配,所以從不需要水平滾動。如果需要,垂直滾動條將在托盤中出現(xiàn)。如果添加了比托盤框架可以顯示的更多的組件,則垂直滾動條被加入到托盤。如果組件被放置,使得該組件看上去超出了托盤的左或右邊界,則一個水平滾動條被加入到托盤。對組件托盤的改變并不弄臟該文檔。
回顧所揭示的體系結(jié)構(gòu)的某些特點,IDE工具箱窗口允許將已管理的控件拖放或繪制到設(shè)計器的表面上。數(shù)據(jù)源窗口允許將已管理的數(shù)據(jù)組件和控件拖放到設(shè)計器的表面上。IDE屬性窗口允許操縱文檔及其上的組件的屬性。IDE組件托盤窗口主宿放置在文檔上的非可視元素,例如數(shù)據(jù)適配器和數(shù)據(jù)連接器。設(shè)計器使開發(fā)人員能書寫在文檔及其上的組件之后的已管理代碼。工具/選項對話框提供用于各種各樣的IDE功能的專用選項。對設(shè)計器主宿的應用程序的每一個可以有一專用頁面,以使設(shè)計器能夠靈活地以各種方式表現(xiàn)。當該未管理應用程序成為在IDE中的設(shè)計器時,該專用頁面包括對用戶期望調(diào)用的那些偏好。
對于基于文檔的設(shè)計器,有為了改進用戶的體驗而定制IDE內(nèi)的附加應用程序的附加方面。這樣的功能的一個例子是已修改的文檔上下文菜單。另外,“ViewCode”命令被添加到某些菜單以表示該文檔是“已被設(shè)計的”和可以對照其來編程。此外,為主宿的應用程序添加一專用的“設(shè)計器”工具欄以強調(diào)設(shè)計環(huán)境。
現(xiàn)在參照圖6,示出一個可用于執(zhí)行所揭示的體系結(jié)構(gòu)的計算機的框圖。為了提供本發(fā)明的各個方面的附加的環(huán)境,圖6和以下的討論旨在提供可在其中本發(fā)明的各方面的適用的計算環(huán)境600的簡要的、一般性的描述。雖然在上文中,本發(fā)明是在可運行于一個或多個計算機上的計算機可執(zhí)行指令的通用環(huán)境中描述的,然而本領(lǐng)域的技術(shù)人員將認識到,本發(fā)明也可以結(jié)合其它程序模塊和/或作為硬件和軟件的組合來實現(xiàn)。
一般而言,程序模塊包括例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。而且,本領(lǐng)域的技術(shù)人員應認識到,本發(fā)明的方法可以用其它計算機系統(tǒng)配置來實踐,包括單處理器或多處理器計算機系統(tǒng)、小型計算機、大型計算機、以及個人計算機、手持計算設(shè)備、基于微處理器或可編程客戶電器等等,其每一個可操作地耦合至一個或多個相關(guān)聯(lián)的設(shè)備。
所示出的本發(fā)明的方面還可以在分布式計算環(huán)境中實踐,其中某些任務由通過通信網(wǎng)絡(luò)連接的遠程計算設(shè)備完成。在分布式計算環(huán)境中,程序模塊可被定位于本地和遠程存儲器存儲設(shè)備二者之中。
計算機通常包括各種計算機-可讀介質(zhì)。計算機-可讀介質(zhì)可以是可以由計算機訪問的任何可用介質(zhì),并且包括易失的和非易失介質(zhì)、可移動的和不可移動的介質(zhì)。作為例子而不是限制,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括易失的和非易失的、可移動的和不可移動的介質(zhì),它們以任何方法和技術(shù)實現(xiàn)用于存儲信息,如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。計算機存儲介質(zhì)包括但不局限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字視頻盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或可用于存儲期望的信息并可由計算機訪問的任何其它介質(zhì)。
通信介質(zhì)通常在諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號中包含計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任何信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”意指其一個或多個特征以在信號中編碼信息的方式設(shè)置或改變的一種信號。作為例子而不是限制,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線路連接,以及無線介質(zhì),如聲學、RF、紅外和其它無線介質(zhì)。上述的任一個的組合也應當包括在計算機可讀介質(zhì)的范圍之內(nèi)。
再一次參照圖6,示出了一個示例性環(huán)境600,它用于實現(xiàn)本發(fā)明的各個方面,它包括計算機602,計算機602包括處理單元604、系統(tǒng)存儲器606和系統(tǒng)總線608。系統(tǒng)總線608將包括但不局限于系統(tǒng)存儲器606的系統(tǒng)組件耦合到處理單元604。處理單元604可以是各種可購買的存儲器的任一種。雙微處理器和其它多處理器體系結(jié)構(gòu)也可用作處理單元604。
系統(tǒng)總線608可以是若干種總線結(jié)構(gòu)中的任一種,它能進一步內(nèi)連到存儲器總線(帶有或不帶有存儲器控制器)、外圍總線、和使用多種可購買的總線結(jié)構(gòu)之一的局部總線。系統(tǒng)存儲器606包括只讀存儲器(ROM)610和隨機存取存儲器(RAM)612?;据斎?輸出系統(tǒng)(BIOS)被存儲在非易失存儲器610中,例如ROM、EPROM、EEPROM,該BIOS包含了基本例程,它們諸如在啟動期間幫助在計算機602的單元之間傳輸信息。RAM 612也能包括高速RAM,例如靜態(tài)RAM,用于高速緩存數(shù)據(jù)。
計算機602還包括內(nèi)部硬盤驅(qū)動器(HDD)614(例如,EIDA,SATA),該內(nèi)部硬盤驅(qū)動器614也能被配置為在一個適當?shù)牡妆P中(未示出)供外部使用、軟磁盤驅(qū)動器(FDD)616(例如,對可移動磁盤618讀出和寫入)和光盤驅(qū)動器620(例如,讀CD-ROM盤622,或?qū)χT如DVD等其它高容量磁介質(zhì)像讀出和寫入)。硬盤驅(qū)動器614、磁盤驅(qū)動器616和光盤驅(qū)動器620能夠分別通過硬盤驅(qū)動器接口624、磁盤驅(qū)動器接口626和光盤驅(qū)動器接口628連接到系統(tǒng)總線608。用于外部驅(qū)動器實現(xiàn)的接口624包括通用串行總線(USB)和IEEE 1394接口技術(shù)的中的至少一個或兩者。
驅(qū)動器和與它們相關(guān)聯(lián)的計算機可讀介質(zhì)提供了數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機可讀指令等等的非易失性存儲。對于計算機602,驅(qū)動器和介質(zhì)可容納合適的數(shù)字格式的任何數(shù)據(jù)的存儲。雖然以上計算機可讀介質(zhì)的論述涉及HDD、可移動磁盤和諸如CD或DVD等可移動光介質(zhì),然而本領(lǐng)域的技術(shù)人員應該理解,可由計算機讀取的其它類型的介質(zhì),例如ZIP驅(qū)動器、磁盒、閃存卡、盒式磁帶及類似物也能被用于該示例性操作環(huán)境之中,并且進一步,任何這樣的介質(zhì)可包含用于實現(xiàn)本發(fā)明的方法的計算機可執(zhí)行指令。
若干個程序模塊可被存儲在驅(qū)動器和RAM 612中,包括操作系統(tǒng)630、一個或多個應用程序632、其它程序模塊634和程序數(shù)據(jù)636。操作系統(tǒng)、應用程序、模塊和/或數(shù)據(jù)的全部或部分也可被緩存在RAM 612中。
應理解,本發(fā)明能用各種可購買的操作系統(tǒng)或操作系統(tǒng)的組合來實現(xiàn)。
用戶可通過一個或多個有線/無線輸入設(shè)備,例如鍵盤638和定點設(shè)備(如鼠標640),將命令和信息輸入到計算機602中。其它輸入設(shè)備(未示出)可包括話筒、IR遙控器、操縱桿、游戲墊、輸入筆、觸摸屏等等。這些和其它輸入設(shè)備通常通過耦合到系統(tǒng)總線608的輸入設(shè)備接口642來連接到處理單元604,但也能由其它接口鏈接,如并行端口、IEEE1394串行端口、游戲端口、USB端口、IR接口等。
監(jiān)視器644或其它類型的顯示設(shè)備也通過接口,如視頻適配器646連接到系統(tǒng)總線608。除了監(jiān)視器644之外,計算機通常包括其它外圍輸出設(shè)備(未示出),例如揚聲器、打印機等等。
計算機602可以在使用通過有線/無線通信到一個或多個遠程計算機,如遠程計算機648的邏輯連接的網(wǎng)絡(luò)環(huán)境中操作。遠程計算機648可以是工作站、服務器計算機、路由器、個人計算機、便攜式計算機、基于微處理機的消費者電子產(chǎn)品、對等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點,并通常包括相關(guān)于計算機602所描述的很多或全部元件,雖然為了簡單、明了的目的,只有存儲器存儲設(shè)備650被示出。所描述的邏輯連接包括到局域網(wǎng)(LAN)652和/或更大型網(wǎng)絡(luò),如廣域網(wǎng)(WAN)654的有線/無線連接。這種LAN和WAN網(wǎng)絡(luò)環(huán)境常見于辦公室、公司,并方便企業(yè)范圍計算機網(wǎng)絡(luò),如內(nèi)聯(lián)網(wǎng),所有這些都被連接到全球通信網(wǎng)絡(luò),如因特網(wǎng)。
當在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機602通過有線和/或無線通信網(wǎng)絡(luò)接口或適配器656連接到局域網(wǎng)652。適配器656可方便到LAN 652的有線或無線通信,它還可包括放置于其上的無線接入點,用于與無線適配器656通信。當在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算機602可包括調(diào)制解調(diào)器658、或者連接到LAN上的通信服務器、或者具有用于通過WAN 654,例如通過因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器658可以是內(nèi)置的也可以外置的,并且有線或無線設(shè)備通過串行端口接口642連接到系統(tǒng)總線608。在網(wǎng)絡(luò)環(huán)境中,相對于計算機602所描述的程序模塊或其部分可存儲在遠程存儲器/存儲設(shè)備650中。應理解,所示的網(wǎng)絡(luò)連接是示例性的,也可使用在計算機之間建立通信鏈路的其它裝置。
計算機602可用于與可操作地布置在無限通信中的任何無線設(shè)備或?qū)嶓w通信,例如打印機、掃描儀、臺式和/或便攜計算機、便攜數(shù)據(jù)助理、通信衛(wèi)星、與無線地可探測的標記相關(guān)聯(lián)的任何一部設(shè)備或場所(如公用電話亭、報亭、休息室)、以及電話。這至少包括Wi-Fi和BluetoothTM(藍牙)無線技術(shù)。這樣,通信可以是對常規(guī)網(wǎng)絡(luò)的一種預定義的結(jié)構(gòu),或者簡單地為至少二個設(shè)備之間的特別(adhoc)通信。
Wi-Fi或無線保真允許在家中的睡椅邊、在旅館客房的床邊或在工作時從會議室連接到因特網(wǎng),而不要電線。Wi-Fi是一種類似于蜂窩電話的無線技術(shù),它允許這類設(shè)備,如計算機,在室內(nèi)和室外發(fā)送和接收數(shù)據(jù);在一個基站范圍之內(nèi)的任何地方。Wi-Fi網(wǎng)絡(luò)使用被稱為IEEE 802.11(a、b、g等)的無線電技術(shù),以提供安全、可靠、快速的無線連接。Wi-Fi網(wǎng)絡(luò)能用于把計算機相互連接、連接到因特網(wǎng)、以及連接到有線網(wǎng)絡(luò)(它使用IEEE 802.3或以太網(wǎng))。Wi-Fi網(wǎng)絡(luò)以未許可的2.4和5GHz無線電頻帶操作,具有11Mbps(802.11b)或54Mbps(802.11a)的數(shù)據(jù)速率,或者具有包含兩個頻帶(雙頻帶)的產(chǎn)品,從而該網(wǎng)絡(luò)能夠提供類似于許多辦公室中使用的基本10BaseT有線以太網(wǎng)的真實世界的性能。
現(xiàn)在參照圖7,示出了一個根據(jù)本發(fā)明的示例性計算環(huán)境700的示意性框圖。系統(tǒng)700包括一個或多個客戶機702??蛻魴C702可以是硬件和/或軟件(如線程、進程、計算設(shè)備)??蛻魴C702能例如通過采用本發(fā)明來容納cookie和/或關(guān)聯(lián)的上下文信息。系統(tǒng)700還包括一個或多個服務器704。服務器704也可以是硬件和/或軟件(如線程、進程、計算機設(shè)備)。服務器704能夠例如通過采用本發(fā)明來容納線程以實現(xiàn)傳輸。在客戶機702和服務器704之間的一種可能的通信可以是適用于在兩個或多個計算機進程之間傳輸?shù)臄?shù)據(jù)分組的格式。該數(shù)據(jù)分組可包括例如cookie和/或相關(guān)的上下文信息。系統(tǒng)700包括通信框架706(如,諸如因特網(wǎng)等全球通信網(wǎng)絡(luò)),它能被采用來以便于客戶機702和服務器704之間的通信。
通信可以通過有線(包括光纖)和/或無線技術(shù)來促進??蛻魴C702可操作地連接到用于儲存對客戶機702本地的信息(如cookie和/或關(guān)聯(lián)的上下文信息)的一個或多個客戶機數(shù)據(jù)存儲708。類似地,服務器704可操作地連接到用于儲存對服務器704本地的信息的一個或多個服務器數(shù)據(jù)存儲710。
以上所描述的包括本發(fā)明的例子。當然,不可能為了描述本發(fā)明的目的而描述組件或方法的每一可構(gòu)想的組合,但本領(lǐng)域的技術(shù)人員可以認識到,本發(fā)明的很多其它組合和置換都是可能的。因此,本發(fā)明旨在包含落在所附權(quán)利要求書的精神和范圍之內(nèi)的所有這樣的變換、修改和變化。此外,在詳細描述或者權(quán)利要求之中使用了術(shù)語“包括”的意義上,這一術(shù)語以類似于術(shù)語“包含”的方式意味著包含性的,如術(shù)語“包含”在權(quán)利要求書中被用作過渡詞時所解釋的。
權(quán)利要求
1.一種便于軟件開發(fā)環(huán)境的系統(tǒng),其特征在于,包括一未管理的應用程序,它便于處理文檔;以及一主宿組件,它與所述未管理的應用程序接口,使得所述未管理的應用程序擔當所述開發(fā)環(huán)境中的設(shè)計器。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述主宿組件支持對象鏈接和嵌入(OLE)技術(shù)。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述未管理的應用程序包括文字處理應用程序和電子表格應用程序中的至少一個。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,它還包括一集成接口,以便于將第三方未管理應用程序作為設(shè)計器集成到所述開發(fā)環(huán)境中。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述開發(fā)環(huán)境是集成開發(fā)環(huán)境(IDE)。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,它還包括一宿主適配器,它與所述未管理的應用程序接口,所述適配器是應用程序?qū)S玫?,以便于將所述未管理應用程序集成到所述開發(fā)環(huán)境中。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,它還包括一文檔主宿子組件,它便于主宿可在所述開發(fā)環(huán)境中操縱的文檔。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述文檔能夠使用所述未管理的應用程序和所述開發(fā)環(huán)境的至少一個來操縱。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述文檔是新文檔和已存在文檔之一。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,它還包括一設(shè)計器框架,它便于將所述主宿組件與所述開發(fā)環(huán)境接口。
11.如權(quán)利要求1所述的系統(tǒng),其特征在于,它便于主宿多個不同的未管理應用程序。
12.一種計算機可讀介質(zhì),其上存儲有用于實現(xiàn)權(quán)利要求1所述的系統(tǒng)的計算機可執(zhí)行指令。
13.一種采用權(quán)利要求1所述的系統(tǒng)的計算機。
14.如權(quán)利要求1所述的系統(tǒng),其特征在于,它還包括一托盤組件,它便于在所述IDE中呈現(xiàn)非可視數(shù)據(jù)。
15.一種方便IDE的系統(tǒng),其特征在于,包括一未管理的應用程序,它便于處理文檔;以及一主宿組件,它與所述未管理應用程序接口,使得所述未管理應用程序擔當所述IDE中的設(shè)計器,所述主宿組件還包括一集成接口,以便將第三方未管理應用程序作為設(shè)計器集成到所述開發(fā)環(huán)境中;一宿主適配器,它與所述未管理應用程序接口,所述適配器是應用程序?qū)S玫模员阌趯⑺鑫垂芾響贸绦蚣傻剿鲩_發(fā)環(huán)境中;以及一文檔主宿子組件,它便于主宿能夠在所述開發(fā)環(huán)境中操縱的文檔。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述主宿組件還包括一設(shè)計器框架,它便于將所述主宿組件與所述開發(fā)環(huán)境接口。
17.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述未管理應用程序的原有功能在所述IDE中是可用的。
18.如權(quán)利要求15所述的系統(tǒng),其特征在于,它便于向所述文檔添加控件和編輯所述控件的屬性。
19.如權(quán)利要求15所述的系統(tǒng),其特征在于,它便于將所述未管理應用程序和所述IDE的菜單的合并。
20.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述文檔包含嵌入和鏈接的對象的至少一個。
21.如權(quán)利要求15所述的系統(tǒng),其特征在于,它便于呈現(xiàn)一顯示代碼在后工程項目的屬性的屬性窗口。
22.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述設(shè)計器在一設(shè)計視圖和一代碼視圖中操作。
23.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述設(shè)計器能夠以二進制格式和XML格式中的至少一個來處理所述文檔。
24.一種計算機可讀介質(zhì),其上存儲有用于實現(xiàn)一種將一未管理應用程序集成到一開發(fā)環(huán)境中的方法的計算機可執(zhí)行指令,其特征在于,所述方法包括接收所述未管理應用程序;以及將所述未管理應用程序與所述開發(fā)環(huán)境接口,所述開發(fā)環(huán)境具有一宿主適配器,所述適配器專用于所述未管理應用程序,使得所述未管理應用程序可以作為所述開發(fā)環(huán)境中的設(shè)計器來訪問。
25.如權(quán)利要求24所述的方法,其特征在于,它還包括在所述開發(fā)環(huán)境中主宿一文檔,使得所述文檔可使用所述未管理應用程序的原有功能和所述開發(fā)環(huán)境的功能來操縱。
26.如權(quán)利要求24所述的方法,其特征在于,它還包括在所述開發(fā)環(huán)境中主宿一文檔,并且展示一與所述文檔相關(guān)聯(lián)的代碼在后文件,使得所述文件的內(nèi)容可以被操縱。
27.如權(quán)利要求24所述的方法,其特征在于,它還包括在所述開發(fā)環(huán)境中主宿一文檔,并且展示一與所述文檔的每一子文檔相關(guān)聯(lián)的代碼在后文件,使得每一文件的內(nèi)容可以被操縱。
28.如權(quán)利要求24所述的方法,其特征在于,它還包括提供一視圖控件,它響應于一事件而觸發(fā)。
29.一種將未管理應用程序集成到開發(fā)環(huán)境中的方法,其特征在于,包括接收所述未管理應用程序;用一宿主適配器將所述未管理應用程序與所述開發(fā)環(huán)境接口,所述適配器專用于所述未管理應用程序,使得所述未管理應用程序可以作為所述開發(fā)環(huán)境中的設(shè)計器來訪問;以及在所述開發(fā)環(huán)境中主宿一文檔,使得所述開發(fā)環(huán)境和所述未管理應用程序的功能可用于操縱所述文檔。
30.如權(quán)利要求29所述的方法,其特征在于,它還包括通過以下的至少一個來操縱所述文檔執(zhí)行將一控件拖放到所述文檔上的操作;察看與所述文檔相關(guān)聯(lián)的個數(shù)據(jù)在后文件;在所述數(shù)據(jù)在后文件中寫入已管理代碼;以設(shè)計模式和運行時模式操作所述設(shè)計器;呈現(xiàn)非可視數(shù)據(jù);以及將已管理對象繪制到所述文檔上。
31.如權(quán)利要求29所述的方法,其特征在于,它還包括為所述未管理應用程序提供一專用偏好頁面,使得當被集成到所述開發(fā)環(huán)境中時,所述未管理應用程序根據(jù)所述偏好而表現(xiàn)。
32.一種便于將一未管理應用程序集成到一開發(fā)環(huán)境中的系統(tǒng),其特征在于,包括用于接收所述未管理應用程序的裝置;用于將所述未管理應用程序與所述開發(fā)環(huán)境接口的裝置,所述開發(fā)環(huán)境具有一宿主適配器,所述適配器專用于所述未管理應用程序,使得所述未管理應用程序可以作為所述開發(fā)環(huán)境中的設(shè)計器來訪問。用于在所述開發(fā)環(huán)境中主宿一文檔的裝置,使得所述開發(fā)環(huán)境和所述未管理應用程序的功能可用于操縱所述文檔;以及用于操縱所述文檔的裝置。
33.如權(quán)利要求32所述的方法,其特征在于,所述用于操縱的裝置還包括用于以下的至少一個的操縱裝置實行將控件拖放到所述文檔上的操作;察看與所述文檔相關(guān)聯(lián)的數(shù)據(jù)在后文件;在所述數(shù)據(jù)在后文件中寫入已管理代碼;以設(shè)計模式和運行時模式操作所述設(shè)計器;呈現(xiàn)非可視數(shù)據(jù);以及在所述文檔上繪制已管理的對象。
34.如權(quán)利要求32所述的方法,其特征在于,它還包括用于展示所述文檔的屬性和組件以供操縱的裝置。
全文摘要
一種將未管理應用程序作為主宿的應用程序按一致且仍可用的方式集成到設(shè)計環(huán)境中的體系結(jié)構(gòu),使得開發(fā)人員可以使用該主宿的應用程序的原有功能,同時調(diào)節(jié)由該IDE提供的豐富的生產(chǎn)效率的特征。該IDE包括一個主宿組件,它包括一應用程序適配器,用于提供從該未管理應用程序到該IDE的接口。該IDE還包括一設(shè)計器框架,它向用戶提供對該IDE的設(shè)計器能力的訪問。該宿主適配器直接地和/或通過集成接口與設(shè)計器框架接口。由此,開發(fā)人員/用戶然后能夠訪問未管理應用程序的原有功能以及IDE的功能。這就提供了開發(fā)環(huán)境和主宿的應用程序之間的豐富的集成性,其最后的結(jié)果是該設(shè)計器與該IDE交互。
文檔編號G06F17/21GK1655120SQ20051000815
公開日2005年8月17日 申請日期2005年2月6日 優(yōu)先權(quán)日2004年2月13日
發(fā)明者R·奇特薩茲, S·羅克什, T·E·奎恩 申請人:微軟公司