MSDNから始めることをお勧めします:http://msdn.microsoft.com/en-us/library/dd233052.aspx
基本的に、DLRには2つのバージョンがあります。1つは.NET 4に付属しており、もう1つはcodeplexのオープンソースバージョンです。
.NETのDLRは、System.Coreの一部です。ただし、言語とフレームワークは、DLRと連携するために独自のバインダーを必要とします。C#の場合、これはMicrosoft.CSharp.dllにあるC#ランタイムバインダーです。したがって、C#で「動的」と宣言したものはすべて、最初にC#ランタイムバインダーによって処理され、次にDLRに送られます。
codeplex上のDLRには、明らかに独自のDLL(現在はMicrosoft.Scripting)が必要でした。基本的に、DLRは、IronPythonの担当者が、自分たちが行ったことをIronPythonだけでなく多くの場所で使用できることに気付いたときに始まりました。そこで、彼らはコードをリファクタリングし、別のDLRレイヤーを作成しました。このDLRレイヤーは後で.NETに組み込まれ、これは2つのバージョンが分岐したものです。
.NETバージョンは、実際にはオープンソースバージョンよりも機能が少なくなっています。したがって、.NETで独自の動的言語を開発したい場合は、オープンソースバージョンを使用してください。一部のMSチームが(Silverlightのように)動的機能をサポートすることを決定した場合、通常は.NETFrameworkにあるものを使用する必要があります。
C#の動的機能を使用するだけであれば、基本的にDLRについて心配する必要はありません(ExpandoObjectやDynamicObjectなどの優れたクラスを提供するSystem.Dynamic名前空間だけが興味深いかもしれません)。DLRで頻繁に使用されるもう1つの名前空間(厳密にはその一部ではありません)は、式ツリーを使用した操作に使用されるSystem.LINQ.Expressionsです。このリリースではDLR用に拡張されており、DLRオープンソースバージョンと.NETFrameworkの両方で見つけることができます。