Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

John Stallo - The Visual Studio 2005 Class Designer (1 of 3)

Download

Right click “Save as…”

I've now done a few interviews with my co-workers building Visual Studio 2005.  I always like to ask "Aside from your own feature, What is your favorite new thing about Visual Studio 2005?"  The answer I consistently received was "the class Designer".  It will be available in versions of VS 2005 from Standard on up.

They have a great team building this feature and have also been posting a lot of information to the Class Designer Blog. After reading this post I decided it was time to talk to John.

Part 1 demonstrates the outputs you can generate from the class designer to examine the relationships between the classes in your project.

Enjoy - Josh

Tag:

Follow the Discussion

  • MinhMinh WOOH!  WOOH!
    Great productivity tool. Great tool for learning the BCL for sure. By any chance, you guys integrate MSDN Help into this tool?
  • AdelinoAdelino Adelino
    Please try to focus in the next videos! I don't mind all the obliquous plans on the cam, pointing to nowhere and left the code on the side and jump on to it fast... I realy don't care and I do love the amateur style of channel 9 (honest!) but focus is the main aspect of any video. This video has alot of un-focus scenes... I stoped at 20%. Can't handle it. Sorry.
  • AQAQ One does not thank logic
    Ahhhh, the seeds of Reflection bear many useful fruits...

    If the synchrony between Class Designer and Code is truly harmonious, this could indeed be a powerful step in the direction of 'codeless' rapid prototyping, especially when refactoring the entire architecture.

    It's great to see generic support as well and as the static case becomes complete one naturally wonders about visualizing the runtime, particularly as the static boxes shift and morph due to late-binding.

    Could the next stage be a Class Visualizer Animation thats provides a snapshot of the object states during debug? 
  • Adelino: Yeah, I'm slightly embarrassed myself. Though I never went to film school this is probably lower than my average for capturing these things on film.  I don't have that experience that Scoble has and I went to school as a developer so this is going to take a while to perfect.  

    There were just soo many cool things to see here. Smiley
  • R.RameshR.Ramesh RockOn
    Orbit86: There are no changes to the C# language itself.  However there are new concepts like Generics, Partial Types, Iterators, Anonymous methods etc.  C# Developer Center on MSDN (http://msdn.microsoft.com/vcsharp/) is a good place to look for info on C# 2005.  You may also want to check out http://msdn.microsoft.com/vcsharp/2005/ for more information.

    Ramesh.
  • R.RameshR.Ramesh RockOn
    Minh: Thanks for the feedback.  That thought has crossed our mind.  Please stay tuned. Smiley

    Ramesh.
  • Orbit86 wrote:
    ugh, so is my C# step by step book outdated?


    Outdated??? god I hope not. Updated... now that is a good thing agreed? Wink

    Where can I get this for my VS2005 Beta???
  • R.RameshR.Ramesh RockOn
    DuNuNuBatman:  Class Designer is available in VS 2005 Beta 1 and on subsequent CTPs.  We have added some new features for the upcoming Beta 2 release (and of course the quality will be much higher).  Class Designer will be available in all VS editions Standard and above.  The class designer team has a team blog - http:\\blogs.msdn.com\classdesigner where you can look for more info, give feedback etc.  I also have a blog dedicated mostly for discussing class designer - http:\\blogs.msdn.com\r.ramesh.
  • Orbit86 wrote:
    if they added new stuff for C# in 2005 and my book is 2003..outdated it sounds like

    Yes your book is outdated, but be glad that it is!!!  They added so many nice things in .net 2.0, start reading blogs (and channel9 of course!) to get you up to date again!

    By the way, the 2003 version DOES HAVE windows forms, and so does the original 2002 version...
  • jrjjrj Just Another Geek
    This demo brought a tear to my eye.

    Beautiful.
  • TensorTensor Im in yr house upgrading yr family
    Wow!

    I can just imagine how useful this would be in bringing people up to speed with a project - here, look at the class diagram *presto*...

    *Edit* because I cant post again due to lock behaviour :-/

    I notice when hovering over members, the tool tips showed more information - types and some form of comment. Is that attribute-based information, or xml-comment based? I guess the former if the whole thing is reflection-based?
  • R.RameshR.Ramesh RockOn
    Tensor: Yes, that's the idea - to provide a tool that will help people understand existing code quickly.

    The comments shown in the tooltip are the xml comments specified on the class, method, field etc.  We don't use reflection to get the information.  The diagrams are kept in sync with changes you make to the code instantenously - you can think of the class diagrams as another "view of your code".  This requires parsing the source files and listening to events raised when code is edited.

    Of course, you can also visualize types from referenced assemblies in the class diagrams as well (you don't need source code for that).  That information is gathered from the IL.
  • TensorTensor Im in yr house upgrading yr family
    It IS the xml coments? Now thats cool Smiley

    So, the death of UML, anyone?
  • Christian Liensbergerlittleguru <3 Seattle
    Tensor wrote:
    It IS the xml coments? Now thats cool Smiley

    So, the death of UML, anyone?


    I don't know if this is the death of UML. It's very similar to the class diagrams of UML. What you guys are doing is GREAT! I like the designer, very useful.
  • Please please please, make it easy to zoom and pan around.  Something like ctrl+mousewheel for zoom and ctrl+drag to pan.
  • TensorTensor Im in yr house upgrading yr family
    And good print outs. That print well over multiple pages. So I can make a massive poster without having to have the kind of printer that, from the video, you guys obviously have!
  • R.RameshR.Ramesh RockOn
    sparky wrote:
    Please please please, make it easy to zoom and pan around.  Something like ctrl+mousewheel for zoom and ctrl+drag to pan.


    We do provide easy support for zoom and pan.  However, there won't be a zoom/pan window.

    Ramesh.
  • Kevin DalyKevin Daly Because.
    Looking forward to the next two (soon I hope?)

    "Show As Collection Association" directly addresses a fundamental issue with the representation of collections in class diagrams...that's very cool indeed.

  • I'll post the next one Friday morning and then see if I can't get the final one Saturday. Sorry for the delay.

  • sparky wrote:
    Please please please, make it easy to zoom and pan around.  Something like ctrl+mousewheel for zoom and ctrl+drag to pan.


    Pan is supported on almost all MS apps, except Windows Forms.. Just hold scroll wheel/middle button down and pan around. However would classic drag be easier in this case, perhaps.
  • jledgard wrote:

    I'll post the next one Friday morning and then see if I can't get the final one Saturday. Sorry for the delay.



    Or if in hurry just ++ the number in the filename Wink
  • rrakkarrakka DYNAMITE

    Hi John,

    I see this as a very good feature in the new VS.Net 2005.

    I would like to know how the VS.Net 2005 some of the below features

    1.XMI interface (Import/export) of the class design

    2.How do i develop a Model Driven Architecture using the Microsoft UIP-Application blocks atchitecture ( i think is a very good Distrubited architecture. This architecture is really catching up in Open source)

    3.Deployment across teams.
     (It would be really good to sync the same into VSS or to some source control so that the Project Architect can guide designers about the changes based on the requirements)

    4.UML or industry Standards in Middle tier designs

    5.Enable Migration into Microsoft languages (Some thing like J2EE into Microsoft .Net)

    Regards
    Raghu

  • R.RameshR.Ramesh RockOn
    Hi Raghu,
    I work with John.  I can answer some of the questions and will try to find answers for others.

    Ramesh.

    rrakka wrote:

    Hi John,

    I see this as a very good feature in the new VS.Net 2005.

    Thanks.

    I would like to know how the VS.Net 2005 some of the below features

    1.XMI interface (Import/export) of the class design

    Unfortunately the V1 verson of Class Designer will not support import/export of XMI.  Could you elaborate on the scenarios?  What we have found so far is that while XMI is a standard each UML tool vendor has their own implementation resulting in the output by one tool is not being able to be automatically consumed by another tool.

    2.How do i develop a Model Driven Architecture using the Microsoft UIP-Application blocks atchitecture ( i think is a very good Distrubited architecture. This architecture is really catching up in Open source)

    I'll try to find an answer to this question.


    3.Deployment across teams.
     (It would be really good to sync the same into VSS or to some source control so that the Project Architect can guide designers about the changes based on the requirements)

    Are you asking about using the Class Designer in a team scenario - between the Project Architect and the Development team?  If so, you could certainly do that.  However, there is no "deferred generation" option in V1.  IN V1, Class Designer will work only in the context of a VS Project and code will be automatically generated.  Howver, we have put in considerable effort into making the serialization format simple (it is plain XML) that it should be fairly straightforward to use it in a team scenario and if there are any merge conflicts it should be pretty intuitive to resolve them.


    4.UML or industry Standards in Middle tier designs

    If you want a UML tool, then you'll have to use Visio for Enterprise Architects.  You can think of Class Designer as a DSL (Domain Specific Language)  tool (of the CLR type system).  It is geared towards the .NET developer.


    5.Enable Migration into Microsoft languages (Some thing like J2EE into Microsoft .Net)

    This will be very cool indeed. I'll try to find some answers for this.

    Regards
    Raghu



  • WilWil Wil
    I do wish this feature hadn't been dropped for C++.  I realize that C++ is a lot more, er, "unmanageable" than the "pure" .NET languages, so it gives extra headaches beyond those that result from building something like this for C#.  However, (based on the C#/VB work) couldn't a tool have been completed at least for the **managed** part of C++/CLI?  It's disappointing for MS to come out with a class designer that doesn't handle C++ at all, especially considering how many CASE tools there were for C and C++ back in the era when those were so popular.
  • R.RameshR.Ramesh RockOn
    Wil, I agree with you.  However, we had to cut support for C++ due to our inability to provide a high quality user experience (Please see blog entry http://blogs.msdn.com/classdesigner/archive/2005/03/04/384764.aspx and feel free to add your comments).  Despite our sincere efforts to get C++ we believed that we couldn't address all the issues that remained to provide a good user experience.  Providing support for C++ will however, be a top priority in the upcoming releases.

    Ramesh.
  • R.RameshR.Ramesh RockOn

    Raghu,

    Here below is the info I was able to get on migration tools from J2EE to .Net.

    Hope this helps,

    Ramesh.

    The main tool we have to support this is the Java Language Conversion Assistant, which converts J2SE 1.4 and J2EE 1.3 code to C#:

    http://msdn.microsoft.com/vstudio/downloads/tools/jlca/30Beta/

    This is a Visual Studio plugin, and is a free download.

    J# is also something that can assist in porting existing Java code… this is limited to J2SE, and only up to JDK 1.1.4, but several Java ISVs have still found it useful to port ‘business logic’:

    http://msdn.microsoft.com/vstudio/java/migrate/visualj/default.aspx

    Also, we now have a complete ‘Java to .NET Migration’ hands on workshop that is available online, which contains a lot of key content regarding J2EE to .NET architecture mapping (to help facilitate re-writing), and also has labs that cover the JLCA, J#, and other migration topics and tools… It can be run by anyone (free, requires registration), and even includes a virtual hosting of VPC image that includes Visual Studio, JLCA, sample lab files, etc… this can all be run through the browser without downloading anything locally. This is a great resource for any J2SE/J2EE folks getting introduced to .NET, writing new apps, migrating existing apps, etc:

    http://msdn.microsoft.com/vstudio/java/migrate/workshop

    Finally, there is the ‘MSDN Resource Center for Java Developers’, that references all this content, and additional aspects including J2EE to .NET interoperability, general .NET topics, etc…

    http://msdn.microsoft.com/vstudio/java/


     

  • rrakkarrakka DYNAMITE
    Hi Ramesh,
    I somewhat know this information as i was the part of the MS JVM maintenance (from the partner company) until recently after i moved out of the Microsoft account in my company and had worked with various groups  of the tools for microsoft at Redmond.

    Well the Java Language Conversion Assistant cannot completely convert the J2EE code into the C# equilent 100% and needs lot of tweaking of the code generated (i dont want to go into figures).

    What i was asking on this specific conversion was that if i had a j2EE Design diagram lets suppose in Rose/MagicDraw UML, they have a feature of XMI(Xml interchange) so that the design is portable across the design tools.

    If the said existing design in J2EE needs to be ported into a C# equilent then what features will the VSTS support? 

    I came across this cool architecture as MDA(Model Driven Architecture) which does an end to end design starting from the View until the model involving various tiers in the application.

    I suppose the MS UIP application blocks also does something similar and it would be really great to integrate the MS UIP into the VSTS so that there can be a standard of MS UIP in Application development using n-tier architecture.

    Regards
    Raghu
    (raghu.akkaraju@gmail.com)
  • rrakkarrakka DYNAMITE
    Hi Ramesh,
    An addition to the above questions.
    How is Sql Server integrated with the VSTS?

    I can have various DB objects in my database and i need to get the relationships among various DB objects as i want to write a wrappers over each DB Entity which can be accessed as class instances. In this case i need the VSTS to help me generate the classes from the DB objects(Tables/Views).

    how this scenario is captured in VSTS ?

    Regards
    Raghu
  • R.RameshR.Ramesh RockOn
    Hi Raghu,
    I suggest you post your questions in one of the Team Systems Newsgroups (http://lab.msdn.microsoft.com/teamsystem/community/newsgroups/default.aspx)  or blogs http://lab.msdn.microsoft.com/teamsystem/community/blogs/default.aspx).

    Thanks,
    Ramesh.
  • Jack GreenfieldJackGr Jack Greenfield
    Raghu,

    Thanks for posting. Here are some answers to your questions.

    1. We are working on a solution for importing UML models exported by other tools. XMI will probably be part of the solution. However, there are some issues with it.

    XMI is a set of production rules that define how to generate a DTD or XSD from a MOF metamodel. There are several different versions of XMI in common use (1.0, 1.1, 1.2 and 2.0). Each version yields a different DTD or XSD from a given MOF metamodel.
     
    Next, there is the question of MOF. There are several different versions of OMG MOF in common use (1.3, 1.4 and 2.0). There are also proprietary variants of the OMG MOF that are not OMG compliant, including CMOF, JMOF (Sun) and EMOF. IBM uses eCore, which is a proprietary variant of EMOF. We do not expect practical standardization at the MOF level by commercial tool vendors, since the MOF is too intimately tied to the tool architecture. Like everyone else who builds tools, we have our own MOF called IMS.
     
    In practice, we expect to be able to import models based on metamodels based on other MOFs, using either something like a custom XSLT transformation before the model is imported, or a custom deserializer in our tools that performs the mapping during the model import.
     
    Next, there is the question of the metamodel. There are many different metamodels that could be described using one of those MOFs and then rendered into XSDs using one of those XMI versions. UML is one of them. CWM is another. MOF itself is another. SPEM is another. Of course, all of these are versioned, as well. There are several versions of UML in common use (1.3, 1.4, 1.5 and 2.0).
     
    Given the number of combinations of XMI, MOF and metamodel version, it will be necessary in some cases to write custom XMI importers for specific models written out by specific tools.
     
    Of course, importing XMI implies not only that we can read the XML, but that we have something to map it to. We are not planning to implment all of UML. I don't know of anyone who does today, including IBM.
     
    That said, we do expect to deliver some base DSL metamodels that approximate some of the UML diagram types, such as state chart, activity graph and sequence diagram, and we plan to support migration of existing UML models into our tools as instances of those metamodels. It won't be a push button, however, for the reasons mentioned above.
     
    Finally, there is the question of profiles, which are collections of stereotypes and tags that people have defined to essentially approximate DSLs by marking up existing UML diagrams. XMI does not help at all with profiles, since the stereotypes and tags are not true MOF metaclasses and metaattributes, respectively.
     
    We also plan to support migration of existing UML profiles into new DSL metamodels, and migration of existing UML models based on those profiles into our tools as instances of those metamodels. These tasks won't be push button, either, but will hopefully be supported by a well defined authoring experience (e.g., start with a DSL metamodel that approximates the UML diagram type on which the profile is based, then add/remove/modify metaclasses as necessary to make it a suitable target for importing models based on the profile, then define a custom XMI deserialization for reading models based on the profile from a specific tool).
     
    Sorry for the long answer, but it reflects the reality behind the marketing promises about XMI.

    2. We agree that UIP is an excellent architecture for application front ends.

    Our approach to model driven development is called Software Factories. You can read about it at http://msdn.microsoft.com/architecture/overview/softwarefactories/.

    Differences between SFs and MDA are summarized on my blog, and by my post on the Server Side at http://www.theserverside.net/news/thread.tss?thread_id=30082.

    In a nutshell, you can think of SFs as MDA and more. What we have in common is the idea of generating code and less abstract models from more abstract models. The differences are in the "more", which deals with all of things that we think are critically important to making model driven development a practical reality, such as integrating code and models effectively, partitioning models into files that work well in configuration management scenarios, and so on.

    As for using Software Factories for UIP, we have the pieces of the solution, but we can't yet offer you a way to pull them together. You can build a UIP designer using the DSL tools (http://labs.msdn.microsoft.com/teamsystem/workshop/dsltools/). You can use the UIP block from PAG, as you've already discovered. You might also write some templates and wizards that create a UIP project in an existing solution and then provide additional short cuts in building the pieces you need to work with the application block.

    Of course, putting all of these pieces together to provide integrated guidance to your developers is what Software Factories are all about. We're working on tools that will help you combine pieces of guidance into packages and automate their installation and deployment. We'll have more to say about that later.

    3. Not sure I follow your question here.

    4. Great question. We have technologies that automate the construction of the UI and the database, but the middle tiers remain untamed territory. We're actively working on technology for modeling service oriented architectures, where the middle tier becomes the focal point of the system, and the UI and database become peripheral parts. The Application Designer and Systems Designer in VS 2005 are down payments on our long term solution in this space.

    5. Regarding Java to .NET Migration, we have developed an online workshop is designed to help Java developers become acquainted with the Microsoft platform by using their Java skill set as a frame of reference for learning Microsoft .NET development.

    This course can be completed for free, online, and at your own pace. It consists of video presentations, downloadable class notes, and hands-on labs which are supported by the MSDN Virtual Labs infrastructure. Topics include skills mappings (i.e. "I know how to use RMI – how does .NET Remoting work?") as well as code migration (i.e. "I have a piece of Java code I want to migrate to the .NET Framework – how do I use J# or the JLCA to move it over?").

    To access this workshop, visit: http://msdn.microsoft.com/vstudio/java/migrate/workshop.

    Cheers,
    Jack Greeenfield | Architect | Enterprise Tools | Visual Studio

  • Hi,

    I have just downloaded the ModelingPowerToys.zip.
    While I try to install it, I only can see the *.dll file and the visual studio 2005 does not have the add in manager GUI as visual studio 2003. how can I install it properly.

    Thanks,
    /CC.

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.