The latest release of the Argotic Syndication Framework includes integration of NDepend metrics in the compiled help documentation. I wanted to post a brief overview of NDepend and how I am using it on my open source projects.
What is NDepend?
"NDepend is a tool that simplifies managing a complex .NET code base. Architects and developers can analyze code structure, specify design rules, plan massive refactoring, do effective code reviews and master evolution by comparing different versions of the code. The result is better communication, improved quality, easier maintenance and faster development."
My Impressions of NDepend
You can use freely NDepend trial edition for non-commercial uses, and this includes open-source developers within the scope of their open-source project. I found NDepend very easy to use, as the tool comes with both visual and command-line components that were very intuitive.
I used the VisualNDepend GUI to build my NDepend projects, and then used the command-line support to integrate the creation of the NDepend metrics into my WiX installer build process. The NDepend output is a standard HTML file generated from a set of XML metric data files, which I found to be flexible and easy to use; as you can specify a custom XSL stylesheet to control the resulting HTML output to fit your projects metric reporting needs. The standard report includes application, assembly and type metrics as well as some great visualizations of your code-base. The HTML report is also user-friendly, as most metrics are linked back to NDepend's supporting documentation so that you can understand what the rich set of metrics actually mean in the proper context.
Currently I am only using NDepend to better communicate my project dependencies to my end-users, but I can foresee using the feedback this great tool provides to improve the overall quality of my project as well. This is definitely a set up form the plain code metrics generated by Visual Studio.
If you are developing a .NET open source project, you owe it to yourself and your end-users to utilize this great tool to help improve your development process and provide a clearer picture of your code-base.
Resources