The .NET framework may be far away now, but Microsoft is working really hard to complete the bits. I wasnt going to write about this, but after reading the information on the C# future page on MSDN I found it hard not to soak it all in and provide an overview of what is to come. | 5/13/2020 10:33:24 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the . and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. C# C# C# Managed Code Generics Language Integrated Query C# Dynamic Programming C# Language Innovations Python Binder Ruby Binder COM Binder JavaScript Binder Object Binder Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching | 5/13/2020 10:59:55 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the . and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. C# C# C# Managed Code Generics Language Integrated Query C# Dynamic Programming C# Language Innovations Python Binder Ruby Binder COM Binder JavaScript Binder Object Binder Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching IronPython IronRuby C# Others .NET object object calc = GetCalculator(); Type calcType = (); object res = ("Add", , null, new object[] { 10, 20 }); int sum = (res); Dynamic Language object ScriptObject calc = GetCalculator(); object res = ("Add", 10, 20); int sum = (res); Calculator calc = GetCalculator(); int sum = (10, 20); dynamic calc = GetCalculator(); int sum = (10, 20); Statically typed to be dynamic Dynamic method invocation Dynamic conversion dynamic calc = GetCalculator(); int sum = (10, 20); dynamic i = 3; (i); Under the cover dynamic d = new DynamicObject(); (); public abstract class DynamicObject : IDynamicObject { public virtual object GetMember(GetMemberBinder info); public virtual object SetMember(SetMemberBinder info, object value); public virtual object DeleteMember(DeleteMemberBinder info); public virtual object .