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.
I've only used it for 2D games, and for that, I really like it. I used it to submit 2 (and soon to be 3) games for the Xbox 360. It takes a while to learn but if you look up tutorials online, learn why each command does what it does, and practice a lot, you'll soon learn how to take advantage of it and make a great game.
One thing that I don't like however is the way it saves games. I've had trouble using the code for it because it's pretty complicated. I had so much trouble that I only used it for a single game. Now I only used this feature on the Xbox 360 so I don't know about Windows Phone or PC.
In my opinion, it's a fine product once you know how to use it.