Welcome to MSDN Blogs Sign in | Join | Help

Whitehorse Class Designer

I had promised last week that I would post some screen shots of the Whitehorse Class Designer tool. Here is one.

Notice that this diagram would be familiar to anyone used to UML notation. However, it is not a UML Class Diagram, but a visualization of CLR classes which could be either from VB or from C# projects. Underlying code artifacts (source files) are kept in sync with changes made using the Class Designer. Changes made to source files which affect elements of the diagram are likewise immediately synchronized. Feedback from developers who have used this designer has so far been largely positive.  To a developer it is a useful code visualization tool, and a place where the structure of an emerging program can be designed before any method body coding starts. There are no concepts exposed that are based on a generic type structure, as would a corresponding UML Class Diagram, and no odd extensions that have been grafted on to the surface to cope with CLR unique characteristics.

 

True, in its raw form, it offers no higher-level abstractions, but to tool developers (like us), it is built in exactly the same way that a designer for higher-level, more abstract domain-specific modeling language would be built (like one of the other Whitehorse designers, for example). We defined:

  • a metamodel, or abstract syntax graph, for the DSL (which is a meta representation of the CLR type system)
  • the mapping of the abstract syntax graph to a concrete syntax (boxes and lines in this case)
  • well-formedness rules for the language  (CLR type system constraints)
  • mappings from this abstract syntax to artifacts (C# or VB source files, in this case)

 Hence the Class Designer is very much part of our broader strategy for using DSLs to improve the application development process.

 

To get away from somewhat contrived examples, here’s a piece of a Class Designer screen created when asked to visualize a piece of the System.XML assembly.

 

Published Friday, March 05, 2004 7:00 PM by Keith Short

Comments

# re: Whitehorse Class Designer

Can you post some slightly less blurry images? It's hard to make out details on those screenshots because of the resampling.
Friday, March 05, 2004 8:06 PM by Brian Duff

# Whitehorse Class Designer

Friday, March 05, 2004 11:34 PM by Michael Swanson's Blog

# re: Whitehorse Class Designer

Keith,

This is excellent stuff. When I saw it at the PDC, I was literally blown away. The ability for designers/developers to update diagrams and have the code kept in sync is absolutely amazing. As an architect, I constantly create and update UML diagrams, and am always concerned about the diagrams getting outdated. Typically, diagrams are created during design and once developers start writing code, the diagrams go out-of-date because developers won't update the diagrams as they make changes to the code. The Whitehorse stuff seems to address that problem, and I very much look forward to it. BTW, any job openings on your team :-)
Friday, March 05, 2004 8:53 PM by Dave Donaldson

# re: Whitehorse Class Designer

If its not UML, then dont waste our time.
Saturday, March 06, 2004 3:23 AM by Ferris Beuller

# re: Whitehorse Class Designer

If you really need to do this today, full round trip engineering, Rational XDE does this today. It's a bit on the clunky side and seemingly more disjoint from the actual code base.

Saturday, March 06, 2004 8:18 AM by Barry Gervin

# re: Whitehorse Class Designer

Are you going to support ORM (Object Role Modelling) in Whitehorse? Do you see Object Role Modelling being in use by many developers? Will it still be supported in Visio?
Saturday, March 06, 2004 9:29 AM by Mark Speaker

# re: Whitehorse Class Designer

Well Mark, in my opinion, ORM is a superior form of data modeling and well supported in Visio. For Whidbey, I understand the ORM support will still be part of the Visio version that ships with the Enterprise Architect Visual Studio. ORM has an enthusiastic, but small, user community. We hope that that community will take up the challenge (when we're able to publish our designer-building tools and framework) of implementing ORM as a first-class DSL within our family of modeling languages.
Saturday, March 06, 2004 2:11 PM by Keith Short

# re: Whitehorse Class Designer

BTW, apologies for the blurry images, I'll update the links with better ones as soon as I can. In posting this article, I was severely image-posting challenged, but wanted to get up what I had :-)
Saturday, March 06, 2004 2:14 PM by Keith Short

# re: Whitehorse Class Designer

Gee that looks pretty, bugger all use elsewhere. Do we get fridge magnets with that to stick them there because other than that, this is as useful as that obscufator advert placement in vs.net 2003. I think its time to look for alternitive IDEs if theyre going in this direction of advert placements and bloat.
Saturday, March 06, 2004 3:41 PM by Ferris Beuller

# re: Whitehorse Class Designer

Ferris, you are so darn smart aren't you!

Monday, March 08, 2004 7:39 AM by Lynn

# re: Whitehorse Class Designer

Any chance this will make it into the "Professional" editon?
Monday, March 08, 2004 10:48 AM by Lynn

# re: Whitehorse Class Designer

Keith:

Any initution on the level of complexity involved in hosting UML 2.0 as a DSL in Whitehorse? This is just metamodel->visual syntax+well formedness rules, no artifacts. This is assuming that the modeling infrastructure will be available for third party extensions at some point.

Also, I think there is may be value in this example to provide a "standard UML" or "simplified" view. Simple lines and text, no use of icons or widgets (text/stereotype annotations only), and so on.

I find this more easy to print, read and sketch. One big advantage to UML notation is that it is visually simpler and easier to read and create. For example, how would I sketch a Whitehorse class on a whiteboard? Are the icons important? And so on. It think a "non-UI" view of models is very important.
Tuesday, March 09, 2004 12:44 AM by Nathan Dykman

# re: Whitehorse Class Designer

Keith:

I am wondering when drawing the graphs do you use gdi or gdi+
Tuesday, March 09, 2004 1:36 AM by Hjörtur A

# re: Whitehorse Class Designer

Keith,

Thanks for posting this info. I absolutely love it! It looks like you're delivering exactly what I need. Keep up the great work.

Once again you have made my day! :-)

Bill
Wednesday, March 10, 2004 5:29 AM by Bill Menees

# re: Whitehorse Class Designer

To Lynn:

Current plan is to include Class Designer almost in each and every Visual Studio SKU - including Professional edition.

Also wanted to comment on the size of Class Designer installation - it's quite different from what you expect from large modeling suites for UML which exist today - it's just 4MB total size! So it won't hurt your hard drive at all :-)

Thanks
/Dmitriy
Class Designer Team
Wednesday, March 10, 2004 12:16 PM by Dmitriy Vasyura

# re: Whitehorse Class Designer

I've upgraded the screen shot images as promised. Sorry it took so long. Dont forget to maximize your browser for best effect.
Wednesday, March 10, 2004 5:35 PM by Keith Short

# re: Whitehorse Class Designer

To Nathan:

I don't have a really solid feel yet for the effort required to build a new DSL as I explained in the article. This is mostly because we have been simultaneously building the underlying framework while building the first few tools based upon it. To implement all the current notation sets/tools in UML 2.0 would be an undertaking for sure, but picking say the task of implementing an Activity Diagram should be manageable by a small team (2-3 people) in a small number of weeks. The key variable is the amount of artifacts that mauct be generated and synced from the DSL.

Again, this is an opinionated guess based on work on the Class Designer, and could be wildly out in either direction. This is something we have to get more concrete on.
Friday, March 12, 2004 9:57 AM by Keith Short

# re: Whitehorse Class Designer

Keith:

Thanks for the qualified estimate. As you noted, it is a very rough estimate (subject to change), and understandably so.

As in many software projects, we are busy constructing the building at the very same time as the foundation.

At any rate, it seems to me UML 2.0 may be an undertaking, it is not by any stretch impossible. I see this as a very good thing.

Hopefully it will force others in the UML tool community to face up to the limits of profile-based extension and to see the advantages of metamodel-based approaches.

Another thing. Being able to use model information to fill in a Enterprise Template would be cool. Model template would extremely cool, but that's hard.

I look forward to seeing what other DSLs may be awaiting us.

Thanks again for your kind attention,

Nathan
Saturday, March 13, 2004 9:49 PM by Nathan Dykman

# re: Whitehorse Class Designer

I saw a demo of whitehorse as part of a webcast a month or so ago. It looks fantastic.

Do you have any idea if it will be in the beta releases of Whidbey or if there is any way to obtain it to use alongside the PDC release of Whidbey? I would love to have a try of it.

Neil
Thursday, March 18, 2004 11:06 AM by Neil Weller

# re: Whitehorse Class Designer

You will have a chance to try Class Designer in the Beta releases - we'd love to hear your feedback! Unfortunately, it was not in the DVD that was released at the PDC.
Thursday, March 18, 2004 6:54 PM by John Stallo

# re: Whitehorse Class Designer

whitehorse is a open source product? any similar program version available in the net as open source project, maybe at the sourceforge portal?
Wednesday, March 24, 2004 6:50 AM by andre moraes

# re: Whitehorse Class Designer

I would like to know if this still works if you descent from classes in assemblies for which you don't have any sourcecode. It would be great if these classes are readonly in the model.
Monday, March 29, 2004 4:13 AM by Robert

# re: Whitehorse Class Designer

Robert: Yes, the Class Designer can read metadata from assemblies referenced in projects and display these as read-only classes.
Wednesday, March 31, 2004 4:06 PM by Keith Short

# re: Whitehorse Class Designer

Mark Speaker (on ORM):

Northface University focus on modeling environments supported by Microsoft and IBM. Grady Booch is on our advisory board and Terry Halpin (the man behind ORM) is full time with us. We plan indeed to marshal the ORM community and do a first-class ORM DSL as soon as feasible. We currently offer a BSCS, but we will introduce two masters program and a doctorate later this year and modeling related to service oriented architectures will be one of the core research areas for us
Wednesday, April 07, 2004 6:14 AM by Marlow Einelund

# re: Whitehorse Class Designer

To Mark: This sounds exciting. Good luck with your plans. Let me know if there's anything we can do to help.
Friday, April 09, 2004 11:43 AM by Keith Short

# re: Whitehorse Class Designer

Nice idea
Shame that is is going to be a proprietory implementation
Friday, April 23, 2004 1:14 AM by I Thomas

# re: Whitehorse Class Designer

Nice idea
Shame that is is going to be a proprietory implementation
Friday, April 23, 2004 1:14 AM by I Thomas

# Keith Short s Blog Whitehorse Class Designer | Paid Surveys

# Keith Short s Blog Whitehorse Class Designer | Quick Diets

# Keith Short s Blog Whitehorse Class Designer | internet marketing tools

Anonymous comments are disabled
 
Page view tracker