Managed meets functional

Blog about programming and having fun with .Net

About me

 Venice, 2009

profile for Alexander Galkin on Stack Exchange, a network of free, community-driven Q&A sites

Project Euler

Greetings here in my blog!
My name is Alexander Galkin. I was born 1979 in Kazan, Russia, where I graduated in child medicine.
Since 2001 I live in Hamburg, Germany and work as a freelancer software and database architect and trainer for Microsoft technologies.

 Microsoft Certified Trainer
Microsoft Certified Professional Developer
MCTS Logo
MCITP Logo

Calendar

<<  May 2012  >>
MoTuWeThFrSaSu
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar

Class diagram for CodeDom namespace in .Net

CodeDom namespace in .Net is one of several ways to develop your own compiler or source code generator in .Net. Even somewhat abandoned, it currently support for following languages:

  • C# (native, out-of-the-box),
  • VB.NET (native, out-of-the-box)
  • F# (native, out-of-the-box)
  • IronPython

CodDom provides you with the classes to build your own abstract syntax tree of your code, which can be either compiled to "binary" aka CIL or translated "back" to a high-order general purpose language from the list above. This explains why it is rather a complex namespace with many classes and non-trivial class hierarchy. If you try to build class diagram for this namespace you come up with the following image:

Since it is absolutely impossible to work with diagram I prepared a set of diagrams covering large constellations of classes.

So, here you have:

  1. A general overview of CodeDom namespace classes with "pruned" tree.

  2. Collections and enums.

  3. CodeStatement

  4. CodeType

  5. CodeExpression

     

So, feel free to use these diagrams in your work. There is no explicit license attached to these images (I haven't drawn them, just used the VS2010 designer), so in case of a question just consider my work being a public domain.


Permalink | Comments (0) | Post RSSRSS comment feed
Comments are closed