Archives
-
How to use T4 templates in WP7, Silverlight, Desktop or even MonoDroid apps
In other words, how to use T4 templates without ANY runtime dependencies? Yes, it is possible, and quite simple and elegant actually.
-
How to create lightweight reusable source code with NuGet
Sometimes, you just have a reusable helper that you bring in to every project (i.e. an argument validation thingy, or the static reflection stuff, useful extension methods, and so on). You don't always need them all, they are generally single-file utilities, and having a Common.dll looks overkill or dumb.
-
How to inspect a type inheritance tree properly
You might think this is a trivial thing, with Type.BaseType and Type.GetInterfaces already there. But there's catch: the GetInterfaces method will give you all the implemented interfaces by the concrete type, as well as all its base types, as well as all the interfaces inherited by other interfaces it implements. What a mess! To make it more clear, say you have the following types:
-
Team and OS resilient assembly references for Visual Studio Extensibility development
-
The future of video conferencing is NOT a webcam and a TV, it's 3D augmented reality, and it could happen really soon
-
How to remove all useless new lines in automatic properties in an entire solution
-
Old style imperative mocks vs moq functional specifications
-
Keeping lists of frequently used assembly references
-
How to add Twitter support to UserVoice using Yahoo Pipes and FeedBurner
For our recent launch of World of VS, we used UserVoice to provide users with a way to suggest 'What should be the next super cool extension' (and win a full MSDN Universal subscription in the process!).
-
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.
-
Simplified INotifyPropertyChanged Implementation with WeakReference Support and Typed Property Access API
I've grown a bit tired of implementing INotifyPropertyChanged. I've tried ways to improve it before (like this "ViewModel" custom tool which even generates strong-typed event accessors).
-
How to set the startup program for debugging a project for the entire team
You surely have set the startup application for a project countless times:
-
How to install Reactive Extensions for .NET 4.0 Beta 2 on VS2010 RC
- Get the .NET 4.0 Beta 2 download from MSDN.
- Open the downloaded .exe with 7zip (i.e. right-click on file, select 7-Zip > Open Archive)
- Navigate to the .rsrc\RCDATA\ "folder" and open the CABINET file:
- Extract the contained MSI, install and enjoy!
-
How to quickly setup the best free Diff/Merge tool with VS 2010
First go get the tool. It's free and it rocks.
-
Software Development Productivity
Scott Bellware has an interesting series of posts where he discusses how to get back to productive development teams. As usual in his writing (IMO), in a rather verbose way he brings up quite a few good points. Please go ahead and read them. He links from the first entry to the next so you can follow the flow.
-
How to transform old properties to automatic properties with a ‘simple’ search and replace
Say you have a (typically autogenerated) class with properties like:
-
How to get out of the GAC all the registered assemblies
You know how annoying the GAC shell extension makes it to access the actual assemblies:
-
Why Windows Media Center is dead
Windows Media Center (WMC) is based on a relatively simple (albeit awfully implemented) principle: you have ONE "server" PC holding and running your media, and then you associate any number of Media Center Extenders to it that are typically (except for the XBox 360) single-purpose devices that can only act as such and are fancy and silent enough to deserve a place in your living room.