I've seen some nervousness out there with the whole issue of .NET 3.0. For example, if you download the new Microsoft Codename Max (think Flickr crashes into Picasa, plus an RSS reader), you are asked to install a beta .NET 3.0, which many people don't want to do. People have mission critical .NET 2.0 apps that they fear will break. I've also seen questions asking if our SDKs are .NET 3 'compatible'.

As I see it, there's little cause for concern. For a few years Microsoft have been talking about the WinFX framework (for Vista/Longhorn), that exposes a lot of services in a new object oriented way: presentation, data and comms. This has been designed to use and complement the existing .NET 2.0. The confusing part is that Microsoft have stopped talking about WinFX, and have dubbed it .NET 3.0. So .NET 3.0 is kind of on top of .NET 2.0, but slightly to one side, allowing existing apps to carry on the same, while creating new APIs for new Vista apps.

So the the naming doesn't help, but really this is like the whole history of Windows: we had Win16, then Win32, then .NET frameworks. Many Win16 apps still run today, and Win32 apps have had very good portability from Windows NT -> Windows 2000 -> XP -> Server 2003 and now Vista.