The Multi-Targeting feature introduced with VS2008. What this meant was that you could use VS 2008 to create and edit not only .NET 3.5 projects, but also .NET 3.0 and .NET 2.0 projects as well. However with the belows facts.
· .NET 2.0, .NET 3.0, and .NET 3.5 all ran on top of the Same Version Of The CLR but with Separate .NET versions Framework Libraries
· i.e. The primary difference between the .NET versions was in their framework libraries.
· As a result, Visual Studio’s compilers were able to generate the same IL output, the debugger was able to debug against the same CLR engine.
· And the IDE support for multi-targeting was primary focused on filtering out new assemblies and project templates from showing up when they weren’t supported with a given .NET version.
This multi-targeting experience worked – although it Wasn’t Perfect.
· Intellisense within VS 2008 always shows the types and members for the .NET 3.5 version of a framework library (even if you are targeting .NET 2.0).
· This means that you can sometimes inadvertently end up using a method that is only in ASP.NET 3.5 even when you are working on a ASP.NET 2.0 project.
So What Is New with VS2010?
VS2010 made major architectural changes with VS 2010 to enable much better and more accurate multi-targeting support.
· NET 4.0 has a new version number for both the Framework Libraries and CLR Engine – which means it runs completely independently from .NET 2.0, 3.0 and 3.5.
· VS 2010 now ships what we call “Reference Assemblies” for each version of .NET.
· A “reference assembly” contains only the metadata of a particular framework assembly – and not its actual implementation (making it much smaller in size on disk). This metadata is enough, though, to ensure that VS 2010 can always provide 100% accurate intellisense when targeting a particular version of the .NET framework.
· It also means that properties exposed through the property grid within designers, API listings within the Object Browser, and all the other various places within the IDE accurately reflect the exact API version signature.
Hope this helps.