I have been asked this question several times during the last month and I have tried to shed some light on that during my session at OpenDoor Egypt. Today, I stumbled upon a good MSDN article that concisely answers this question :
Happy Coding :)