.NET platform is significantly fragmented now:
.NET that runs on Windows 8 is not same as one on Windows 7 and XP,
and Windows Phone 7.x and Windows Phone 8 are just similar, not the same.
Xbox is another dialect with similar, but not same features.
A suggested solution for reusing code between .NET platforms is
"Portable Class Library" (DLL) type of projects.
It includes a subset of features of .NET,
and until recently it didn't include new "async" feature from .NET 4.5.
Visual Studio 2012 is required, and it does not support XP.
On the other side, Windows Phone 7.x is not supported on Visual Studio 2012.
Sounds complicated? It is...
Microsoft is determined to get people to upgrade from XP...
(The other option is to just install Chrome browser on XP :)
Cross-Platform Development with the .NET Framework.
Async/Await Now Available for Windows Phone, Silverlight 4