So it has been a while since I have done any game programming in C#, but I have had a recent bug to get back into it, and I wanted some opinions on what configuration I should use.

I wanted to use C# as that is what I use for work, and have become vary familiar with. I have worked with both DirectX and OpenGL in the past, but mostly in 3D, but now I am interested in writing a 2D game with all vector graphics, something that resembles the look of Geometry Wars or the old Star Wars arcade game.

Key points I am interested in:
• Ease of use/implementation.
• Easy on memory. (I plan on having a lot going on at once)
• Looks good, I don't want curve to look pixelated.
• Maybe some nice effects like glow or particle.

I am open to any and all suggestions, maybe even something I have not thought of...

+1. XNA has vast support out there and plenty of books to to offer more support.
–
Neil KnightMay 15 '10 at 7:17

And in addition, if you use XNA you'll immediately have a place to put it for people to try it with only minimal additional effort: XBox Live Indie. Unlike other publication methods, it requires a very minimal amount of functional guidelines to follow, and in exchange you hit tons of potential people to try it out (if you're into getting people to try it!) You also get access to much more than just graphics APIs with XNA. you get sound, input, file access... everything that you need to think about when making games.
–
EdgarVeronaMay 15 '10 at 15:49

I create my OpenGL engine with a C# wrapper because I like C# a lot too. Sadly managed languages are very slow when it comes to graphics and that's why I always make my OpenGL part in C++, compile it as a DLL and get it from C# using interop. If you by any chance dislike DirectX than I suggest you stay away from XNA. Everybody I know is very dissapointed about it and switched back to C++(OpenGL) + C#.

You might consider using the Axiom engine, which is a C# port of Ogre3D. It's enough higher level that you can have it render your graphics via XNA or OpenGL with little or no change to your code. It can also handle keyboard and mouse input (which are normally separate -- e.g., via DirectInput on Windows or SDL on Linux).