We began this chapter by introducing the Class Designer toolbox and the types it provides. Unlike the visual designers described in Chapter 2 through 4, the items in the Class Designer toolbox are "types" rather than "prototypes." Furthermore, because these types represent interfaces, enumerations, structures, and other types besides classes, we can think of this designer more accurately as a Type Designer (though, of course, Class Designer sounds better and in any case is consistent with UML).
Class Designer may be used as a means to visualize existing code (a picture is worth a thousand words), and as a means of creating and structuring new code. Both uses were demonstrated, in the "From Code to Class Diagrams" and "From Class Diagrams to Code" sections, respectively. We showed that various types — not just classes — may be represented in Class Designer, and demonstrated the relationships that may exist between them, including inheritance and association.
Having covered the basics, we then discussed some advanced topics such as model-code synchronization, representation of .NET Framework classes on diagrams, patterns, and dynamic modeling. In the case of dynamic modeling, we suggested some workarounds that enable you to simulate UML statechart diagrams and collaboration diagrams, as a stopgap until Visual Studio provides dynamic modeling capabilities.
Finally, we highlighted some of the similarities and differences between Visual Studio 2005 class diagrams and the class diagrams that you might have seen in other UML tools.