title: Microsoft Roslyn vs. CodeDom
body: <p>From a <a href="http://www.infoworld.com/d/application-development/microsofts-roslyn-reinventing-the-compiler-we-know-it-176671" rel="noreferrer">press release</a> yesterday on InfoWorld regarding the new <a href="http://www.microsoft.com/download/en/details.aspx?id=27746" rel="noreferrer">Microsoft Roslyn</a>:</p>
  
  <blockquote>
    <p>The most obvious advantage of this kind of "deconstructed" compiler is
    that it allows the entire compile-execute process to be invoked from
    within .Net applications. Hejlsberg demonstrated a C# program that
    passed a few code snippets to the C# compiler as strings; the compiler
    returned the resulting IL assembly code as an object, which was then
    passed to the Common Language Runtime (CLR) for execution. Voilà! With
    Roslyn, C# gains a dynamic language's ability to generate and invoke
    code at runtime.</p>
  </blockquote>
  
  <p>I've been able to do this since the release of .NET 4 with <a href="http://msdn.microsoft.com/en-us/library/system.codedom.compiler.codedomprovider.compileassemblyfromsource.aspx" rel="noreferrer"><code>CSharpCodeProvider.CompileAssemblyFromSource</code></a> which I in fact use in an ASP.Net project written awhile ago that does exactly that - allows a user to type in code into a textbox, choose assemblies/namespaces to reference, and then execute and display the output from that code on-the-fly for live environment code testing on Windows Azure.</p>
  
  <p>Is <code>CodeDom</code> part of / a precurser to Roslyn?  What's the special benefit of Roslyn over <code>CodeDom</code>?</p>