Extensible and queryable strong types
AssigneeMicrosoft Technology Licensing, LLC
InventorsMichael Gall, Michael Fruergaard Pontoppidan, Henrik Jakobsen
Life of this patent
Estimating the term…
Abstract
Data type configuration data is expressed and deployed to a database system to obtain a relational representation of the data types in addition to the compile code representation. Users or developers extend the data types by adding data to the relational representation, and the runtime environment operates off of the relational representation. Because the data types are extended (such as by creating new entities) using the data type tables in the relational representation, the extensions obtain the benefits of the type checking performed at compile time.
Claims20
A computer-implemented method comprising:
- receiving a type-checked compiled code representation of a set of data objects associated with an application, each data object being defined as a class and includes corresponding compiled code representation metadata that define properties of the data object,
- the compiled code representation metadata being generated by a compiler
- compiling application source code, and
- performing type checking to detect type errors;
- generating a relational representation of the set of data objects that stores relational representation metadata that is copied from the compiled code representation metadata;
- generating a user interface display that displays at least a portion of the relational representation and includes an object extension user input mechanism;
- based on an indication of user actuation of the object extension user input mechanism, modifying the relational representation metadata to define an extension to the set of data objects;
- based on an indication of a runtime execution request, comparing version information associated with the relational representation and the compiled code representation;
- based on the comparison, automatically performing a synchronization method that synchronizes the relational representation with the compiled code representation by:
- identifying additional metadata in the compiled code representation;
- and
- adding the additional metadata to the relational representation;
- and
- instructing a runtime environment to perform a runtime operation that:
- instantiates the set of data objects using the synchronized relational representation, and
- is independent of the compiled code representation of the set of data objects.
A computer system, comprising:
- a computer processor;
- and
- memory storing instructions executable by the computer processor, wherein the instructions configure the computer system to:
- receive a type-checked compiled code representation of a set of data objects associated with an application, each data object being defined as a class and includes corresponding compiled code representation metadata that define object properties,
- the compiled code representation metadata being generated by a compiler
- compiling application source code, and
- performing type checking to detect type errors;
- generate a relational representation of the set of data objects that stores relational representation metadata that is copied from the compiled code representation metadata;
- generate a user interface display that displays at least a portion of the relational representation and includes an object extension user input mechanism;
- based on an indication of user actuation of the object extension input mechanism, modify the relational representation metadata to define an extension to the set of data objects;
- automatically perform a synchronization method that synchronizes the relational representation with the compiled code representation by:
- identifying additional metadata in the compiled code representation;
- and
- adding the additional metadata to the relational representation;
- and
- instruct a runtime environment to perform a runtime operation that
- instantiates the set of data objects using the synchronized relational representation, and
- is independent of the compiled code representation of the set of data objects.
A computer-implemented method, comprising:
- obtaining source code that defines a set of data objects in a computing system, each data object being defined as a class that includes corresponding property metadata;
- compiling, by a compiler that performs type-checking, the source code to generate a type-checked compiled code representation of the set of data objects;
- generating a relational representation of the set of data objects that includes a field that stores metadata that is copied from the compiled code representation metadata and corresponds to the property metadata of the class;
- generating a user interface display that displays at least a portion of the relational representation of the data object and includes an object extension user input mechanism;
- based on an indication of user actuation of the object extension user input mechanism, modifying the relational representation metadata to define an extension to the one or more data objects;
- automatically performing a synchronization method that synchronizes the relational representation with the compiled code representation by:
- identifying additional metadata in the compiled code representation;
- and
- adding the additional metadata to the relational representation;
- and
- instructing a runtime environment to perform a runtime operation for the computing system, wherein the runtime operation:
- instantiates the set of data objects using the synchronized relational representation, and
- is independent of the compiled code representation of the set of data objects.
Dependencies are inferred from the claim text.