MetroBackUp - Applying Metro UI and Flow Design (Event-Based Components)


Four years ago I wrote one of my first WPF applications. It was named 'BackUp' and enabled you to keep directories in sync (similiar to Microsoft's SyncToy).
Actually I learned a lot of the WPF stack by creating this application, but since I did use code behind instead of the MVVM pattern, it was a good occasion for refactoring the code and applying a new UI.
In this post I will present the new Metro UI and describe my experience in using event-based components for the synchronization workflow.

VSTO - Importing Google contacts to Outlook 2007


For a long time I have been using Outlook to manage my contacts and appointments. I always synchronized my mobile phone with Outlook. After buying an Android device things have changed.
Now I use Google Contacts and Google Calendar to manage my contacts and appointments. Since I still use Outlook I need an easy way to synchronize Google with Outlook. Google provides GoogleCalendarSync to synchronize your calendar, but synchronizing contacts is only available for business customers.
In this post I will provide an Outlook addin which imports your Google contacts to Outlook.

.NET 4.0 - Covariance and contravariance

.NET, C#

Today I took a look at the new covariance and contravariance features of .NET 4. In this post I will explain the theoretical background and will provide some practical examples.
The code snippets cover most of the features of CLR 1 to CLR 4.

AOP - Interception with Unity 2.0

.NET, C#

Unity is a well known dependency injection container. Custom extensions can be created to extend its functionality. The download of Unity contains an extension for interception.
In this post I will show you, how interception can be used for separation of cross-cutting concerns.

PartCover - Coverage of unexecuted methods - Part 2

A few weeks ago I blogged about a problem concerning coverage of unexecuted code in PartCover. The problem was that the report generated by PartCover does not contain any coverage information about uncovered methods. That implicated, that my tool ReportGenerator calculated a wrong coverage quota, since the lines of unexecuted method were considered to be 'not visitable'.
I claimed that it would not be easy to create a workaround for the problem, but actually it isn't that difficult, if you use the right tools.