Patent ID: 7984107

Claim:
A computer-implemented method for generating a proxy assembly on a client according to metadata of a real assembly located on a server, the computer implemented method comprising: providing, on the server, a real assembly that includes real assembly code for causing real assembly functionality, wherein the real assembly includes a type identifier that indicates a type of real assembly and a method for causing the real assembly functionality; parsing, on the server, the real assembly to identify the type identifier; determining, on the server, that the type identifier is a proxy type by identifying the type identifier in a list of proxy types; generating, on the server, reflection data related to the real assembly, wherein the reflection data includes any properties related to the real assembly, any attributes related to the real assembly, and any values related to the real assembly, wherein the reflection data does not include the method, wherein the reflection data does not include the real assembly code; optimizing, on the server, the reflection data, wherein optimizing includes: recording properties of the reflection data that include a same reference, excluding references to a framework of the server when framework data exists on the client, and identifying recursive data by identifying any of the properties of the real assembly listed more than twice within a sequence, wherein a value of any of the properties listed more than twice within the sequence is indicated with a null indicator; generating, on the server, a data stream for the optimized reflection data, wherein generating the data stream includes writing the type identifier to the data stream, writing an identifier for the properties that include the same reference, omitting framework data, and setting recursive data to null; receiving, on the client, the data stream; identifying, on the client, the type identifier of the received data stream; and building, on the client, a proxy assembly having a type identified by the type identifier, wherein any properties of the data stream are built to the type, wherein fields are generated for any properties built to the type, wherein property data is populated to the fields, wherein attributes of the data stream are built to the type, wherein local client methods are added to the type to provide real assembly functionality without the real assembly code.