One of my favorite bloggers, Stefano Demiliani, posted NET Applications on the real world... a few days ago with some good deployment stats on .NET 1.0, 1.1, and 2.0. I commented to Stefano that I was going with .NET 2.0 on a new Windows Project for several reasons. 1) the initial development will require at least a couple of months (moving closer to actual 2.0 release), 2) Because I'd be learning new .NET technologies anyway it would be best to learn, say, Click-Once deployment instead of the 1.1 deployment and update approach, 3) new .NET 2.0 Windows Forms features not found in 1.1, 4) The excitement of working a new development environment translating into greater productivity, 5) avoiding a future migration from 1.1 to 2.0, and 6) building for the future.
But now after a few days have gone by and the idea of loading up .NET 2.0 Beta 2.0 on my workday machines is getting real, I've decided to pull back from the 2.0 beta and start a new Windows Forms project in .NET 1.1 instead. Those reasons I mentioned for going with 2.0 are good ones, but the bottom line is that .NET 1.1 is the best choice for the project and for my employer.
.NET 2.0 is not expected until the end of 2005 (if not later), and that's seven months away. That's a LONG time when considering the commercial impact of a product developed on beta software. And the idea of loading a beta framework on any of our company servers to support the application (even secondary servers), but most particularly, on my colleagues' and boss's computer in the upcoming months is something I will not do. I loaded Beta 2.0 of the .NET 1.0 framework on several of my home office network machines, but I didn't load it on any company server or user's machine. And I'm not going to load a .NET 2.0 beta on them either. Virtual PC is great, but apps built for the real world have to be built IN the real world.