Class Designer Feature in Whidbey
Hello. My name is Ramesh Rajagopal. I am part of the team that is building the Class Designer - a very cool tool in Whidbey.
The class designer tool lets you create Class Diagrams for the static structures in your Visual Studio projects and assemblies. It uses a UML-like notation.
One of the goals of the Class Designer tool is to provide added value to the customers by making its visuals, terminology and behavior closely resemble the code that it visualizes. We believe that the UML concepts of “attributes“ and “operations“ don't directly map to the CLR concepts that the developer deals with. So instead of seeing “Attributes“ and “Operations“ compartments in a say, C# or VB class, you'll see “Fields“, “Methods“, “Properties“ and “Events“ compartments.
You can use this tool to:
- Visualize your existing code (be it in source or in an assembly).
- Build classes, interfaces, etc.
- Update and maintain your code including support for refactoring.
The tool should be thought of as an "alternate view of your code". Any edits you make either to the diagram or to the code are continuously synced so that the changes made in one are immediately reflected in the other.
This feature will be available in C#, C++, J# and VB.
More on this feature soon. I also want to add an image of a Class Diagram as soon as I figure out how to add an image to a blog (as you can tell, I am a newbie).
Cheers,
Ramesh.
Comments
- Anonymous
March 05, 2004
If its not UML, then dont waste our time. - Anonymous
March 06, 2004
I'm glad it's not UML. Open standards are slow and cumbersome beasts. - Anonymous
March 06, 2004
Amen to that. UML is not useful in day to day development, this tool, even if it's not 100% UML, is very cool, and more to the point, actually useful. - Anonymous
March 06, 2004
Glad to hear that folks find a tool that is closely tied to the programming languages useful even if it is not 100% UML.
Our target customer for this tool is the developer and acknowledge that this may not satisfy all the requirements of an UML purist.
Ferris, what do you use an UML tool primarily for? Could you elaborate on why you think a tool like the Class Designer will not be useful for you?
Cheers,
Ramesh. - Anonymous
March 06, 2004
The comment has been removed - Anonymous
March 06, 2004
UML is language independant, its a modelling tool, its used to model the actual solution before we even decide what language to use.
What you have there is just a gee thats nice, thats how our objects looks, well aint that lovely, go stick it on the fridge cuz its about jack all use elsewhere. - Anonymous
March 06, 2004
Seems to me just because the debugger team is doing visualizations and visio has nice pictures you have to get on the bandwaggon also, more useless bloat for Visual Studio, I think its time to start looking for other IDE's if this continues. - Anonymous
March 06, 2004
The comment has been removed - Anonymous
March 06, 2004
Hi Ferris,
Thanks for your response. We are not building a language independent modeling tool. Rather we are building a visualization tool that closely resembles the underlying language concepts. As I mentioned the tool we are building is targeted towards developers as a way to not only be able to build classes using the tool but also to visualize existing code as well as review and refactor existing code.
It seems like you are using UML for capturing higher level abstractions. We won't support that in the first release of the tool. While UML is a standard, OMG doesn't provide a way to actually enforce that the UML tools conform to the standard. Our team actually has people who had worked on UML 2.0. They found that the UML 2.0 is insufficiently specified to be repeatedly implementable. They also found the process very slow. Again, we are not trying to compete with UML. We want to provide a tool that will be useful and easy to learn for a majority of our customers (who are developers).
Cheers,
Ramesh. - Anonymous
March 06, 2004
Ferris "The Arrogant" Spammer, you have some points as usual. I think the class designer serves well for smaller projects, where the bloatness and bugs of say Visio or Rational XDE is not needed. - Anonymous
March 06, 2004
Anything that helps you communicate a design to a fellow developer is a good thing. That's the main purpose of diagrams anyway IMO. UML is not a replacement for writing code in a text editor.
That said, it should not be difficult to have the Whidbey Class Designer export (and import) the diagrams in UML exchange format. - Anonymous
March 07, 2004
As usual Ferris is missing from class. Maybe he is still stuck in the RUP arena. Basically, UML is great when modeling and communicating design methphors and thinking through model and design ideas but using it as a development tool is absolute nonsense. Expressing and , more importantly, maintaining complex notions and interactions in UML is like trying to heard cats. Yes, even for the experienced. Basically, all we can hope to look for is a descent modeling tool that helps us express and communicate design metaphors to not only the development world but more importantly to the domain experts whoe we must interact with to build accurate and long lived software solutions. Any tool that helps simplify the job of communicating language and ideas in an organization is welcome in my opinion.. - Anonymous
March 07, 2004
Hi!
I work with Ramesh on the Class Designer team in case that matters.
Interesting discussion regarding UML above - what I would really want to understand what's so important about UML from practical point of view? I used to work with many UML tools myself from different sides (used them, developed them, contributed to the standards in a way etc) and Class Designer is no different from my user's point of view - it's almost UML notation, but much nicer and provides way better visualization of .NET concetps like properties, events along size with C++ support than pure UML standard. So I agree with Cameron - does it matter how to call it if it helps to do the work?
Also I think Class Designr is flexible from language point of view - same notation is used for all languages and one doesn't need to think of the target language a lot until it's time to write method bodies.
Thanks
/Dmitriy - Anonymous
March 07, 2004
Seems you want to get people away from UML and onto this format for managed modelling.
Why dont you just work with the standards comittees rather than against them? - Anonymous
March 08, 2004
I'd be willing to bet that the majority of Microsoft developers are 100% Microsoft developers. In their professional careers, they don't also do Java, Perl, Smalltalk, or some other language. I would rather have a diagramming tool that I can get up to speed with quickly, and one that relates directly to .net...not one that requires me to study a whole book to learn all the facets. Do you know how many large books there are on UML? Geez...all I want is a good tool to diagram my classes quickly and easily. I don't need a gazillion dollar Rational product to do what I do. I am an MCSD and have six years of experience...and could care less whether it is a "standard" or not. It's not like I'm going to port my app over to Java one day. As a web developer, I already have to be an expert on Dhtml, Javascript, VBScript, ASP.net, C#/VB.net, SQL, and CSS. As long as it is easy/intuitive to use, and helps me build .net applications better and faster, I am all for it. I do agree with Ferris on one point...make it optional for those people that DO need to use a tool like Rational for their diagramming. - Anonymous
March 27, 2004
Hey Ferris -- learn how to spell your own name. <g> - Anonymous
May 21, 2004
Ramesh,
I just installed the whidbey technology preview and have been having a great time with it. I was really looking forward to playing with the Class Designer but it isn't anywhere to be seen? Am I missing it or is it not there? If it isn't, any idea when I get to start playing around with it?
:) - Anonymous
May 28, 2004
Hello there,
Can you tell us what build that is?
You should be able to create a class diagram from the add new item dialog for a project. You should also be able to bring up the class diagram from the context menu (right click menu) on a class in the class view.
Let us know if you still have a problem.
Thanks,
Ramesh.
ps: In the Partner Drop 5, we have an issue with not being able to add members to a class from the class diagram for C#. This has since been fixed. - Anonymous
June 15, 2004
UML simply doesn't work in development. It is a great tool to show how you think but when it comes to development it soon becomes out of sync and you have to spend your valuable development time on keeping the model up to date. UML has been the selling factor for object purists and people who are not good at development, because it is not them doing development at the end of the day. So they become pretty excited about multi-level inheritance and UML stuff that cannot be implemented, and even if it is, everyone will be confused. Coming up with a complex design is very easy.