I am aware of the fact that TFS 2010 ultimate edition can create and validate architecture diagrams. For example, I can create a new modeling project > add Layer Diagram > Add Layer called View > Add BL Layer > Add DL layer.

Then I can validate this architecture as part of the build process when someone tries to check code into TFS. In other words, if the View references the DL then the compilation process will fail and the checkin will not be allowed.

For those without an MSDN ultimate license, can FxCop or some 3rd party utility be used to validate architecture in an automated fashion? I prefer a TFS install-able plugin, but a local VS plugin will do.

  • According to PE FAQ a question that directly relates to the concept of software architecture, development methodologies or design patterns (n-tier) is a good question for this forum. On the other hand, because I am looking for a programming tool, perhaps its a better fit for SO. In that case, it should be a migration vote. Otherwise, explain why this question should be closed and downvoted. – P.Brian.Mackey Apr 12 '12 at 20:01
  • 1
    I'd advise not migrating this question. This is more in the domain of software architecture and to some extend software process (both of which belong here). – Thomas Owens Jun 11 '12 at 20:01

NDepend really is a great option. it can do a lot and analyze your code during the build. You would need to write your own CQL querys to check for valid dependencies and you need to pay for it. If you do a lot of code reviews or need to investigate legacy software NDepend brings a lot of value.

Another solution could be to write your own custom build task ( There might already be one somewhere, but I could not find it ) Here is a simple start https://stackoverflow.com/questions/5622141/msbuild-reference-resolution together with this great series you should be able to get it to work.

Hope this helps.

update (11-6-2012) NDepend 4.0 was released including default rules for architecture and layering check out the new default rules here : http://www.ndepend.com/DefaultRules/webframe.html

update (10-2-2013) I tried using nDepend for validation and wrote a post about it "Using NDepend as an alternative to the Layered Diagram"

  • NDepend is truly an excellent tool! Great recommendation. – P.Brian.Mackey Apr 19 '12 at 18:28

For the work with TFS I don't know any other solution than the ultimate edition. The main fact is, controlling the architecture is part of the work of a sw architect, and a architect of a .net project should have the ultimate version :-)

The main problem is that you need to ensure, that the system know's which layer is which one and who can communicate with which layer. THere is one other tool (i've never used it) NDepend but its not for free too.

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