Two tools I MUST find some time to try – Typemock and NDepend


I have had my eye on two tools for sometime. Both tools look extremely useful. Both tools have a very different focus. Both tools look hot!

Regrettably – both tools continue to be ignored while I spend time getting myself up to speed on the basics 🙁

Anyway – would love to hear from anyone with experience good or bad.

Typemock http://www.typemock.com/

This allows you to isolate, stub or mock any class in your system. I like the quote:

“Holy crap, this thing is hot. In technical terms, you might call it the bomb-diggity. I haven’t been this stoked about a technology for quite some time…”

To my untrained eye, it looks very, very useful.

NDepend http://www.ndepend.com/

I have had a chance to play a little with this one and I was very impressed. Again a great quote:

“Once I realized the depth and breadth of the information I was looking at it, I was like a kid in a candy shop”

NDepend supports the Code Query Language (CQL) which allows you to really dig into your code base. E.g.

  • Which public methods have more than 30 lines of code?
    • SELECT METHODS WHERE NbLinesOfCode > 30 AND IsPublic
  • Which classes implement System.IDisposable?
    • SELECT TYPES WHERE IsClass AND Implements "System.IDisposable
  • Which methods have been refactored recently and is not thoroughly covered by tests?
    • SELECT METHODS WHERE CodeWasChanged AND PercentageCoverage < 100

But it is much more than that – you get a great GUI to go with it.

Patrick who wrote it even used it to analyze what changed in .NET 3.5 SP1. You will be pleased to know there were 636 new public methods and 57 new types 🙂

Comments (3)

  1. Ian Nelson says:

    I love NDepend. Very useful for cutting through vast swathes of code to find the potential pain points before they become a problem.

    Great for code reviews too.

    I just wish the full version wasn’t so expensive! 🙁

  2. NDepend is probably one of the best .NET tools out there. Truly great tool.

  3. Alastair Upton says:

    TypeMock has raised a lot of contention in TDD circles. Its benefit is that it enables you to test ‘legacy’ code. The converse of this is that it doesn’t enforce good TDD practice. For a green field development Rhino.mocks is the preferred solution for many people. Personally, I can see the advantages of TypeMock as it doesn’t restrict you from ‘classic’ TDD but can assist when dealing with legacy code.