Visual Studio Express 2012 for Windows Phone can be used to develop both WP7 and WP8 applications and games. WP8 can run WP7 Silverlight applications and XNA games but it is important that you test your program on a real WP8 device during development. Using VS2012, you can still use the WP7 Emulator or deploy to either a WP7 or a WP8 device to test and debug your WP7 projects. Any WP7 project that you have created using VS2010 can be directly opened in VS2012 so you can still use your current setup to start developing your games but you will not be able to test or debug them effectively on a WP8 device without VS2012. However VS2012 for Windows Phone can only run on a 64-bit Windows 8 machine. If you need to run the WP8 Emulator, your machine must be running the 64-bit Windows 8 Pro edition and supports virtualization.
Originally Posted by thebob1
It is much easier to learn and write games using C# / XNA when compared to C++ / DirectX. C++ / DirectX just makes it easier for developers on other platforms to port their games over to Windows Phone and can take better advantage of the more advanced CPU/GPU to support higher resolutions and programmable shaders. These are features that are not available for XNA regardless of whether your XNA game is running on a WP7 or a WP8 device. XNA is still good enough for indie game development and I see no reason why you can't use it to develop most of the 2D (e.g. Angry Birds) and 3D (e.g. ilomino) games you find on the Windows Phone store today. However you can only achieve the high level of graphical fidelity in 3D games like Spartan Assault and Nova 3 using C++/DirectX on a WP8 device but those are not the type of games that you can develop on a tight budget with a small development team on your first foray.
This does not mean that your XNA game cannot take advantage of any new features of a WP8 device. You can still use .NET reflection to detect and use WP8-only features. For example even though In-App-Purchase is only available for the WP8 OS, there is still a way that you can access this feature from your XNA game as long as it is running on a WP8 device. Some WP8 users using high-resolution devices may complain that the graphics in XNA games are blurry. XNA games only support WVGA and lower. To reduce blurriness on high resolution devices always use the maximum available resolution for XNA games (800 x 480) so even though it would still scale, it won't be as bad as scaling up lower resolution games like 600 x 360 or 400 x 240. Another issue is black bars will appear for HD720 devices like HTC 8X devices because WVGA scales perfectly to WXGA (scale factor 1.6) but not HD720 (scale factor 1.5). Through reflection, you can still detect the scale factor on the WP8 device and use a slightly lower resolution for your game that will scale better to HD720 and eliminate the black bars that HTC 8X owners complain about when playing WP7 games.
Don't worry if all these differences are too much to take at once. One nice thing about the Windows Phone store is that you can publish a single version for all devices or you can publish separate versions for WP7 and WP8 devices. You can also publish separate versions for WVGA, WXGA and HD720. You should always start with a WP7 game using the WVGA resolution because this will target the largest Windows Phone audience. You can then publish it as a single version for WP7 and WP8 (WVGA and WXGA). You can then add a some extra code and make changes to your game to support 800 x 450 rather than 800 x 480 to eliminate black bars on HD720 devices. If it's too difficult for you to write code to support two resolutions at the same time in the game, you can build and publish a separate version. You can still use the same project and codebase but compile to two separate versions. You can create a symbol to compile different code for each version as shown below.
public const int SCREEN_WIDTH = 800;
public const int SCREEN_HEIGHT = 450;
public const int SCREEN_WIDTH = 800;
public const int SCREEN_HEIGHT = 480;
That's all I can think of at the moment but feel free to ask if you need more information.