摘要:
The claimed subject matter provides a system and/or a method that facilitates querying data utilizing an explicit representation of an embedded language. An IEnumberable component can receive a data operation that can be employed on a collection of data utilizing at least one of an IEnumerable interface and an IEnumerable interface. A mirror component can provide a generic interface to query the collection of data by representing the collection of data as an expression tree utilizing at least one function that mirrors the at least one IEnumerable interface and the IEnumerable interface.
摘要:
Partial methods enable separation of method declaration and/or calls from method implementation. A partial method specifies a signature of a join or hook point in a class. Calls to a partial method specify a join or hook point in code that can optionally be linked with an actual method implementation of the same signature. Separate method implementations or other code related to a partial method are injected into a single program prior to execution. Unimplemented partial methods are treated as no operation instructions or otherwise ignored.
摘要:
Systems and methods facilitate type inference in a computer-programming environment. Type inference can be applied to generic method or function invocation in object-oriented languages to determine a type argument list left implicit by a programmer. One or more type arguments can be identified as a parameter type to which all other types in a set of associated parameter types can be converted.
摘要:
The subject disclosure pertains to systems and methods that facilitate retrieval of data. In particular, an application defined data shape can regulate loading of data for use in an object relational mapping system, enabling the object-oriented application to access data in a relational data base system. Data shapes define policies that control data retrieval, enabling efficient data loading. A data shape allows users to declaratively specify a set of policies to be applied to all queries associated with the data shape. In particular, data shapes can include policies that control eager loading. In addition, data shapes can also include filtering policies intended to reduce or limit data retrieved from a relational database
摘要:
Providing for read/write access to captured free variables expressed as environment data objects is disclosed herein. By way of example, free variables can be rewritten as a field of a private class, and accessed via an instance of the private class captured within the environment data object. In such a manner, no need of a placeholder or proxy function is required to access the free variable. Consequently, the subject innovation provides a simplified method for capturing free variables within expression trees and providing read/write access to such variables.
摘要:
A static type, called “dynamic”, is introduced into a statically bound programming language. An expression or subexpression that is defined as a static type called “dynamic” in the source code of a program written in the statically bound programming language, is bound based on its runtime type instead of on its compile time type. Binding can be performed based on a mixture of compile time and runtime types that are based on the specification of types of expressions in source code. This type of binding is called hybrid binding. Operations are bound using the runtime type of constituent expressions (i.e., the runtime type of a receiver, an argument, or an operand) typed as dynamic and the compile time type of static constituents. If any constituent expression of an operation is dynamic, binding occurs at runtime instead of at compile time.
摘要:
The present invention extends to methods, systems, and computer program products for transforming source code to await execution of asynchronous operations. Embodiments of the invention simplify authoring and use of asynchronous methods, by generating statements that use well-defined awaitable objects to await completion of asynchronous operations. For example, a computer system can transform a statement that requests to await the completion of an asynchronous operation into a plurality of statements that use a predefined pattern of members of an awaitable object corresponding the asynchronous operation. The pattern can include one or more members configured to return a completion status of the asynchronous operation, one or more members configured to resume execution of the asynchronous method at a resumption point when the asynchronous operation completes, and one or more members configured to retrieve completion results. Accordingly, the plurality of statements can use these members to await execution of the asynchronous operation.
摘要:
The present invention extends to methods, systems, and computer program products for representing various programming elements with compiler-generated tasks. Embodiments of the invention enable access to the future state of a method through a handle to a single and composable task object. For example, an asynchronous method is rewritten to generate and return a handle to an instance of a builder object, which represents one or more future states of the asynchronous method. Information about operation of the asynchronous method is then passed through the handle. Accordingly, state of the asynchronous method is trackable prior to and after completing.
摘要:
The claimed subject matter provides a system and/or a method that facilitates querying data utilizing an explicit representation of an embedded language. An IEnumberable component can receive a data operation that can be employed on a collection of data utilizing at least one of an IEnumerable interface and an IEnumerable interface. A mirror component can provide a generic interface to query the collection of data by representing the collection of data as an expression tree utilizing at least one function that mirrors the at least one IEnumerable interface and the IEnumerable interface.
摘要:
A static type, called “dynamic”, is introduced into a statically bound programming language. An expression or subexpression that is defined as a static type called “dynamic” in the source code of a program written in the statically bound programming language, is bound based on its runtime type instead of on its compile time type. Binding can be performed based on a mixture of compile time and runtime types that are based on the specification of types of expressions in source code. This type of binding is called hybrid binding. Operations are bound using the runtime type of constituent expressions (i.e., the runtime type of a receiver, an argument, or an operand) typed as dynamic and the compile time type of static constituents. If any constituent expression of an operation is dynamic, binding occurs at runtime instead of at compile time.