IP Library › Granted Patent US 8,302,014
Granted Patent B2
US 8,302,014 · App. 12/814,084 · Granted Oct 30, 2012

Merging modifications to user interface components while preserving user customizations

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,302,014
App. No.
12/814,084
Filed
Jun 11, 2010
Granted
Oct 30, 2012
Kind
B2
Art Unit
3667
USPC
715/744
Abstract

An application displays a user interface (UI) component. A client can apply customizations to this UI component. After the client applies customizations to the UI component, the client modifies a solution set containing solutions that modify the UI component. After the client modifies the solution set, the application displays a new version of the UI component. Modifications provided by the solutions in the solution set are applied to the new version of the UI component. In addition, the customizations remain applied to the UI component without the client manually re-applying the customizations to the UI component.

Claims (64)

1. A method comprising:

providing a computing system;

displaying, by the computing system, a customized user interface (UI) component, the customized UI component being a version of a UI component to which client customizations have been applied, the UI component being a component of a UI of an application, wherein a customized interface definition defines the customized UI component;

modifying a solution set, the solution set comprising one or more solutions that modify the UI component, and modification including adding a new solution to the solution set, wherein adding the new solution to the solution set comprises:

receiving a change list that specifies changes;

generating a new non-customized interface definition by applying applicable changes to a non-customized interface definition, the non-customized interface definition being an interface definition that defines a version of the UI component that results from applying the modifications provided by each solution in the solution set to a base version of the UI component; and

after applying the applicable changes to the non-customized interface definition, generating a new customized interface definition by applying changes in a customization change list to the new non-customized interface definition, the customization change list expressing the client customizations, the new customized interface definition defining a new customized UI component; and

after the solution set is modified, displaying, by the computing system, the new customized UI component, the new customized UI component being a version of the UI component to which modifications provided by solutions in the solution set are applied and to which the client customizations remain applied to the UI component, the client customizations remaining applied to the UI component without manually re-applying the client customizations to the UI component.

2. The method of claim 1 , wherein the solutions add functionality to the application.

3. The method of claim 1 ,

wherein adding the new solution to the solution set comprises:

receiving a difference descriptor for the new solution, the difference descriptor for the new solution being a document that denotes differences between a source interface definition and a destination interface definition, the source interface definition and the destination interface definition defining different versions of the UI component;

generating a customization difference descriptor, the customization difference descriptor being a document that denotes differences between a customized interface definition and a non-customized interface definition, the customized interface definition defining the customized UI component, the non-customized interface definition defining a version of the UI component that results from applying the modifications provided by the solutions to a base version of the UI component;

generating a new non-customized interface definition by applying the difference descriptor for the new solution to the non-customized interface definition; and

generating a new customized interface definition by applying the customization difference descriptor to the new non-customized interface definition, the new customized interface definition defining the new customized UI component.

4. The method of claim 1 , wherein modifying the solution set comprises: updating a solution that is already in the solution set.

5. The method of claim 1 , wherein modifying the solution set comprises: removing a given solution from the solution set.

6. The method of claim 5 , wherein removing the given solution from the solution set comprises:

generating a customization difference descriptor, the customization difference descriptor being a document that denotes differences between the customized interface definition and the non-customized interface definition, the customized interface definition defining the customized UI component, the non-customized interface definition defining a version of the UI component that results from applying the modifications provided by the solutions to the base version of the UI component;

generating an updated non-customized interface definition by applying difference descriptors for ones of the solutions other than the given solution to a base interface definition that defines the base version of the UI component; and

generating a new customized interface definition by applying the customization difference descriptor to the updated non-customized interface definition, the new customized interface definition defining the new customized UI component.

7. The method of claim 1 , wherein the application is a Customer Relationship Management (CRM) application.

8. The method of claim 1 , wherein the client customizations include one or more of the following: client customizations to remove one or more elements from the UI component, client customizations to rename one or more elements in the UI component, and client customizations to change positions of one or more elements in the UI component.

9. The method of claim 1 , further comprising: exporting the client customizations for installation on another computing system.

10. A computing system comprising:

a processing system; and

a data storage system that stores computer-readable instructions that, when executed by the processing system, cause the computing system to:

display a customized UI component, the customized UI component being a version of a UI component to which client customizations have been applied, the UI component being a component of a UI of an application;

modify a solution set by adding, removing, or updating a solution in the solution set, the solution set comprising one or more solutions that modify the UI component, the one or more solutions in the solution set adding functionality to the application; and

after the solution set is modified, display a new customized UI component, the new customized UI component being a version of the UI component to which modifications provided by solutions in the solution set are applied and to which the client customizations remain applied to the UI component, the client customizations remaining applied to the UI component without manually re-applying the client customizations to the UI component;

store change lists for the solutions in the solution set; and

store a customization change list that expresses the client customizations;

wherein, when the computer-readable instructions cause the computing system to modify the solution set by removing a given solution from the solution set, the computer-readable instructions cause the computing system to:

generate a new non-customized interface definition by applying changes in the change lists for the solutions other than the given solution to a base interface definition that defines a base version of the UI component;

generate a new customized interface definition by applying changes in the customization change list to the new non-customized interface definition, the new customized interface definition defining the new customized UI component;

store a difference descriptor for each solution in the solution set; and

modify the solution set by updating a given solution in the solution set, the computer-readable instructions cause the computing system to:

generate a non-customized interface definition, the non-customized interface definition that defines a version of the UI component that results from applying the modifications provided by the solutions to the base version of the UI component;

generate a customization difference descriptor, the customization difference descriptor being a document that denotes differences between a customized interface definition and the non-customized interface definition, the customized interface definition defining the customized UI component;

generate a modified interface definition by applying earlier difference descriptors to the base interface definition that defines the base version of the UI component, the earlier difference descriptors being the difference descriptors for solutions in the solution set that were installed before the given solution was installed;

generate a further modified interface definition by applying the difference descriptor for an updated version of the given solution to the modified interface definition;

generate a new non-customized interface definition by applying later difference descriptors to the further modified interface definition, the later difference descriptors being the difference descriptors for solutions in the solution set that were installed after the given solution was installed; and

generate a new customized interface definition by applying the customization difference descriptor to the new non-customized interface definition, the new customized interface definition defining the new customized UI component.

11. The computing system of claim 10 , wherein when the computer-readable instructions cause the computing system to modify the solution set by adding a new solution to the solution set, the computer-readable instructions cause the computing system to: receive a change list for the new solution;

generate a new non-customized interface definition by applying changes in the change list for the new solution to a non-customized interface definition, the non-customized interface definition defining a version of the UI component that results from applying the modifications provided by the solutions to the base version of the UI component;

generate a new customized interface definition by applying changes in the customization change list to the new non-customized interface definition, the customization change list specifying the client customizations, the new customized interface definition defining the new customized UI component.

12. The computing system of claim 11 , wherein the UI component is one of: a control ribbon, a form, a picklist, and a site map.

13. The computing system of claim 10 , wherein when the computer-readable instructions cause the computing system to modify the solution set by removing a given solution in the solution set, the computer-readable instructions cause the computing system to:

generate a customization difference descriptor, the customization difference descriptor being a document that denotes differences between a non-customized interface definition and a customized interface definition, the non-customized interface definition defining a version of the UI component that results from applying the modifications provided by each of the solutions in the solution set to a base version of the UI component, the customized interface definition defining the customized UI component;

generating an updated non-customized interface definition by applying the difference descriptors for ones of the solutions other than the given solution to a base interface definition that defines the base version of the UI component; and

generating a new customized interface definition by applying the customization difference descriptor to the updated non-customized interface definition, the new customized interface definition defining the new customized UI component.

14. The computing system of claim 10 , wherein the client customizations include one or more of the following: client customizations to remove one or more elements from the UI component, client customizations to rename one or more elements in the UI component, and client customizations to change positions of one or more elements in the UI component.

15. A computer storage medium storing computer-readable instructions that, when executed by a computing system, cause the computing system to:

display a customized version of a user interface (UI) component, the customized version of the UI component being a version of the UI component to which client customizations have been applied, the UI component being a component of a UI of a Customer Relationship Management (CRM) application, wherein the client customizations include one or more of the following: client customizations to remove one or more elements from the UI component, client customizations to rename one or more elements in the UI component, and client customizations to change positions of one or more elements in the UI component

adding a first solution to a solution set, the solution set comprising one or more solutions that modify the UI component and add functionality to the CRM application;

after the adding the first solution to the solution set, display a modified customized version of the UI component, the modified customized version of the UI component being a version of the UI component to which modifications provided by solutions in the solution set and the first solution are applied and to which the client customizations remain applied to the UI component without manually re-applying the client customizations to the UI component;

removing a second solution from the solution set;

after the removing the second solution from the solution set, display a further modified customized version of the UI component, the further modified customized version of the UI component being a version of the UI component to which the modifications provided by solutions in the solution set other than the second solution are applied and to which the client customizations remain applied to the UI component without manually re-applying the client customizations to the UI component;

modifying a third solution in the solution set; and

after the third solution is modified, display a yet further modified customized version of the UI component, the yet further modified customized version of the UI component being a version of the UI component to which the modifications provided by solutions in the solution set are applied and to which the client customizations remain applied to the UI component without manually re-applying the client customizations to the UI component, wherein modifying the third solution includes adding a new solution to the solution set, including:

receiving a difference descriptor for the new solution, the difference descriptor for the new solution being a document that denotes differences between a source interface definition and a destination interface definition, the source interface definition and the destination interface definition defining different versions of the UI component;

generating a customization difference descriptor, the customization difference descriptor being a document that denotes differences between a customized interface definition and a non-customized interface definition, the customized interface definition defining the customized UI component, the non-customized interface definition defining a version of the UI component that results from applying the modifications provided by the solutions to a base version of the UI component;

generating a new non-customized interface definition by applying the difference descriptor for the new solution to the non-customized interface definition; and

generating a new customized interface definition by applying the customization difference descriptor to the new non-customized interface definition, the new customized interface definition defining the new customized UI component.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2010
From: LEZAMA GUADARRAMA, HUMBERTO; MAGEE, ANDREW N.; PEELEN, TYLER M.; HEAD, JAMES S.; JIN, RONGHUA; KHAN, RUBAIYAT; DICKINSON, RICHARD L.; ANTENEH, MESGANAW; ROBINSON, JOHN C.; SIMONS, BRANDON J.; PATRICK, NICHOLAS J.; OMUSORU, VICENTIU ADRIAN; SHAH, ANKINI; SHENOY, ATUL; SWAMINATHAN, BHARATH
To: MICROSOFT CORPORATION
Reel/Frame 024568/0711 →
Continuity (1)
Related Publication 20110307798A1 · Dec 15, 2011