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.
XNA is a very useful game development system, and though I personally have never used it, I have played many good indie games for the Xbox 360 that utilises this system. K. Lim.
(Please note that I am a friend of the owner of this account, and my opinions do not necessarily reflect his views.)
While not an engine it is an extremely useful frameworkt that saves me a LOT of time when making games... just beware that is made by Microsoft, so unless you use unoffical porting software you are stuck with releasing your games on MS devices