亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

在保護用戶自定義的情況下合并對用戶界面組件的修改的制作方法

文檔序號:6360864閱讀:224來源:國知局
專利名稱:在保護用戶自定義的情況下合并對用戶界面組件的修改的制作方法
在保護用戶自定義的情況下合并對用戶界面組件的修改背景企業(yè)經(jīng)常需要針對它們的特定行業(yè)定制的軟件系統(tǒng)。例如,牙科醫(yī)生可能需要幫 助預(yù)定約會并向保險公司發(fā)送賬單的軟件系統(tǒng)。在另一個示例中,房地產(chǎn)經(jīng)紀人可能需要幫助維持客戶聯(lián)系人并幫助生成購買合同的軟件系統(tǒng)。這些企業(yè)特定的軟件系統(tǒng)中有許多需要相同的一般類型的功能。在前面的示例中,牙科醫(yī)生的軟件系統(tǒng)和房地產(chǎn)經(jīng)紀人的軟件系統(tǒng)可能需要數(shù)據(jù)庫服務(wù)、Web訪問服務(wù),以及客戶聯(lián)系人管理服務(wù)。服務(wù)是向其他程序提供支持的程序或例程。為每個企業(yè)特定的軟件系統(tǒng)的這些共同的類型的功能重新創(chuàng)建軟件代碼既費時又費錢。因此,開發(fā)了平臺應(yīng)用。平臺應(yīng)用提供這些共同的類型的功能。例如,平臺應(yīng)用可以提供數(shù)據(jù)庫服務(wù)和基本客戶聯(lián)系人管理服務(wù)。然后,其他軟件開發(fā)人員使用這樣的平臺應(yīng)用作為在其上開發(fā)軟件“解決方案”的平臺。這些解決方案可以向平臺應(yīng)用添加功能,以便解決特定行業(yè)的企業(yè)的需求。例如,一個解決方案可以使用平臺應(yīng)用所提供的客戶聯(lián)系人管理服務(wù)和數(shù)據(jù)庫服務(wù)來創(chuàng)建針對牙科專業(yè)人員的需求定制的解決方案。企業(yè)可以在平臺應(yīng)用上安裝一個或多個這樣的解決方案。除向平臺應(yīng)用添加功能之外,解決方案還可以修改平臺應(yīng)用的用戶界面。例如,解決方案可以向平臺應(yīng)用的用戶界面添加按鈕或表單。用戶界面是程序的用戶與其進行交互的一部分。此外,在某些情況下,企業(yè)能夠進一步自定義平臺應(yīng)用的用戶界面。例如,企業(yè)可以自定義平臺應(yīng)用的用戶界面以隱藏按鈕或重新標記菜單項。在另一個示例中,企業(yè)可以自定義平臺應(yīng)用的用戶界面以添加字段或從表單中移除字段。通常,每當(dāng)企業(yè)安裝、卸載或更新構(gòu)建在平臺應(yīng)用上的解決方案時,這樣的自定義都會丟失。由于企業(yè)會花費相當(dāng)大的時間和資源來對用戶界面進行自定義,因此,重新應(yīng)用自定義會不方便,并且昂貴。概述應(yīng)用顯示用戶界面(UI)組件??蛻舳丝梢詫⒆远x應(yīng)用到此Π組件。在客戶端將自定義應(yīng)用到UI組件之后,客戶端修改包含修改UI組件的解決方案的解決方案集。在各種實施例中,客戶端可以以各種方式修改解決方案集。例如,客戶端可以向解決方案集添加解決方案,從解決方案集中移除解決方案,更新已經(jīng)在解決方案集中的解決方案,或以其他方式修改解決方案集。在客戶端修改解決方案集之后,應(yīng)用顯示Π組件的新版本。解決方案所提供的修改被應(yīng)用于UI組件的新版本。另外,自定義保持應(yīng)用于UI組件,無需客戶端手動將自定義重新應(yīng)用到UI組件。提供本發(fā)明內(nèi)容是為了介紹一些概念。這些概念在以下詳細描述中進一步描述。本發(fā)明內(nèi)容并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。附圖簡述圖I是示出了示例系統(tǒng)的框圖。
圖2是示出了示例解決方案集的框圖。圖3是示出了由解決方案集中的解決方案對應(yīng)用的用戶界面組件所引起的示例改變的框圖。圖4A和4B是示出了關(guān)于客戶端的示例細節(jié)的框圖。圖5是示出了客戶端所使用的示例計算系統(tǒng)的框圖。圖6是示出了安裝具有更改列表的解決方案的示例操作的流程圖。圖7是示出了卸載具有更改列表的解決方案的示例操作的流程圖。圖8是示出了更新具有更改列表的解決方案的示例操作的流程圖。圖9是示出了安裝具有差異描述符的解決方案的示例操作的流程圖。

圖10是示出了卸載具有差異描述符的解決方案的示例操作的流程圖。圖11是示出了更新具有差異描述符的解決方案的示例操作的流程圖。圖12是示出了示例計算設(shè)備的框圖。詳細描述圖I是示出了示例系統(tǒng)100的框圖。如圖I的示例所示,系統(tǒng)100包括客戶端102??蛻舳?02是諸如企業(yè)實體(例如,企業(yè)、合伙企業(yè)、公司等等)、政府實體(例如,部門、局、機構(gòu)等等)、非企業(yè)實體(例如,基金會、非盈利企業(yè)等等)之類的實體或個人。客戶端102使用應(yīng)用104。應(yīng)用是被設(shè)計用于有助于執(zhí)行特定任務(wù)的程序。在各實施例中,應(yīng)用104可以是各種類型的應(yīng)用。例如,在某些實施例中,應(yīng)用104可以是諸如MICROSOFT DYNAMICS 應(yīng)用之類的客戶關(guān)系管理(CRM)應(yīng)用。在其他實施例中,應(yīng)用104可以是文字處理應(yīng)用、電子表格應(yīng)用、Web應(yīng)用、筆記記錄應(yīng)用,或另一種類型的應(yīng)用。應(yīng)用104是平臺應(yīng)用。在其原有形式下,應(yīng)用104可以提供由客戶端102所需的功能中的一些。然而,在其原有形式下,應(yīng)用104可能不提供由客戶端102所需的功能中的全部。例如,客戶端102可以是房地產(chǎn)經(jīng)紀公司。在此示例中,應(yīng)用104提供用于管理客戶端聯(lián)系人信息和用于存儲文檔的特征,但是不提供與房地產(chǎn)生意相關(guān)的任何特殊特征。獨立軟件供應(yīng)商(ISV) 106生產(chǎn)擴展應(yīng)用104的功能的解決方案108。例如,解決方案108可以擴展應(yīng)用104的功能以提供與房地產(chǎn)生意相關(guān)的特殊特征。例如,在此示例中,解決方案108可以擴展應(yīng)用104的功能,以提供用于管理有關(guān)房地產(chǎn)經(jīng)紀公司正在銷售的房地產(chǎn)的信息的特征。如果客戶端102需要解決方案108的所提供的額外的功能,則客戶端102可以獲取并安裝解決方案108。在某些情況下,解決方案108所提供的額外的功能可能仍不能足以滿足客戶端102的需要。例如,客戶端102可以專營買賣公寓大樓。在此示例中,解決方案108的額外的功能可能不足以捕捉公寓大樓業(yè)務(wù)的一些細微差異別。因此,客戶端102可以獲取并安裝提供除應(yīng)用104和解決方案108所提供的功能之外的功能的另一個解決方案(未示出)。例如,其他解決方案可以構(gòu)建在解決方案108所提供的功能之上,以提供用于管理公寓大樓關(guān)聯(lián)文檔的特征。如此,應(yīng)用104的功能可以通過多個解決方案擴展多次。為了擴展應(yīng)用104的功能,解決方案108可以修改應(yīng)用104的用戶界面(UI)組件110。在某些實施例中,UI組件110是應(yīng)用104的UI內(nèi)的分離的組件。例如,UI組件110可以是一種表單。表單是帶有為輸入信息而預(yù)留的空間的結(jié)構(gòu)化文檔。在另一個示例中,UI組件110是一種選項列表。選項列表是用戶可以從中選擇的項的列表。在再一個不例中,Π組件110可以是一種控件條帶組件??丶l帶組件是其中一組工具欄被置于選項卡條中的選項卡上的Π組件。在再一個示例中,Π組件110是工具欄。工具欄是一行或一條激活功能的可點擊的圖標或按鈕。在再一個示例中,Π組件110是站點圖。站點圖是到其他Π組件的鏈接的列表。例如,站點圖可包括表單的列表或到與各種任務(wù)相關(guān)聯(lián)的Π組件的鏈接的列表。在其他實施例中,Π組件110是應(yīng)用104的完整的UI。解決方案108的安裝可以以各種方式修改Π組件110。例如,Π組件110可以是一種表單。在此示例中,解決方案108的安裝可以修改Π組件110以在表單中包括多一些或少一些字段,或重新排列表單中的字段。在另一個示例中,解決方案108的安裝可以修改UI組件110,以包括額外的元件,諸如按鈕、下拉框、文本輸入字段、菜單、菜單項,或其他類型的控件。在圖形用戶界面中,控件是屏幕中的可以被用戶操縱以執(zhí)行動作的對象。元件是出現(xiàn)在用戶界面中的東西,諸如文本、控件、圖片、鏈接、區(qū)域、列、背景等等。在另一個示例中,解決方案108可以修改Π組件110,以從Π組件110中移除元件。在再一個示例中,解決方案108可以修改Π組件110,以改變Π組件110中的元件的內(nèi)容或位置。在某些情況下,客戶端102可能喜歡解決方案108所提供的額外的功能,但是可能不喜歡在安裝解決方案108之后UI組件110的外觀。例如,客戶端102可能發(fā)現(xiàn)表單中的一個特定字段在表單底部而不是在表單的頂部是不方便的。在另一個示例中,客戶端102可能希望將其公司徽標放置在UI組件110中,以便使應(yīng)用104顯得像它僅僅為客戶端102構(gòu)建的。因此,應(yīng)用104允許客戶端102自定義Π組件110。例如,應(yīng)用104允許客戶端102隱藏UI組件110中的不需要的控件,更改UI組件110中的控件的名稱或標記,重新排列UI組件110中的元件,向UI組件110中添加圖像等等。除能夠自定義應(yīng)用104最初所提供的Π組件110的各方面之外,客戶端102還可以自定義UI組件110的由一個或多個解決方案修改的各方面。例如,解決方案108可以向Π組件110添加額外的按鈕。在此示例中,客戶端102可能發(fā)現(xiàn)此額外的按鈕不太有用,并可以自定義Π組件110,以隱藏此額外的按鈕。在某些情況下,客戶端102可以投入大量時間和資金來針對其特定需求自定義UI組件110。因此,如果每當(dāng)客戶端102修改安裝的解決方案的集合(即,解決方案集)時客戶端的對Π組件110的自定義都丟失的話,客戶端102會感到灰心。例如,如果每當(dāng)客戶端102安裝、更新或卸載解決方案時客戶端的對Π組件110的自定義都會丟失,則會使人感到灰心。為避免再次手動對Π組件110應(yīng)用自定義的需要,客戶端102可以完全不安裝額外的解決方案或可能對特定解決方案感到不敏感的(locked-in)。這可能會抑制對ISV 106和客戶端102的損害的解決方案的市場。如本說明書所描述的,應(yīng)用104顯示Π組件110的自定義的版本。UI組件110的自定義的版本是向其中應(yīng)用了客戶端自定義的Π組件110的版本。在對解決方案集進行修改之后,應(yīng)用104顯示Π組件110的新的自定義的版本。Π組件110的新的自定義的版本是向其中應(yīng)用了解決方案集中的解決方案所提供的修改的Π組件110的版本。此外,客戶端自定義保持應(yīng)用于Π組件110的修改的版本,無需手動將適用的客戶端自定義應(yīng)用到UI組件110。圖2是示出了示例解決方案集200的框圖。如圖2的示例所示,解決方案集200包括基本解決方案202。基本解決方案202是應(yīng)用104所提供的。在任何解決方案安裝在應(yīng)用104上之前,基本解決方案202提供應(yīng)用104的初始功能?;窘鉀Q方案202提供基本接口定義?;窘涌诙x是包含定義Π組件110的基本版本的內(nèi)容和布局的數(shù)據(jù)的文件。文件是信息的完整的、帶名稱的集合。Π組件110的基本版本是當(dāng)沒有解決方案安裝在應(yīng)用104上并且沒有客戶端自定義應(yīng)用于UI組件110時顯示的UI組件110的版本。為定義UI組件110的基本版本的內(nèi)容和布局,基本接口定義包括描述Π組件110的基本版本的內(nèi)容和布局的數(shù)據(jù)。例如,基本接口定義可包括表示哪些控件位于Π組件110中以及這些控件位于Π組件110內(nèi)的什么地方的數(shù)據(jù)。在各實施例中,基本接口定義可以以各種方式來格式化。例如,在某些實施例中,基本接口定義被格式化為可擴展標記語言(XML)文件。在其他實施例中,基本接口定義被格式化為標準通用標記語言(SGML)文件。如圖2的示例所示,解決方案集200還包括受管理的解決方案204和受管理的解決方案206。受管理的解決方案204和受管理的解決方案206是擴展基本解決方案202的功能的解決方案。例如,受:管理的解決方案204可以擴展基本解決方案202的功能以提供牙科診所預(yù)約服務(wù)。在此示例中,受管理的解決方案206可以擴展受管理的解決方案204的功能,以使得牙科診所職員能夠為看牙病預(yù)約與保險公司進行結(jié)算。在本說明書中,受管理的解決方案204和206被稱為“受管理的”解決方案,因為這些解決方案中的軟件代碼是由除客戶端102以外的實體創(chuàng)建和維護的(即,管理)。例如,受管理的解決方案204和/或受管理的解決方案206可以由ISV 106或另一個ISV進行管理。當(dāng)安裝受管理的解決方案204時,通過將受管理的解決方案204所提供的修改應(yīng)用到基本接口定義來創(chuàng)建修改的接口定義。修改的接口定義對Π組件110的修改的版本進行定義。例如,修改可以應(yīng)用于基本接口定義,以便未包括在Π組件110的基本版本內(nèi)的額外的元件被包括在UI組件110的修改的版本中,以便UI組件110的基本版本中的元件被隱藏在UI組件110的修改的版本中,UI組件110的基本版本中的元件在UI組件110的修改的版本中被重命名或重新定位,或以其他方式被修改。當(dāng)安裝受管理的解決方案206時,通過將受管理的解決方案206所提供的修改應(yīng)用到修改的接口定義來創(chuàng)建進一步修改的接口定義。進一步修改的接口定義對Π組件110的進一步修改的版本進行定義。例如,額外的更改可以應(yīng)用于修改的接口定義,以便元件被添加到UI組件110的修改的版本,Π組件110的修改的版本的元件被隱藏,或Π組件110的修改的版本的元件以別的方式被修改。此外,如圖2的示例所示,解決方案集200包括自定義解決方案208。在概念上,自定義解決方案208表示對UI組件110的客戶端自定義。當(dāng)客戶端102執(zhí)行自定義UI組件110的動作時,通過將更改應(yīng)用到進一步修改的接口定義來生成自定義的接口定義。自定義的接口定義對Π組件110的自定義的版本進行定義。例如,客戶端自定義可以應(yīng)用于UI組件110的進一步修改的版本,以便元件被添加到UI組件110的進一步修改的版本,UI組件Iio的進一步修改的版本的元件被隱藏,或Π組件110的進一步修改的版本的元件以別的方式被修改。在某些實施例中,應(yīng)用110使用2008年12月10日提交的美國專利申請12/331,451號中所描述的類型的數(shù)據(jù)庫系統(tǒng)來管理組件堆棧中的組件,該專利申請的全部內(nèi)容以引用的方式并入本文中。圖3是示出了由解決方案集200中的解決方案對Π組件110所引起的改變的框圖。如圖3的不例所不,基本解決方案202提供定義UI組件110的基本版本以包括按鈕“S”的基本接口定義。受管理的解決方案204向基本接口定義提供修改。應(yīng)用受管理的解決方案204所提供的修改導(dǎo)致定義包括按鈕“A”的UI組件110的修改的版本的修改的接口定義。此外,受管理的解決方案206向修改的接口定義提供修改。應(yīng)用受管理的解決方案206所提供的修改導(dǎo)致定義包括按鈕“B”的UI組件110的進一步修改的版本的進一步修改的接口定義。自定義解決方案208向進一步修改的接口定義提供修改。應(yīng)用自定義解決方案208所提供的修改導(dǎo)致定義其中按鈕“B”被隱藏的UI組件110的最后的版本的最后的接口定乂。如圖3的示例所示,Π組件110的最后版本包括按鈕“S”和按鈕“A”,但不包括按鈕 “B”。圖4A和4B是示出了關(guān)于客戶端102的示例細節(jié)的框圖。應(yīng)該理解,在其他實施例中,客戶端102可包括除圖4A和4B的示例中所示出的計算系統(tǒng)以外的計算系統(tǒng)。如圖4A的示例所示,客戶端102可包括服務(wù)器計算系統(tǒng)400、網(wǎng)絡(luò)402,以及用戶計算系統(tǒng)404A到404N (統(tǒng)稱為“用戶計算系統(tǒng)404”)。服務(wù)器計算系統(tǒng)400是提供應(yīng)用104和Web服務(wù)406的計算系統(tǒng)。解決方案被安裝在服務(wù)器計算系統(tǒng)400中,但不安裝在用戶計算系統(tǒng)404中。用戶計算系統(tǒng)404是與客戶端102相關(guān)聯(lián)的用戶所使用的計算系統(tǒng)。例如,客戶端102的雇員可以使用用戶計算系統(tǒng)404。網(wǎng)絡(luò)402促進用戶計算系統(tǒng)404和服務(wù)器計算系統(tǒng)400之間的通信。在各實施例中,網(wǎng)絡(luò)402是以各種方式實現(xiàn)的。例如,在某些實施例中,網(wǎng)絡(luò)402是局域網(wǎng)。在其他實施例中,網(wǎng)絡(luò)402是諸如因特網(wǎng)之類的廣域網(wǎng)。用戶計算系統(tǒng)404通過網(wǎng)絡(luò)402與Web服務(wù)406交換消息,以便與應(yīng)用104進行通信。由Web服務(wù)406向用戶計算系統(tǒng)404所發(fā)送的消息可以包含表示應(yīng)用104的UI組件110的數(shù)據(jù)。由用戶計算系統(tǒng)404向Web服務(wù)406所發(fā)送的消息包括表示與Π組件110進行交互的請求的數(shù)據(jù)。用戶計算系統(tǒng)404解釋此數(shù)據(jù),以向用戶計算系統(tǒng)404的用戶顯示Π組件110。如此,用戶計算系統(tǒng)404的用戶可以與應(yīng)用104進行交互,盡管應(yīng)用104實際上不在用戶計算系統(tǒng)404上運行。圖4B示出了其中客戶端102包括用戶計算系統(tǒng)404,但是不一定包括網(wǎng)絡(luò)402或服務(wù)器計算系統(tǒng)400的替換實施例。在圖4B的示例中,應(yīng)用104的單獨的副本安裝在單獨的用戶計算系統(tǒng)404中。解決方案單獨地安裝在用戶計算系統(tǒng)404中的每一個系統(tǒng)中。圖5是示出了關(guān)于客戶端102所使用的計算系統(tǒng)500的示例細節(jié)的框圖。在各實施例中,計算系統(tǒng)500可以是圖4A的示例中所示出的服務(wù)器計算系統(tǒng)400,圖4B的示例中所示出的用戶計算系統(tǒng)404,或客戶端102所使用的其他計算系統(tǒng)。如圖5的示例所示,計算系統(tǒng)500提供處理系統(tǒng)502和數(shù)據(jù)存儲系統(tǒng)504。應(yīng)該理解,圖5示出了計算系統(tǒng)500的簡化視圖。在現(xiàn)實中,計算系統(tǒng)500包括許多其他邏輯和物理部件。數(shù)據(jù)存儲系統(tǒng)504存儲表示數(shù)據(jù)庫506和計算機可讀指令的數(shù)據(jù)。當(dāng)處理系統(tǒng)502中的一個或多個處理單元運行這些計算機可讀指令時,計算機可讀指令導(dǎo)致計算系統(tǒng)500提供應(yīng)用104。應(yīng)用104包括一組解決方案模塊5IOA到5ION (統(tǒng)稱為“解決方案模塊510”)。解決方案模塊510中的每一個都包含計算機可讀指令,計算機可讀指令,當(dāng)由處理系統(tǒng)502運行時,導(dǎo)致應(yīng)用104提供與解決方案相關(guān)聯(lián)的額外的功能。在各實施例中,解決方案模塊510可以被以各種方式構(gòu)建。例如,在某些實施例中,解決方案模塊510中的一個或多個包括已編譯的聞級編程語目代碼。不例聞級編程語目包括C、C++、C#、Java等等。在另一個示例中,解決方案模塊510中的一個或多個包括諸如JavaScript、Perl、VBScript等等之類的已解釋編程語言代碼。在再一個示例中,解決方案模塊510中的一個或多個可以包括工作流應(yīng)用。工作流應(yīng)用是從開始到結(jié)束幫助跟蹤和管理項目中的活動的一組程序。在各實施例中,數(shù)據(jù)庫506可以以各種方式實現(xiàn)。例如,在某些實施例中,數(shù)據(jù)庫506被實現(xiàn)為一個或多個平面文件的集合。在其他實施例中,數(shù)據(jù)庫506被實現(xiàn)為關(guān)系數(shù)據(jù)庫。本說明書的其余部分將數(shù)據(jù)庫506作為關(guān)系數(shù)據(jù)庫來討論。然而,應(yīng)該理解,在某些實施例中,數(shù)據(jù)庫506不被實現(xiàn)為關(guān)系數(shù)據(jù)庫。如圖5的示例所示,數(shù)據(jù)庫506包括解決方案表512、解決方案-組件表514,以及組件特定的表516。表的示例類型包括以行和列為特征的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)占據(jù)由行-列交叉所形成的每一單元格。解決方案表512包括解決方案集中的每一個解決方案的條目。解決方案的解決方案表512中的條目可包括有關(guān)解決方案的各種信息。例如,解決方案表512中的條目可包括解決方案的名稱、解決方案的版本號、解決方案的描述,以及解決方案的解決方案標識符。解決方案-組件表514包括將解決方案與解決方案組件關(guān)聯(lián)的條目。解決方案組件是解決方案的一部分。解決方案的解決方案組件可以在解決方案內(nèi)扮演各種角色。例如,解決方案的解決方案組件可包括幫助跟蹤和管理公寓大樓的銷售的工作流組件。在此示例中,解決方案的解決方案組件還可以包括可使用戶能夠輸入涉及公寓大樓的銷售的信息的一組表單組件。此外,在此示例中,解決方案的解決方案組件可包括指定要應(yīng)用于Π組件110的控件條帶的更改的控件條帶組件。解決方案-組件表514中的每一條目都包括解決方案標識符字段和組件標識符字段。解決方案標識符字段表示解決方案的解決方案標識符。組件標識符字段指示解決方案的解決方案組件的標識符。解決方案-組件表514可在解決方案標識符字段中包括具有相同解決方案標識符的多個條目。如此,解決方案-組件表514可以指定解決方案的每一個解決方案組件的組件標識符。組件特定的表516包括包含特定類型的解決方案組件所特定的信息的條目。雖然為簡單起見在圖5的示例中只示出了單個組件特定的表516,但是,數(shù)據(jù)庫506可包括安裝在應(yīng)用104中的解決方案所使用的每一種類型的解決方案組件的單獨的組件特定的表。例如,組件特定的表516可包括修改UI組件110的條帶組件的組件所特定的信息。在此示例中,組件特定的表516中的每一條目都具有組件標識符字段和更改列表字段。在此示例中,組件標識符字段指定組件標識符。如此,應(yīng)用104可以將解決方案-組件表514中的條目與組件特定的表516中的條目相關(guān)聯(lián)。在此示例中,更改列表字段指定更改列表。如在本說明書中別處所比較詳細地描述的,更改列表是一組更改項。更改項中的每一個都指定要應(yīng)用于定義Π組件110的版本的接口定義的更改。對Π組件110的修改可以由解決方案的更改列表中的解決方案來提供。在另一個示例中,組件特定的表516可包括表單特定的信息。在此示例中,組件特定的表516中的每一條目都具有組件標識符字段和差異描述符字段。組件標識符字段指定組件標識符。差異描述符字段包含差異描述符。如在本說明書中別處比較詳細地描述的,差異描述符是表示源接口定義和目的地接口定義之間的差異的文檔。對Π組件110的修改可以由解決方案的差異描述符中的解決方案來提供。圖6是示出了安裝具有更改列表的解決方案的示例操作600的流程圖。如圖6的示例所示,提供自定義的接口定義(602)。自定義的接口定義對向其中應(yīng)用了客戶端自定義的UI組件110的版本進行定義。另外,應(yīng)用104還將自定義更改列表存儲在數(shù)據(jù)庫506中(604)。自定義更改列表表達客戶端自定義。自定義更改列表包括與對Π組件110的客戶端自定義相關(guān)聯(lián)的一組更改項。每一更改項都指定要應(yīng)用于接口定義的更改。例如,更改列表可包括指定特定控件將被隱藏的更改項。在另一個示例中,更改列表可包括指定特定元件將被添加的更改項。在再一個示例中,更改列表可包括指定特定元件的標記將被更改的更改項。每當(dāng)客戶端102自定義Π組件110時,應(yīng)用104可以更新自定義更改列表中的更改項。更改列表中的更改項可以指代基本接口定義(即,由基本解決方案202所提供的接口定義)中的元件。此外,更改列表中的更改項可以指代修改的接口定義中的元件。例如,新的解決方案可以構(gòu)建在另一個解決方案之上。在此示例中,其他解決方案的更改列表中的更改項可以指定給定元件將被添加到UI組件110中。在此示例中,新的解決方案的更改列表中的更改項可以指定給定元件將被隱藏。下面是示例更改列表。此示例更改列表只包括通過“CustomAction”標記表示的單個更改項。此更改項將新按鈕添加到控件條帶元件"Mscrm. Form. {! EntityLogicalName}.MainTab. Save. Controls. _children"。定義新按鈕的XML代碼通過“按鈕”標記來表示。
<RibbonDiffXml>
<CustomActions>
〈CustomAction Id=nMyISV. all. form·Close·CustomAction,r
Location= M crm.Form.{ i EntityLogicalName}.MainTab. Save . Co
權(quán)利要求
1.一種方法,包括提供計算系統(tǒng);由所述計算系統(tǒng)顯示自定義的用戶界面(UI)組件,所述自定義的Π組件是向其中應(yīng)用了客戶端自定義的UI組件的版本,所述UI組件是應(yīng)用的UI的組件;修改解決方案集,所述解決方案集包括一個或多個修改所述UI組件的解決方案;在修改所述解決方案集之后,由所述計算系統(tǒng)顯示新自定義的Π組件,所述新自定義的UI組件是向其中應(yīng)用了所述解決方案集中的解決方案所提供的修改并且所述客戶端自定義保持應(yīng)用于所述UI組件的所述UI組件的版本,所述客戶端自定義保持應(yīng)用于所述UI組件,無需向所述Π組件手動重新應(yīng)用所述客戶端自定義。
2.如權(quán)利要求I所述的方法,其特征在于,所述解決方案向所述應(yīng)用添加功能。
3.如權(quán)利要求I所述的方法,其特征在于,修改所述解決方案集包括向所述解決方案集添加新的解決方案。
4.如權(quán)利要求3所述的方法,其特征在于,其中,自定義的接口定義對所述自定義的UI組件進行定義;其中,向所述解決方案集添加所述解決方案包括接收指定更改的更改列表;通過將適用的更改應(yīng)用到非自定義的接口定義,來生成新的非自定義的接口定義,所述非自定義的接口定義是定義通過將所述解決方案集中的每一個解決方案所提供的所述修改應(yīng)用到所述Π組件的基本版本所產(chǎn)生的所述Π組件的版本的接口定義;在將所述適用的更改應(yīng)用到所述非自定義的接口定義之后,通過將自定義更改列表中的更改應(yīng)用到所述新的非自定義的接口定義來生成新的自定義的接口定義,所述自定義更改列表表達所述客戶端自定義,所述新的自定義的接口定義對所述新的自定義的UI組件進行定義。
5.如權(quán)利要求3所述的方法,其特征在于,其中,向所述解決辦法集添加所述新的解決方案包括接收所述新的解決方案的差異描述符,所述新的解決方案的所述差異描述符是表示源接口定義和目的地接口定義之間的差異的文檔,所述源接口定義和所述目的地接口定義對所述Π組件的不同的版本進行定義;生成自定義差異描述符,所述自定義差異描述符是表示自定義的接口定義和非自定義的接口定義之間的差異的文檔,所述自定義的接口定義對所述自定義的Π組件進行定義,所述非自定義的接口定義對通過將所述解決方案所提供的所述修改應(yīng)用到所述Π組件的基本版本所產(chǎn)生的所述Π組件的版本進行定義;通過將所述新的解決方案的所述差異描述符應(yīng)用到所述非自定義的接口定義來生成新的非自定義的接口定義;以及通過將所述自定義差異描述符應(yīng)用到所述新的非自定義的接口定義來生成新的自定義的接口定義,所述新的自定義接口定義對所述新的自定義的Π組件進行定義。
6.如權(quán)利要求I所述的方法,其特征在于,修改所述解決方案集包括更新已經(jīng)在所述解決方案集中的解決方案。
7.如權(quán)利要求I所述的方法,其特征在于,修改所述解決方案集包括從所述解決方案集中移除給定解決方案。
8.如權(quán)利要求7所述的方法,其特征在于,從所述解決方案集中移除給定解決方案包括生成自定義差異描述符,所述自定義差異描述符是表示自定義的接口定義和非自定義的接口定義之間的差異的文檔,所述自定義的接口定義對所述自定義的UI組件進行定義,所述非自定義的接口定義對通過將所述解決方案所提供的所述修改應(yīng)用到所述Π組件的基本版本所產(chǎn)生的所述Π組件的版本進行定義;通過將除所述給定解決方案以外的所述解決方案的差異描述符應(yīng)用到定義所述Π組件的所述基本版本的基本接口定義,來生成更新的非自定義的接口定義;以及通過將所述自定義差異描述符應(yīng)用到所述更新的非自定義的接口定義來生成新的自定義的接口定義,所述新的自定義接口定義對所述新的自定義的Π組件進行定義。
9.如權(quán)利要求I所述的方法,其特征在于,其中,所述應(yīng)用是客戶關(guān)系管理(CRM)應(yīng)用。
10.如權(quán)利要求I所述的方法,其特征在于,其中,所述客戶端自定義包括下列各項中的一項或多項從所述UI組件中移除一個或多個元件的客戶端自定義,重命名所述UI組件中的一個或多個元件的客戶端自定義,以及改變所述UI組件中的一個或多個元件的位置的客戶端自定義。
11.一種計算系統(tǒng),包括處理系統(tǒng);以及存儲了計算機可讀指令的數(shù)據(jù)存儲系統(tǒng),所述計算機可讀指令在由所述處理系統(tǒng)執(zhí)行時,導(dǎo)致所述計算系統(tǒng)顯示自定義的UI組件,所述自定義的UI組件是向其中應(yīng)用了客戶端自定義的UI組件的版本,所述UI組件是應(yīng)用的UI的組件;通過添加、刪除或更新解決方案集中的解決方案來修改所述解決方案集,所述解決方案集包括一個或多個修改所述Π組件的解決方案,所述解決方案集中的所述一個或多個解決方案向所述應(yīng)用添加功能;以及在修改所述解決方案集之后,顯示新自定義的Π組件,所述新自定義的Π組件是向其中應(yīng)用了所述解決方案集中的解決方案所提供的修改并且所述客戶端自定義保持應(yīng)用于所述Π組件的所述Π組件的版本,所述客戶端自定義保持應(yīng)用于所述Π組件,無需向所述Π組件手動重新應(yīng)用所述客戶端自定義。
12.如權(quán)利要求11所述的計算系統(tǒng),其特征在于,當(dāng)所述計算機可讀指令導(dǎo)致所述計算系統(tǒng)通過向所述解決方案集添加新的解決方案來修改所述解決方案集時,所述計算機可讀指令導(dǎo)致所述計算系統(tǒng)接收所述新的解決方案的更改列表;通過將所述新的解決方案的所述更改列表中的更改應(yīng)用到非自定義的接口定義,來生成新的非自定義的接口定義,所述非自定義的接口定義對通過將所述解決方案所提供的所述修改應(yīng)用到所述Π組件的基本版本所產(chǎn)生的所述Π組件的版本進行定義;通過將自定義更改列表中的更改應(yīng)用到所述新的非自定義的接口定義來生成新的自定義的接口定義,所述自定義更改列表指定所述客戶端自定義,所述新的自定義的接口定義對所述新的自定義的Π組件進行定義。
13.如權(quán)利要求11所述的計算系統(tǒng),其特征在于,其中,所述計算機可讀指令進一步導(dǎo)致所述計算系統(tǒng)存儲所述解決方案集中的所述解決方案的更改列表;以及存儲表達所述客戶端自定義的自定義更改列表;其中,當(dāng)所述計算機可讀指令導(dǎo)致所述計算系統(tǒng)通過從所述解決方案集中移除給定解決方案來修改所述解決方案集時,所述計算機可讀指令導(dǎo)致所述計算系統(tǒng)通過將除所述給定解決方案以外的所述解決方案的所述更改列表中的更改應(yīng)用到定義所述Π組件的所述基本版本的基本接口定義,來生成新的非自定義的接口定義;以及通過將自定義更改列表中的更改應(yīng)用到所述新的非自定義的接口定義來生成新的自定義的接口定義,所述新的自定義接口定義對所述新的自定義的Π組件進行定義。
14.如權(quán)利要求13所述的計算系統(tǒng),其特征在于,其中,當(dāng)所述計算機可讀指令導(dǎo)致所述計算系統(tǒng)通過更新所述解決方案集中的給定解決方案來修改所述解決方案集時,所述計算機可讀指令導(dǎo)致所述計算系統(tǒng)生成非自定義的接口定義,所述非自定義的接口定義對通過將所述解決方案所提供的所述修改應(yīng)用到所述Π組件的基本版本所產(chǎn)生的所述Π組件的版本進行定義;生成自定義差異描述符,所述自定義差異描述符是表示自定義的接口定義和所述非自定義的接口定義之間的差異的文檔,所述自定義的接口定義對所述自定義的Π組件進行定義;通過將較早的差異描述符應(yīng)用到定義所述Π組件的所述基本版本的基本接口定義,來生成修改的接口定義,所述較早的差異描述符是所述解決方案集中的、在所述給定解決方案被安裝之前安裝的解決方案的差異描述符;通過將所述給定解決方案的更新的版本的差異描述符應(yīng)用到所述修改的接口定義,來生成進一步修改的接口定義;通過將較晚的差異描述符應(yīng)用到所述進一步修改的接口定義,來生成新的非自定義的接口定義,較晚的差異描述符是所述解決方案集中的、在所述給定解決方案被安裝之后安裝的解決方案的差異描述符;以及通過將所述自定義差異描述符應(yīng)用到所述新的非自定義的接口定義來生成新的自定義的接口定義,所述新的自定義接口定義對所述新的自定義的Π組件進行定義。
15.如權(quán)利要求13所述的計算系統(tǒng),其特征在于,當(dāng)所述計算機可讀指令導(dǎo)致所述計算系統(tǒng)通過移除所述解決方案集中的給定解決方案來修改所述解決方案集時,所述計算機可讀指令導(dǎo)致所述計算系統(tǒng)生成自定義差異描述符,所述自定義差異描述符是表示非自定義的接口定義和自定義的接口定義之間的差異的文檔,所述非自定義的接口定義對通過將所述解決方案集中的每一個解決方案所提供的所述修改應(yīng)用到所述Π組件的基本版本所產(chǎn)生的所述Π組件的版本進行定義,所述自定義的接口定義對所述自定義的Π組件進行定義;通過將除所述給定解決方案以外的解決方案的差異描述符應(yīng)用到定義所述Π組件的所述基本版本的基本接口定義,來生成更新的非自定義的接口定義;以及通過將所述自定義差異描述符應(yīng)用到所述更新的非自定義的接口定義來生成新的自定義的接口定義,所述新的自定義接口定義對所述新的自定義的Π組件進行定義。
全文摘要
應(yīng)用顯示用戶界面(UI)組件。客戶端可以將自定義應(yīng)用到此UI組件。在客戶端將自定義應(yīng)用到UI組件之后,客戶端修改包含修改UI組件的解決方案的解決方案集。在客戶端修改解決方案集之后,應(yīng)用顯示UI組件的新版本。解決方案集中的解決方案所提供的修改被應(yīng)用于UI組件的新版本。另外,自定義保持應(yīng)用于UI組件,無需客戶端手動將自定義重新應(yīng)用到UI組件。
文檔編號G06F3/0481GK102939612SQ201180028836
公開日2013年2月20日 申請日期2011年5月20日 優(yōu)先權(quán)日2010年6月11日
發(fā)明者H·萊薩馬瓜達拉馬, A·N·馬吉, T·M·皮倫, J·S·海德, 金榮華, R·卡恩, R·L·迪基森, M·安騰, J·C·羅賓遜, B·J·西蒙斯, N·J·帕特里克, V·A·歐姆索盧, A·沙哈, A·謝諾伊, B·斯瓦米納坦 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1