NDepend v4.1 adds CQLinq killer feature and support for Windows Store apps

I already blogged about NDepend basic features here: I was positively impressed by the capabilities of this tool by fellow MVP Patrick Smacchia.

NDepend permits you to examine .NET projects and highlight different metrics in the code in order to better analyse what areas of your solution needs refactoring for improving performance, code maintainability, application stability and applying best coding practices (just to name a few).

Some features, already available in the previous versions of NDepend, include tools for visually representing dependencies between classes, defining custom rules on code, explore code diffs and analyse code coverage. These ones are particularly helpful when the size of the project grows: a visual representation helps the developer to better identify areas that needs more work (and then save development time).

Recently Patrick contacted me for highlighting the new features available in NDepend v4.1. I was very pleased to find support for Windows Store apps but another capability got immediately my attention: CQLinq.

This is a killer feature: CQLinq (acronym for Code Query LINQ) enables the developer “to query the code” for retrieving information about it. Some simple examples of queries could be:

  • find me the methods too big / too complex;
  • find the methods added but poorly covered by tests;
  • get information about naming conventions;
  • any other query you like: the possibilities are not limited at all!

Technically these queries can be constructed using the traditional LINQ syntax and the types defined in the NDepend.CoreModel of the NDepend API.

The best place to start using CQLinq is here by exploring the dedicated section on the site which contains a ton of different examples to start: I recommend to try and run the available samples which are an excellent starting point and then modifying them for custom queries.

I’ve been really impressed by CQLinq and I can’t wait to use it on real projects to enhance the quality of the code and then reduce the time needed for new implementations.

Happy coding everyone!

Programming .NET 3.5 by Jesse Liberty and Alex Horovitz

In these days I’m expanding my knowledge reading some great (and enjoyable) books.

Programming .NET 3.5 by Jesse Liberty and Alex Horovitz is one of my favourites: it gives you the “big picture” of the various technologies included in this release of the framework: N-tier applications, WPF, WCF, Silverlight, AJAX, LINQ, MVC and patterns.

Highly recommended!

Parallel programming with .NET: June 2008 CTP of Extensions

It’s available for download the June 2008 CTP of Parallel Extensions for .NET.

In the package I’ve found several great examples about:

  • Blending images;
  • Ray Tracing using Parallel LINQ (PLINQ);
  • A parallel implementation of the Sudoku game;
  • Mandelbrot Fractals;
  • Several PLINQ and TPL (Task Parallel Library) applications.

These examples demonstrate how the use of LINQ can be a good starting point for optimizing performance on multi-processors or multi-core machines.

Continuous LINQ (CLINQ) v1.1.0.0 released

“Continuous LINQ is a .NET Framework 3.5 extension that builds on the LINQ query syntax to create continuous, self-updating result sets. ”

In this article, Kevin Hoffman describes the new functionalities introduced, in particular the possibility to use some aggregate functions such as Average, Min, Max, Sum, StandardDeviation, Sum.

Check out CodePlex to download CLINQ source code and a great WPF demo with data binding and charting capabilities.