There seems to be no easy process to upload pictures onto the server. But I found a good msdn article that explains, with pretty pictures, the Class Designer and its cohorts (ToolBox, Class Details Window, ClassView & SolutionExplorer).

Going forward I am going to assume that you can imagine the user experience when I refer to any interactions between Class Designer and its partners.

Hard Decisions

It is a difficult art juggling time to release, resources and features. Obviously we are forced to make some tough cuts and concentrate on making the features we are planning to visualize top notch. So I will outline all those C++ concepts we offer minimum or no support.

Old syntax for managed types

Class Designer is not a porting tool. Theoretically we should be able to reverse and forward engineer old managed syntax if you have set the right configurations on the project. But we will not officially guarantee support for old syntax for managed types.


There will be no UI that allows users to create a Typedef on the Class Designer. But if you have a Typedef in code it will be honored.

For example,

typedef int (*MyFunctionPointer) (int, char);

class Foo


            MyFunctionPointer ptrToHandler;


On the Class Designer you will see the variable “ptrToHandler” of type “MyFunctionPointer”.


There will be no UI that would allow the users to create a Union from the Class Designer. And there will be no UI that can visualize the contents of a Union. But if you have a variable or parameter of a particular union type then it will be displayed in the diagram.

There is a cool feature in Class Designer. Say you have this code

namespace SomeExampleCode



            class Order




            union DayTimeContact


                        char* homePhoneNumber;

                        char* email;



            class Customer


                         Order* order;

                         DayTimeContact customerContact;



In the Class Designer the user can drag and drop the Customer class from Class View. The user can right click the “order” field and choose “Show as Association”. We will pull the “Order” class into the Designer and establish a relationship between the class “Customer” and class “Order”.

Now that can’t be done with the field “customerContact” of type “DayTimeContact”, because DayTimeContact is a Union.

There are more Hard Decisions to defend J and I will table them soon.