Getting change notifications from any dependency property in Windows Store Apps

When declaring a dependency property, you can specify a callback to be called when the property changes. However if you want to be notified of changes of a property that is already declared, you have to rely on the class exposing an event for it (like TextChanged on the TextBox for the Text property). This…


Why dependency properties need a wrapper

Dependency properties are not a new thing, they have been part of WPF and Silverlight for years. They enable key features such as data binding, styles, animations, change notifications and default values. Their behavior however can differ slightly from API to API, WPF and Silverlight for example, have slightly different behaviors when it comes to dependency…


The golden rules of Windows Store Apps design

After my previous article about default styles and templates of XAML controls, here is the next set of useful MSDN resources for a Windows 8 app developer/designer. Those two pages give the golden rules of a Windows Store App design: Laying out an app page Guidelines for fonts Following those guidelines will ensure you have…


Default styles and templates of XAML controls for Windows Store Apps

In the early days of WPF and Silverlight, the only way you could get information about the default templates and styles of controls would be by opening Blend and editing a copy of the default style. Fortunately, this information is now documented on MSDN, however it is not always easy to find. In order to…


Pin any executable to the Windows 8 Start screen

The Start screen in Windows 8 is a full screen replacement of the old Start menu. You can think of it as a Start menu 2.0. It has been designed to not only work for classic mouse and keyboard input, but also for touch devices, and let’s admit it, it is much more aesthetically pleasing than…


A foreach statement for IObservable

Asynchronous programming is a very powerful tool. It is key for responsiveness on the client, and scalability on the server (see the C10K problem). However in most modern programming languages, it comes at a pretty high price: when you want to consume the result of an asynchronous operation, you have to provide a callback function…


Task<T> vs IObservable<T>: when to use what?

The Task<T> class was integrated with the .NET Framework in .NET 4.0, as part of what is known as the Task Parallel Library. The main purpose of the TPL was to facilitate writing parallel code, making it easier to run code on multiple cores, for instance. That is why the class itself was called Task,…


Git on the cloud with Windows Azure

Here are the four parts of the walkthrough I wrote about using a Linux virtual machine on Windows Azure for hosting a Git repository on the cloud: Introduction Provisionning a virtual machine on Windows Azure Setting up the server Configuring your client  


Hosting Git on the Cloud with Windows Azure Virtual Machines (Part 4)

In part 2 and part 3, we have created a Virtual Machine running Linux though Windows Azure Virtual Machines, and we have setup a Git repository on the VM. We are now going to see how to clone the repository, and push back the changes. In this blog post, we will use TortoiseGit on Windows…


Hosting Git on the Cloud with Windows Azure Virtual Machines (Part 3)

In the previous post, we have seen how to create a Virtual Machine on Windows Azure running Linux (Ubuntu Server). We are now going to see how to setup Git on that machine. I will assume you are running Windows on your client machine. We will use Putty to connect to the Virtual Machine using…