Microsoft's XNA is a game development framework which allow the creation of games for various platforms through the use of Managed .Net code. What I found extremely nifty while I was doing some research was that once I had a simple app running on Windows Phone 7. (emulator only since I've run into a little snag trying to obtain deployment credentials)
Since the app code is pretty simple, if I wanted to create a Windows desktop app all I needed was to select Create Copy Of Project For Windows and... Windows version of the same app!
Yes, I realize its because I have no UI code or anything platform specific, but I can't help but geek out a little by selecting Create Copy Of Project For XBOX 360 , added some code to control via the gamepad instead of the keyboard and...
As I've dabbled with DirectX previously in the past its very welcome to know that in XNA you get to worry about the important things like how to write your game then worry about detecting device context, getting exclusive access to hardware, etc. etc.
Hope I'll find more time to play with this.
You can try out the Windows version of the program here. Unfortunately, you need a pretty decent video card before you can run it.
Update – Figured out that there's a lower requirement Reach profile I can compile the program for, you can get it here.
You'll need to install the XNA Framework Runtime if you don't already have it by any other means.
Arrow keys to control the ship, Space to fire, Z to enagage DEATH BLOSSOM mode!