Friday, April 15, 2011

Don?t do Reflection, do DGML

If you are analyzing your solutions and projects via reflection, you can’t do it any better than Microsoft. Even ReSharper does not come close. What did they produce? An XML output called DGML. Why not leverage it?

In their output they provide:

  • References
  • Dependencies
  • Return values
  • Call graphs

And it is not meant just for human consumption/interpretation as it is XML with a well published schema.

I bet you can’t get call dependencies via reflection (except for using some old FxCop DLLs and/or developing your own Reflector add-on).

But the data is already there if you use VS Ultimate/Premium, and as XML; the only question is how to practically use this output. In a previous article on my blog I mentioned my DGML API

Some use-cases:

  • Find all unneeded references in a solution
  • Call graphs
  • Property usage in functions
  • Parameter usage

You can also just produce your own HTML5 reporting tool via SVG (which I did); no need for Visual Studio, let alone Ultimate.

- Ciper

First published on my blog as "Don’t do Reflection, do DGML"

Other relevant article: "Low-Level DGML Library"

Source: http://social.msdn.microsoft.com/Forums/en-US/vsarch/thread/015270cb-c76b-40d7-bf14-40b7f3317046

architecture school rankings 2009 architecture graduate schools hdr architecture ancient architecture googie architecture

No comments:

Post a Comment