I am studying Visual Studio 2010's architectural tools for application lifecycle management.

After we have sketched some modeling diagrams, we wonder now how should be the natural workflow to convert that to architecture-compliant code.

We noticed that UML Explorer tab keeps track of entities created in class diagrams, sequence diagrams and component diagrams, but not so with layer diagrams and activity diagrams.

The main problem is: when the modeling is ready, how would be the expected way to convert it to a compliant code? Possible paths could be:

  • "you have to manually keep track of everything";
  • "you can use feature X and/or technique Y";
  • "There's no way to do that without the Modeling Feature Pack";

As far as I have researched until now, everything suggests that the Feature Pack is needed, but I wonder what would be the point to have those standard modeling projects if the greatest advantages of modeling (tracking and validating development code) cannot be performed...

UPDATE: This blog post shows how to use Layers Diagram of a modeling project (via Validation flag on modeling project's properties tab) to RAISE BUILD ERRORS in case a layer dependency (which can be manually created) is violated. That seems promising, and I wonder which more of these hidden features the "non-feature-packed" Visual Studio 2010 might have.

Thanks for any help

  • 2
    The feature pack is required.
    – Ramhound
    Commented Jan 17, 2013 at 16:39

1 Answer 1


As you have discovered, the layer validation, for C# at least, was present out of the box with Visual Studio Premium and Ultimate.

You also get the ability to generate Dependency Graphs, and Sequence Diagrams from your code, as well as the old-school class diagram view that has been around since VS2005 (possibly 2008, I'm not sure). I don't believe there is any code generation from models, though.

Whilst you can draw UML static structure diagrams, you can't generate them from code without the feature pack.

With the feature pack you can do Code-to-UML, and UML-to-Code (for C#, at least). The feature pack also extends the visualisation features that were out-of-the-box for C# so that they can handle C/C++, and also extends the layer diagram features to C++.

In answer to your question about what the point would be: Microsoft often ship to fairly hard (as in, must not be missed) deadlines, and so sometimes features don't make the cut for quality reasons. These are often shipped as feature packs, service packs, etc. I believe they always intended the functionality to work the way it does with the feature pack, it just wasn't ready for the target ship-date.

The links to the documentation for the out-of the box features is: http://msdn.microsoft.com/en-us/library/57b85fsc(v=vs.100).aspx

I presume you have the link to the feature pack docs, but for future readers: http://msdn.microsoft.com/en-us/library/dd460723(v=vs.100).aspx

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.