IP Library › Granted Patent US 9,959,114
Granted Patent B2
US 9,959,114 · App. 14/798,669 · Granted May 1, 2018

Representation of customizable types in a development environment

Inventors: Suriya Narayanan (Redmond, WA); Nitinkumar Shah (Seattle, WA); Zhonghua Chu (Redmond, WA); Ed V. Budrys (Redmond, WA); Tomasz Kaminski (Issaquah, WA); Liang Yu (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/71G06F8/33G06F8/36
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 9,959,114
App. No.
14/798,669
Granted
May 1, 2018
Kind
B2
Abstract

A computing system comprises, in one example, a difference generation component configured to access a type file representing a type in a base version of a computing system and identify a customization made to the type in the base version of the computing system to obtain a customized version of the computing system, and a type accessing component configured to serialize the customization into a customization file of a given file format, the customization file having a separate element representing each customization made to the type in the base version of the computing system to obtain the customized version of the computing system, the type accessing component storing the customization file as a separate file from the type file.

Claims (48)

1. A computing system comprising:

a processor; and

memory storing instructions executable by the processor, wherein the instructions, when executed, configure the computing system to:

access a type file representing a type in a first version of a computing system, wherein an object model defines a structure of properties and methods that define behavior of a runtime object derived from the type;

based on application of the object model to a second, customized version of the computing system, identify a customization made to the type in the first version of the computing system to obtain the second, customized version of the computing system;

serialize the identified customization into a customization file that is separate from the type file and stores a particular element representing the identified customization;

map the customization file to the type file; and

based on an indication of a request to execute the customized version in a runtime environment:

access the customization file based on the map,

de-serialize the customization file into a corresponding object representation of the customization,

access the type file representing the type, and

construct the customized version by applying the object representation of the customization to the type in the first version.

2. The computing system of claim 1 , wherein the customization file comprises an extensible markup language (XML) file.

3. The computing system of claim 1 , wherein the instructions, when executed, configure the computing system to:

based on analysis of the type against the object model, identify a customization made to a particular primitive component in the type in the first version.

4. The computing system of claim 3 , wherein the instructions, when executed, configure the computing system:

serialize the customization made to the particular primitive component into the customization file.

5. The computing system of claim 4 , wherein the object model represents a type system, and wherein the instructions, when executed, configure the computing system to:

identify primitive components in the type in the first version based on the type system; and

compare primitive components in the second, customized version to the corresponding primitive components in the type in the first version to identify a delta indicative of a customization difference between the first and second versions.

6. The computing system of claim 1 , wherein the instructions, when executed, configure the computing system to:

construct the customized version by disassembling the type in the first version into its primitive components and applying the object representation of the customization to the primitive components.

7. The computing system of claim 1 , wherein the instructions, when executed, configure the computing system to:

identify customizations made to the type in a plurality of different customization layers; and

serialize the customizations from the customization layers into separate customization files, each customization file corresponding to a particular one of the customization layers.

8. A computer-implemented method comprising:

accessing a type file representing a type in a first version of a computing system, wherein an object model defines a structure of properties and methods that define behavior of a runtime object derived from the type;

based on application of the object model to a second, customized version of the computing system, identifying a customization made to the type in the first version of the computing system to obtain the second, customized version of the computing system;

serializing the identified customization into a customization file that is separate from the type file and stores a particular element representing the identified customization;

mapping the customization file to the type file; and

based on an indication of a request to execute the customized version in a runtime environment:

accessing the customization file based on the map,

de-serializing the customization file into a corresponding object representation of the customization,

accessing the type file representing the type, and

constructing the customized version by applying the object representation of the customization to the type in the first version.

9. The computer-implemented method of claim 8 , wherein the customization file comprises an extensible markup language (XML) file.

10. The computer-implemented method of claim 8 , wherein identifying the customization comprises:

based on analysis of the type against the object model, identifying a customization made to a particular primitive component in the type in the first version.

11. The computer-implemented method of claim 10 , wherein identifying the customization comprises serializing the customization made to the particular primitive component into the customization file.

12. The computer-implemented method of claim 10 , wherein the object model represents a type system, and identifying the customization comprises:

identifying primitive components in the type in the first version based on the type system; and

identifying a delta indicative of a customization difference between the first and second versions based on a comparison of primitive components in the second, customized version to the corresponding primitive components in the type in the first version.

13. The computer-implemented method of claim 8 , wherein constructing the customized version comprises:

disassembling the type in the first version into its primitive components; and

applying the object representation to the primitive components.

14. The computer-implemented method of claim 8 , and further comprising:

identifying customizations made to the type in a plurality of different customization layers; and

serializing the customizations from the customization layers into separate customization files, each customization file corresponding to a particular one of the customization layers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2015
From: NARAYANAN, SURIYA; SHAH, NITINKUMAR; CHU, ZHONGHUA; BUDRYS, ED V.; KAMINSKI, TOMASZ; YU, LIANG
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 036078/0208 →
Continuity (2)
Provisional Application 62133780 · Mar 16, 2015
Related Publication 20160274907A1 · Sep 22, 2016