Megosztás a következőn keresztül:


Editing Code through Class Diagrams

Currently the Class Designer allows you to edit the diagram (and thereby the code) through in-place editing of type and member names on the diagram.  The Class Details Window lets you edit other properties of type members (fields, properties, methods and events) like access modifiers, types of members, parameters to methods etc.

If you don't have VS 2005, you can find a screenshot of the Class Details Window here (towards the end of the document). You can find how to create and modify Class Members here.  The Class Details Window provides cool keyboard shortcuts (learn about it here).

I am interested in getting feedback on the Class Details Window.

Thanks,

Ramesh.

Comments

  • Anonymous
    July 23, 2004
    I really like the idea of the class designer because it can model all the language features natively (unlike UML). I just hope that when the final version ships the speed is improved. At the moment it's frustratingly slow, which probably makes it unusable for full time use.

    The thing I dislike most of the class details window is that it forces you to work in two places. You look at the top of the screen to see what you want to change and where you want to change it and then you must go to the bottom of the screen and make the change. Searching in the details window takes time no matter how many shortcuts you add and you need to make the window too big to work comfortably (and you need all the space that you can get for the designer).
    Adding a new item and modifying an existing one in a grid feels very unnatural.

    What would I change?
    * Add full in-place editing for the designer and make the details view optional instead of required. Rename all class members, parameters, return types, … in-place. Not just the class name.
    * More view modes. As far as I can see there are only full class view and collapsed class. I would also like the option to see the accessibility modifier, return types, parameters, attributes and the generic constraints in the designer. Basically, show all the definitions and no implementation.
    * When a class is selected add a placeholder in the class to add a new item.
    * I would like to add a new item or modify an existing one, the same way I would do in a code window: just write or modify the definition.
    public string MyProperty {get;}
    public override MyMethod(int myParameter)
    As soon as you click on an item in the designer the cursor appears in a small in-place editor window and shows the full definition including attributes. Here you make your changes.
    * Zooming in on one class and showing detailed information. It automatically expands and takes up as much space as required to show everything.

    I hope that these suggestions are useful for you. I realize that they would take a lot of time to implement, but I think that it would greatly improve usability.
  • Anonymous
    July 25, 2004
    Kristof,
    Thanks for your feedback and suggestions. We are glad that you really like the idea of the Class Designer.

    Unfortunately we had to cut support for full in-place editing like you described due to schedule constraints. We will, however, provide support for in-place editing member names (not types, parameters).

    Support for viewing member details (return types, parameter types) is also being added. Do you ever use the Class Definition View tool window? Would making that tool window editable and making it track selection in Class Diagrams be useful? No promises here but trying to gauge interest.

    Robustness and Performance are the two main things we are concentrating on for the final release. I am very much interested in the scenarios that you would like to see perf improvements, preferably, in order of priority. :) We have identified quite a few but checking to see if ours matches that of the users (for example, we need to work on opening new and existing diagrams).

    Cheers,
    Ramesh.
  • Anonymous
    July 26, 2004
    The comment has been removed
  • Anonymous
    July 26, 2004
    The comment has been removed
  • Anonymous
    July 26, 2004
    Kristof,
    I'm working on the class details window, I wonder if you could you provide a few more details about the performance issue you're seeing (that's the first we've heard of that particular problem). In particular:

    1. Do you see this with all languages, or just a particular one?
    2. Does this happen with all types, or just particular kinds of types (e.g., just classes, or just types from referenced projects/assemblies?)
    3. Any info about machine configuration you can give, so we can more closely repro here, i.e, OS, processor, memory, video card.

    You could either post again here, or even better, open a bug at http://msdn.microsoft.com/productfeedback/.

    Thanks for your help.
  • Anonymous
    July 27, 2004
    Anna-Jayne Metcalfe,
    Class Designer will support C++. In beta1 we offer
    1. reverse engineer native C++
    2. fwd engineer native C++
    3. reverse engineer managed C++

    In beta2 we will concentrate
    1. fwd engineer managed C++
    2. performance improvements to managed C++
    3. robustness

    If you or your team would like to follow how Class Designer adopts and caters to C++ visit my blog at blogs.msdn.comrakeshna. Any feedback received through the blog will be appreciated.
  • Anonymous
    July 27, 2004
    Since you've said it wasn't a known problem I've installed the Visual Studio beta on another computer. Guess what? No performance problem there.
    Now, what's different? Since it's a beta I didn't want to install it directly on my main computer: I installed it on a virtual computer using VMware (similar to Virtual PC). The performance problem seems to occur only in this situation. It’s probably related to the emulation of graphics hardware, although it's the first time I’ve noticed that VMware causes a significant performance degradation.
    I haven't entered this as a bug because I don't know if this kind of scenario is supported. If you want to look into it you can download a trial of VMware from www.vmware.com
  • Anonymous
    July 28, 2004
    Thanks for narrowing the problem down. I will bring this issue to the attention of the relevant folks. Glad to hear that you don't notice perf degradation on your other machine.

    As Grayson suggested, please feel free to send in your suggestions/bugs at http://msdn.microsoft.com/productfeedback/.