Patent application number | Description | Published |
20080282315 | Host control of partial trust accessibility - Various technologies and techniques are disclosed for providing host control of partial trust accessibility. A framework allows libraries to be identified as partial trust callers allowed to indicate that the libraries are allowed to be called from partially trusted code by default. The framework allows libraries to be identified as partial trust callers enabled to indicate the libraries could be called from partially trusted code, but not by default. A hosting application is notified that a particular library has been loaded. If the particular library has been identified as partial trust callers allowed, then a determination is received from the hosting application on whether to remove or keep partial trust accessibility for the particular library. If the particular library has been identified as partial trust callers enabled, then a determination is received from the hosting application on whether or not to enable partial trust accessibility for the particular library. | 11-13-2008 |
20090126011 | APPLICATION SECURITY MODEL - Performing security sensitive operations with an application security model. Security agnostic code is executed. The security agnostic code is identified as not having authorization to perform a security sensitive operation. Executing the security agnostic code includes calling code identified as security safe critical code. In response to the security agnostic code calling the security safe critical code, the security safe critical code is executed. The security safe critical code includes functionality for performing validity checks. Executing the security safe critical code includes performing an validity check for the security agnostic code. When the security agnostic code passes the validity check, code identified as security critical code is called. In response to the security safe critical code calling the security critical code, the security critical code is executed. The security critical code is authorized to perform the security sensitive operation. | 05-14-2009 |
20090319554 | UNIFIED METADATA FOR EXTERNAL COMPONENTS - A system and method for facilitating execution of multiple assemblies in a framework, in which the assemblies use a component external to the framework, is provided. A runtime manager may retrieve metadata from each of the assemblies, and selectively insert the metadata into a unified types object, so that metadata corresponding to equivalent type definitions is shared. When each assembly is executed, the combined metadata may be used to invoke or otherwise interact with the external component. | 12-24-2009 |
20090319991 | Managed code type equivalence - The determination of whether two managed code types are of equivalent types on the basis of a comparison between type identifiers of the managed types. The type identifiers may be independent of an assembly in which the managed types are created, a namespace of the corresponding managed type, or a name of the corresponding managed type. Accordingly, the type equivalence determination may be made to be quite flexible, thereby potentially resulting in better type equivalence determinations in of managed types. | 12-24-2009 |
20090320007 | LOCAL METADATA FOR EXTERNAL COMPONENTS - A system and method for facilitating execution of a computer program in a framework, in which the computer program uses a component external to the framework is provided. The computer program is generated by compiling corresponding source code to produce generated code, extracting metadata corresponding to the external component, and combining the generated code with the metadata. The extracted metadata may be a partial subset of the metadata corresponding to the external component. When the computer program is executed, the combined metadata may be used to invoke or otherwise interact with the external component. | 12-24-2009 |
20100058283 | FLEXIBLE BASE CLASS LIBRARY - Mechanisms that allow frameworks significant flexibility in varying the library of common base classes in a manner that better suits the domain of applications served by the framework. Instead of providing the base class library, the runtime provides a data contract for the data structure of each base class. The frameworks can then define each base class in a custom way so long as the data contract is honored. Thus, for example, the framework may provide custom framework-specific methods and/or properties as is appropriate for the framework. Another framework might define the base classes in a different way. | 03-04-2010 |
20100180264 | HANDLING MULTIPLE DEFINITION OF TYPES - User assemblies can be created by a compiler that can handle more than one type definition during execution. Local copies are created for respective authoritative types in a code library, and the local copies are marked with a local type identifier. An authoritative type identifier (e.g., a globally unique identifier (GUID)) is copied from the authoritative type to the local type, and functions and properties associated with the local type are also copied from the authoritative type. Authoritative types are resolved for requested types when a local assembly references a local type from a compiled user assembly. The local type can be identified by a local type identifier, and an authoritative type can be retrieved from the code library that has a same authoritative type identifier as the requested type. A local copy of the retrieved authoritative type can be copied to the local assembly under compilation. The compiler can then emit user assemblies that comprise merely local types. | 07-15-2010 |
20110302564 | Library Conformity Checker - A library management system may compare contracts between programming libraries to identify unions, intersections, and differences between libraries. The management system may have a contract analyzer that may remove the contract definition from an existing library to form a library contract. The library contract may be managed as a first class item within a programming environment, and may be used as a reference for comparing existing and new versions of the library. The library management system may create reference libraries for programmers to write applications using two or more intersecting libraries, among other uses. | 12-08-2011 |
20110307858 | PRE-COMPILING HOSTED MANAGED CODE - A hosted pre-compilation system is described herein that provides a way to enable ahead-of-time compilation for managed code running inside a host. The host triggers ahead-of-time compilation at application runtime, after any configuration settings are available. The host can choose which modules to compile, when to compile them, and where to persist the generated images. Upon detecting a module load, the host can trigger pre-compilation, provide the loader an existing pre-compiled image of the module, or do nothing. The runtime/platform validates the integrity of any host-supplied pre-compiled image and provides application programming interfaces (APIs) to inform the host when an image becomes invalid and fails to load. The platform also provides APIs to let the host trigger compilation of binaries at any time relevant to the host, and to generate the images either synchronously or in a background process. | 12-15-2011 |
20130042258 | RUNTIME SYSTEM - Various embodiments provide an ability to describe, independent of a programming language, one or more interfaces associated with an operating system. Alternately or additionally, a compiler associated with a specific programming language can be configured to map the independent interface description(s) to the specific programming language. In some embodiments, an application can be configured to programmatically determine one or more interfaces of the operating system. | 02-14-2013 |
20130066927 | MANAGING OBJECT LIFETIME IN A CYCLIC GRAPH - The present invention extends to methods, systems, and computer program products for managing object lifetime in a cyclic graph. Embodiments of the invention include reclaiming allocated system resources, for example, from a graph of objects that mixes different resource reclamation techniques (such as reference counting and garbage collection). In response to determining that garbage collection is to be performed, references between GC objects and Ref. Counted objects are detected. A reference type (e.g., direct, indirect, standard, tracked, weakened, etc.) for any detected references is also determined. Garbage collection is performed to determine if any allocated system resources can be reclaimed. Garbage collection considers references and references types between GC objects and Ref. Counted objects when determining if objects are to be reclaimed. | 03-14-2013 |
20130067053 | EFFICIENTLY PROVIDING MULTIPLE METADATA REPRESENTATIONS OF THE SAME TYPE - Embodiments are directed to dynamically adapting metadata for use with a native data encoding and to efficiently modifying object model type references. In one scenario, a computer system instantiates a metadata reader over an object model description to access various portions of metadata in the object model description. The metadata reader is configured to read native metadata, where native metadata is metadata represented in an encoding that is expected by the metadata reader. The metadata reader determines that the accessed metadata is encoded in a non-native encoding and then determines which metadata modifications are to be performed to transform the non-native encoding into a native encoding. The computer system then dynamically adapts the metadata of the object model from a non-native encoding to a native encoding according to the determined modifications. As such, the object model is readable by a native runtime. | 03-14-2013 |
20140325534 | RUNTIME SYSTEM - Various embodiments provide an ability to describe, independent of a programming language, one or more interfaces associated with an operating system. Alternately or additionally, a compiler associated with a specific programming language can be configured to map the independent interface description(s) to the specific programming language. In some embodiments, an application can be configured to programmatically determine one or more interfaces of the operating system. | 10-30-2014 |
20140379740 | EFFICIENTLY PROVIDING MULTIPLE METADATA REPRESENTATIONS OF THE SAME TYPE - Embodiments are directed to dynamically adapting metadata for use with a native data encoding and to efficiently modifying object model type references. In one scenario, a computer system instantiates a metadata reader over an object model description to access various portions of metadata in the object model description. The metadata reader is configured to read native metadata, where native metadata is metadata represented in an encoding that is expected by the metadata reader. The metadata reader determines that the accessed metadata is encoded in a non-native encoding and then determines which metadata modifications are to be performed to transform the non-native encoding into a native encoding. The computer system then dynamically adapts the metadata of the object model from a non-native encoding to a native encoding according to the determined modifications. As such, the object model is readable by a native runtime. | 12-25-2014 |