Daniel Cazzulino's Blog
-
Search References multi-platform support is forward-compatible
-
How to listen to online radios in Android
-
Hello World of VS
At Clarius we've spent years doing Visual Studio extensibility. Literally. We LOVE doing so. We did so much of it during the years that chances are pretty high you've been using some of our stuff (fully or partially developed by us) at one point or another. A non-exhaustive list includes:
-
How to install Visual Studio 2010 Search References and Pro Power Tools side by side
The new Visual Studio 2010 Pro Power Tools bring a new Add Reference dialog that completely replaces the classic one when you click the familiar Add Reference command:
-
Add References with Search
If you have been using VS2010 for any significant amount of time, you surely came across the awkward, slow and hard to use Add Reference dialog. Despite some (apparent) improvements over the VS2008 behavior, in its current form it's even LESS usable than before. A brief non-exhaustive summary of the typical grief with this dialog is:
-
MEF, IServiceProvider and Testing Visual Studio Extensions
In the latest and greatest version of Visual Studio, MEF plays a critical role, one that makes extending VS much more fun than it ever was.
-
WCF Data Service Pipeline
For documentation purposes, I just draw the following UML sequence diagrams for the “Astoria” pipeline, using Visual Studio 2010 Ultimate:
-
A really simple ViewModel base class with strongly-typed INotifyPropertyChanged
I have already written about other alternative ways of implementing INotifyPropertyChanged, as well as augment your view models with a bit of automatic code generation for the same purpose. But for some co-workers, either one seemed a bit too much :o).
-
Crazy Linq: performing System.ComponentModel.DataAnnotations validation in a single statement
public static IEnumerable<ValidationResult> Validate(object component) { return from descriptor in TypeDescriptor.GetProperties(component).Cast<PropertyDescriptor>() from validation in descriptor.Attributes.OfType<System.ComponentModel.DataAnnotations.ValidationAttribute>() where !validation.IsValid(descriptor.GetValue(component)) select new ValidationResult( validation.ErrorMessage ?? string.Format(CultureInfo.CurrentUICulture, "{0} validation failed.", validation.GetType().Name), new[] { descriptor.Name }); } ...
-
How to merge your referenced assemblies into the output assembly for improved usability
Something we've been doing in moq since the very beginning is to have a single assembly as output: Moq.dll. This reduces the clutter for users and lets them focus on what they need from our library, rather than getting the noise of whatever third-party (or internal) libraries we use to implement it.