Microsoft XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates video game development and management. XNA attempts to free game developers from writing "repetitive boilerplate code" and to bring different aspects of game production into a single system.
A very well built and optimized 2D and 3D programming framework. While some parts are restrictive, this is the most suitable platform for anyone wanting to make games and learn programming.