The main advantage of XNA over direct x is the inizialitation
It seems to be a silly stuff but believe me ,Direct x was a nightmare from this point of view
XNA use C# which is definetly simpler than C++
Beside XNA supplies a library of the most common functions
Having said that do not assume that XNA is a game engine
XNA is a framework or, if you prefer, a sort of " organizer " of your game \ graphic oriented code
Very important, do not undermine it
However you must code by yourself all the essential game engine features
An hard task believe me
In my opinion it can be of use to develop specific multi media applications \ simulations thanks to its flexibility
As far as games are concerned I would stick to a commercial game engine
If you are still interested I would suggest to buy the book
" XNA 2.0 Game programming Recipes " by Riemer Grootjans
If you put all the recipes togheter (abt 700 pages) you get a very basic game engine