CodeDom
From RemObjects Software
The .NET framework includes a set of classes in the CodeDOM namespace, called the Code Document Object Model. These classes make it possible generate source code for .NET languages without knowing the target language beforehand.
There are several providers included with .NET: CSharp, VB.NET and Javascript. Oxygene comes with it's own CodeDom provider.
Another feature of the provider is to compile the input, given in the document model, to a compiled assembly. Either directly to memory as a dynamically loaded and generated assembly, or as an executable. ASP.NET uses this mechanism to compile the ASPX pages on demand when the user first requests them. CodeDom is limited in the constructs that are supported, extended language features like foreach loops or language specific options are not allowed.
CodeDom also features a Code Parser, this parser is used by the WinForms designer to read back the generated code to a form. The CodeParser class is fairly limited in that it can only support the features exposed by the CodeDom namespace, any other constructs are unsupported.
