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!
The last week has been very exciting for Microsoft developers: The //build/ conference in Redmond was full of amazing content including Windows 8, Windows Phone 8 SDK, Microsoft Surface, Xbox SmartGlass, Kinect for Windows and the new language TypeScript.
Unfortunately I hadn’t the possibility to participate at the conference but had some free time during the week-end to watch some of the recorded sessions available here on Channel9: this is really a great resource and I suggest everyone interested in Microsoft technologies to download some videos and have fun with it.
I decided then to take a look at the new features available in Windows Phone 8 and the related SDK: Justin Angel has a great article about this topic in the Nokia Developer Community.
To get my hands dirty I moved then on my personal Open-Source project “Multi-Touch Behaviors” on CodePlex: this is a set of Epression Blend Behaviors for different platforms including Windows Phone, Silverlight and WPF for applying gestures and manipulations (like the one available in the “old” ScatterView control) to generic XAML elements.
The project was not yet updated to Windows Phone 8 so I took this opportunity and experimented with the new SDK: this was really a great experience since I was able to upgrade quickly all my samples to the new platform using the same codebase used for the Silverlight version.
Unfortunately I haven’t the possibility to test the performance on a real Windows Phone 8 device at the moment but the first impressions are really positive.
I have already checked in the code for WP8 here, I’m planning more testing and development in the future.
Happy XAMLing everyone 🙂
I’ve just published on CodePlex and the Expression gallery a new release of the Multi-Touch behaviors including these new features:
- support for Windows Phone 7.1 Beta 2 (refresh) “Mango”;
- added new property “IgnoredTypes” for excluding particular control types from the manipulations (thanks to Richie for the suggestions, feedback and code samples);
- the “Manipulation Processor” and “Inertia Processor” are now exposed by the behavior in order to enable personalized manipulations and gestures;
- new properties: CenterX, CenterY, Rotation, Scale permit to support custom gestures like “DoupleTap” zoom;
- Silverlight 4 and Windows Phone 7.1 samples updated with a simple “DoubleTap” zoom example using the new exposed properties.
The source code and samples are available for download here.
David Catuhe has announced the availability of Babylon, a 3D engine written to demonstrate the power of Silverlight 5 Beta.
The source code is available for download here together with many other samples for Silverlight 3D in the MSDN Code samples gallery.
Also check out these useful resources by Aaron Oneal:
A quick shoutout to point out that David Hill has just released a new version of the PRISM Template Pack now including both MEF and Unity support.
Other useful resources about PRISM 4.0:
In these days I’m receiving several questions in the Multi-Touch Behaviors forums about enabling Multi-Touch manipulations in Windows Phone applications composed by more than one page.
Today I’ve modified the available sample inserting an additional page containing an image enabled for translation, rotation, zoom and inertia via the usual “MultiTouchBehavior“:
Starting from release 0.6.1 it’s now possible to use the Behavior in different pages of the application, in this way enabling multi-touch in different elements of a Windows Phone 7 application.
As usually the sample code is available for download on http://multitouch.codeplex.com, check out the Visual Studio solution “SilverlightWP7MultiTouch.sln” which contains all necessary libraries.
I’ve received several requests about the modalities of enabling multi-touch on a UI element using the Behavior available on my CodePlex project.
The traditional syntax using XAML is here:
<Image Source="Images/Desert.jpg" x:Name="image1">
What about if you want to achieve the same result using C#? Just obtain a collection of behaviors for your element and then add/remove the MultiTouchBehavior using the following syntax:
private void btnAttach_Click(object sender, RoutedEventArgs e)
var behaviors =
var mtb = new MultiTouchBehavior
IsRotateEnabled = true,
IsScaleEnabled = true,
IsTranslateXEnabled = true,
IsInertiaEnabled = true,
AreFingersVisible = true,
MinimumScale = 20,
MaximumScale = 200
mtb.Move(new Point(200, 150), 45, 100);
private void btnDetach_Click(object sender, RoutedEventArgs e)
var behaviors =
if (behaviors.Count > 0)
As usually the source code is available for download on the Multi-Touch CodePlex project (check out the SilverlightWP7MultiTouch Solution).
Oh, did I already say that it also works on Windows Phone 7? 😉
I was following this thread on the Silverlight forums and was asked to update the Duplex sample to Silverlight 4.
Click here to download the code.
More information about Duplex Services are available here:
Check out this new article by Patrick Smacchia about the new Contextual-Sensitive help feature in NDepend v3.2.0.
More details about NDepend (which now supports Visual Studio full integration) are available here:
I’ve just finished some experiments using the Windows Phone 7 emulator and the “Microsoft Surface Manipulations and Inertia Sample for Microsoft Silverlight” in order to enable Multi-Touch gestures using Blend Behaviors:
This new implementation, now available for download in the Expression Gallery, permits to enable Multi-Touch gestures (the usual translation, rotation, zoom and inertia) on separate User Controls available in the same container.
In this way you can apply distinct Multi-Touch manipulations (inertia included) to single elements using a single code in xaml:
Alternatively you can use Blend inserting a reference to the project MultiTouch.Behaviors.Silverlight.WP7 and then dragging the MultiTouchManipulationBehavior from the Assets section to the control to be touch-enabled:
This one has been an interesting exercise in porting code written for Silverlight to Windows Phone: I had only to create a Windows Phone 7 project and add to it the code already available for the Silverlight version and all worked well quite quickly.
At this time the behavior works only in the fixed Portrait orientation of Windows Phone: if you change to Landscape the manipulation doesn’t work well. I’ll have to investigate further and currently I don’t have a physical device to test (I’d really love to have a device to try it :)).