Sneak peek at the first “Feature Pack” for VS2010 Visualization and Modeling Tools


I’ve been hinting about a number of new capabilities that my team has been working on that are designed to add additional functionality to the bits you will experience in the final VS2010 build due out April 12th. This post will give you the some details of those new capabilities.

( I’ll have a post out later that talks a bit about the “Feature Pack” concept and why this deliverable is actually quite a bit different than PowerTool deliverables you have come to know and love. Again, more on this later.  )

We will release this “Feature Pack” to all active MSDN subscribers shortly after we RTM VS2010 ( exact date TBD ).

 

What’s in this “Feature Pack”?

There are three major areas that this “Feature Pack” is designed to address:

  1. Increased Visualization Support
    1. Visualize your native ( C++ ) code
    2. Visualize your WAP or Web Sites or ASP.NET MVC code
  2. Increased UML support
    1. Code Generation from UML Class diagram
    2. Rapid population of Modeling Store from Architecture Explorer
    3. XMI 2.1 Import
    4. [UPDATED] Work Item to Model Element Back linking.
  3. Increased support for Layer Diagram Extensibility

 

Increased Visualization Support

In the RTM release of VS2010, we have great visualization support for managed assemblies. We don’t have any support for native developers, nor did we have first class support for Web projects or Web Sites developed inside Visual Studio.

With this “Feature Pack”, you now have some great functionality for both native and web projects in Visual Studio 2010.

 

Native Code Visualization

All of the visualization features in the RTM version of VS2010 support managed code ( runtime versions 1.1 on up ). This “Feature Pack” will now allow you to visualize your C++ projects, as well as supporting C++ images ( .dll or exe ), with extra support if you also have the PDBs with those images. The support is in three forms:

  1. Architecture Explorer – allows you to explorer your solution just like you would with managed code via the cascading browser
     image
  2. #include dependencies – pick a header file, and visualize the include dependencies associated with that header file. This is great stuff when you are trying to determine just how bad touching a particular header file will mean to your already taxed build times!
  3. Inter-binary dependencies – drag a native DLL or EXE onto the DGML document surface, and we’ll crack those images and tell you how they are related.
  4. Standard Graph Support – if you select the Generate Dependency->By Assembly menu with a C++ project loaded, you’ll get a very similar look graph that you are used to on the managed side. Here’s a shot of a simple MFC application showing dependencies on the ATL CString type:
    image

Web Application and Web Site Project Visualizations

If you are using Web Site, Web Application Projects, or taking advantage of the latest ASP.NET MVC framework, we’ve got some great stuff coming for you as well! 

image 

We will show you not only how your pages are dependent on each other, but how they are also dependent on controls, and how they are related to the code-behind logic behind them, if applicable. And of course, the ability to drive right into your pages, master templates, and code directly from the graph will be supported.

image

 

Increased UML Support

We’ve had a ton of great feedback on the UML support that we have put in VS2010. A very common request however, has been the need for quick population of the UML Model Store from code, as well as the ability to generate code from the UML class diagram.

This “Feature Pack” gives you both capabilities.

Code Generation from UML Class diagram

C# code generation is now possible once we ship this “Feature Pack”. Simply right clicking on a UML class diagram, select “Generate Code”, and depending on what is on that diagram, C# code conforming to a corresponding T4 template is created.

Rapid population of Modeling Store from Architecture Explorer

Many folks have asked how they can visualize their current systems into a UML modeling project in order to do some “To-Be” modeling. We’ve enabled that scenario in this “Feature Pack” via a tight integration with the Architecture Explorer. We’ve enabled a drag-drop gesture from the Arch Explorer to the UML Class diagram, for Namespaces and types.

For example, in order to pull in the PetShop.BLL namespace from the Petshop example, I’ll you need to do is drag it onto a UML Class Diagram:

image

This will automatically create all the types and packages, including referenced types, into the Modeling store. Here’s the UML Model Explorer after I dropped that namespace on the class diagram:

image

You can also drag individual types ( such as Classes, Interfaces, etc. ) out onto the UML class diagram as well.

 

XMI Import

This “Feature Pack” enables XMI 2.1 import. This allows you to grab any XMI 2.1 conformant file and import that into VS2010.

We’re still not complete in regards to total coverage of the UML 2.1 spec. This shouldn’t be a surprise to anyone paying attention, as VS2010 only has support for the UML Class, Sequence, Use Case, Component, and Activity diagrams. Any meta types outside of the types that can be displayed on those diagrams will clearly not be imported. Most notably, State and Deployment elements won’t be pulled in.

 

[UPDATED 3/26/2010]Work Item to Model Element Back-Links

In the RTM version of VS2010, you can right click on a UML model element ( or Layer Diagram node ), and associate that element with a TFS work item. However, you do not have the ability jump to that model element from the Work item if you are currently looking at the work item in the VS. With this “Feature Pack”, you can now do that via a new Link Item type that will be created every time you make an explicit connection between a model element to a work item.

[ I can’t believe I forgot to mention this feature when I posted this info the first time. Sorry ‘bout that! :( )

 

Increased support for Layer Diagram Extensibility

Extensibility for the layer diagram includes 3 major parts:

  1. The ability to easily create command and gesture extensions for elements on a layer diagram. This mirrors the extension points for our UML diagrams.
  2. An API that allows you to work with layer model elements i.e. to read from and write to layer diagram models.
  3. An extension point and an API that supports the creation of custom layer validation rules. This allows you to
    1. Hook into the layer validation engine invoked when the user clicks “Validate Architecture” (Note: also works from the command line)
    2. Read from and write to the graph that is used during validation analysis.
    3. Create validation errors that are logged to the error list

Summary

This is meant to just give you a taste of what is coming soon after RTM. I’ll be providing more details as we get closer to making it available to all you active MSDN subscribers. And like I mentioned earlier, I will be going into more details around the significant differences between “Feature Pack” and PowerTools in a couple days.

Stay Tuned!

Cameron


Comments (23)

  1. BuckWoody says:

    I’d love to see some database modeling talks on this. I really hate that we broke that in the current versions.

  2. Scott Sherer says:

    One thing that would be good is to support other languages besides those of just Visual Studio.  In other words, make the modeling features ENTERPRISE ready…not just Microsoft Ready (see Enterprise Architect).  This may not be the target demographic though?  Also, the ability to export to XMI, not JUST import…that comes off kinda bad.  If the aforementioned were implemented, then it would likely be more widely and better received 😉

  3. camerons says:

    I’d love to get more details from you in regards to what exactly making the tooling "Enterprise Ready" really means. I believe I have a good idea, but it would be good to get specifics from you so that I’m not making wrong assumptions.

    Thanks for the comment on XMI Export. I’ve heard a few similiar comments since I made this post. See this post for more details:

    http://blogs.msdn.com/camerons/archive/2010/03/24/xmi-support-in-vs2010.aspx

  4. Ladislav Burkovsky says:

    Rapid population of Modeling Store from Architecture Explorer was really missing and made the class diagram almost unusable. Will it be possible to customize the code generation depending on stereotypes?

  5. camerons says:

    Yes, absolutely. All code generation will be done via T4 templates, which are completely customizable. Access to stereotype information from within those scripts is completely supported.

  6. Eric Ouellet says:

    Does the feature pack will support all langages (C#, VB, F# and C++) ?

    Wich MSDN subscription will be needed for the “Feature Pack” (Visualization and Modeling Tools) ?

    Does MSDN-Premium will be enough ?

  7. camerons says:

    You must have VS2010 Ultimate, as that is the only sku that allows you to create the visualization and modeling artifacts.

    Cameron

  8. camerons says:

    Sorry, didn’t answer the other questions. :(

    @language support, it depends on the feature area. In the VS2010 Ultimate box, we really had no support for C++ visualiation. With the feature pack, we now do ( at least the start, as we plan on much more in the future! ).

    This includes now support for C++ project validation on the layer diagrams.

    In regards to code generation and RE, only C# is supported right out of the "virtual" box. The resultant code that is generated is completely determined via profiles and T4 templates. This will allow us ( Microsoft ) and various other 3rd parties to add additional language support fairly easily.

    Hope that helps!

    Cameron

  9. Scott says:

    Will the feature pack allow C#=>UML class diagrams (i.e. full round trip) or will it only be UML=>C#?

  10. camerons says:

    You will be able to go from C#=>UML class diagrams. However, round tripping the way I believe you are meaning is not supported.

    We’ve had the .cd ( Class Diagram ) in Visual Studio for awhile now, which does allow true round-tripping ( make a change on the diagram, that change immediately reflected in code, make a change in code, immediately reflected on the diagram ).

    But that kind of behavior is not supported on the UML Class Diagram.

    I hope that makes sense…

    Cameron

  11. John Hart says:

    Cameron, thanks for the demo yesterday of the Feature Pack.  I’m really looking forward to getting more people working with UML here, and this will come in very handy in winning them over.

  12. Ufuk Coban says:

    What is release date for this product? it is more than shortly after we RTM VS2010 :-)

  13. camerons says:

    We’re workin’ on it! :)

    Getting very close now….

  14. crazydart says:

    Well, so I just created a UML class diagram in VS 2010… and I am not too sure why.  Does this not generate code stubs yet?  Why can I not set an interface on a class?  I can put a dependency in a diagram… but that doesn’t do too much good.  Not to be too critical, but I just burned a day without checking that my architecture tool could do more than print… so now I ask, can it do more than print?

  15. camerons says:

    Once the Feature Pack is available with the next couple of weeks or so, you’ll be able to code generate using t4 scripts right off your UML class diagrams.

  16. jmataso says:

    Just checking in again, any new ETA?  THANKS!

  17. camerons says:

    Nope, ETA remains the same. :)

    Cameron

  18. Worner says:

    Where i can download this feature pack?

    I found only one link in msdn go.microsoft.com/fwlink,

    but there are no feature packs to download.

  19. Stefano says:

    Hi,

    do you think to add the association classes support for UML diagram in this feature pack ???

    Thanks

  20. camerons says:

    Unfortunately no, association classes are not part of this feature pack.  :(

  21. Mighty Max says:

    Hi !

    Still no official release date to announce?

    I can't wait testing the feature pack!!!   😉

    Thanks!

  22. david says:

    Can you please upload the modelling project for Petshop.

    Thanks