Skip to main content

Posts

Showing posts from March, 2010

DLR-Expando Object

ExpandoObject Class This class represents an object whose members can be dynamically added and removed at run time. This class implements the following intefaces IDynamicMetaObjectProvider IDictionary ICollection > IEnumerable > IEnumerable INotifyPropertyChanged (for details about these interfaces please go theough MSDN documentation) The ExpandoObject class enables developer to add and delete members of its instances at run time. This class is also used to set and get values of these members. It  supports dynamic binding, which enables developers to use standard syntax rather than  more complex complex syntax that are currently used. For example: consider an object _Pobj which has associated member named MyMember It can be invoked as _Pobj.MyMember rather than _Pobj .GetAttribute("MyMember"). The ExpandoObject class implements the standard Dynamic Language Runtime (DLR) interface IDynamicMetaObjectProvider, which enables to share instance

Dynamic Language Runtime (DLR)-An introduction

This month, I will try to to explore the .Net Framework 4.0 . Starting in the series is a general introduction to Dynamic runtime library. The DLR adds a set of services to the CLR for better supporting dynamic languages. Following are the key components of DLR. Common hosting model Expression Trees:shared abstract semantic tree representation DynamicSites,SiteBinders ,Rules:support to make it easy to generate fast dynamic code IdynamicMetaObjectProvider:shared dynamic type system Utilities :default binder, tuples, big integers, adapters for existing static types to participate in the IDynamicMetaObjectProvider protocol, support for new static types to easily participate in IDynamicMetaObjectProvider protocol Following figure  sums up all the key components of DLR Common Hosting ScriptRuntime : This is the starting point for hosting. The ScriptRuntime represents global script state, such as referenced assemblies and a global object (a ScriptScope). You can have m

C# 4.0-an Intoduction

C# 4.0-an Intoduction .Net Framework 4.0 is the buzzword currently. In this section I'll provide some useful links to get you started with C# 4.0 and try to explore the following new introductions in C# 4.0 Biginteger Complex Optional parameters Named parameters .Net Framwork 4.0 has introduced two new types: 1.Biginteger 2.Complex Biginteger BigInteger Example: BigInteger p = UInt64.MaxValue; BigInteger q = UInt64.MaxValue; BigInteger r = p * q; BigInteger is immutable(as is the string in C#) For Eamplew: BigInteger p = 1; p++; will result in the creation of a second BigInteger object, assigning it back to a. BigInteger has many static methods, such as the typical Parse(), TryParse(), and ToString() methods (which support hex format as well) found in other integer types, as well as mathematical helpers such as Pow(), Log(), Log10(), and others. Complex Newly added class(System.Numerics.Complex)can be used to represent imaginary numbers. Complex wraps both the real and i