More information about the Underscore mailing list

[_] .Net v1.1 migration

Dan Fairs dan.fairs at gmail.com
Sat Dec 15 00:15:07 GMT 2007

>
> I think the product I'm managing is going to be facing the 1.1 ->  
> 2.0 move.
> What are the issues with migrating a large .Net v1.1 project? And  
> what are
> the benefits, aside keeping up with MS's plan to keep on making money?
>


At the Day Job, we have a couple of large apps we succeeded in  
migrating to .NET 2.0, and one we failed to do.

First off, the good stuff. Simple 'migration' is usually a no- 
brainer. The language is backwards-compatible, when people talk about  
migration, they're usually referring to moving VS2k3 to VS2k5 project  
files and the like. There's a tool for this, it comes with the IDE,  
it pretty much works. VS2k5 has numerous benefits over 2003 -  
integrated unit testing, code coverage and performance tools,  
refactoring tools, extensibility, etc.

The next decision is whether you change to the .NET 2.0 'way'. If  
you've got a ASP.NET 1.1 web app, for example, you probably have  
about a million user or server controls doing stuff like headers,  
footers, etc. .NET 2.0 way is using master pages. Or you might have  
nasty old .NET 1.1 grids, binding to DataSets, DataTables and  
DataViews - you've now got the option of doing more declarative  
binding in the page, using ObjectDataSource and friends. Lower down,  
you have generics, proper delegates, nullables, partial classes, and  
so on.

Why change? Because the .NET 2.0 way is better than the .NET 1.1 way.  
Mail me off-list if you want more gory detail :) It's also supported,  
and there are likely to be future migration paths. As far as I can  
tell, MS have basically thrown away .NET 1.1. However, there are  
clear routes from .NET 2.0 through to 3.0 and beyond.

So what were the characteristics of the apps we successfully  
migrated? First off, all of our apps are web apps, so we're talking  
ASP.NET. They're all also Oracle-based.

Basically the successful apps were the smaller (and younger, better- 
designed) apps. This probably sounds obvious, but the less 'weird'  
your app is (fewer complex custom server controls, best use of stock  
framework features) the more likely you are to be successful. The  
primary reason that the app that failed failed was a key control was  
sufficiently complex it proved difficult to port reliably. The app  
also depends on extensive, proprietary, non-standard Oracle data  
access code. (This is a salutary lesson for developers who like to  
add layers to make up for perceived deficiencies in the framework -  
don't do it. It makes migration hard.)

And if you can't migrate? Well, you don't really need to be firing up  
VS2003. You can compile .NET 2 stuff from within VS2005 - grab the  
MSBuild .NET 1.1 targets installer off t'internet, change one line in  
your .csproj files, and VS2005 will happily use the 1.1 compilers. We  
even have .NET 1.1 integrated into Team Foundation Server's (lump of  
shite, don't go there. It's better than Visual Source Safe in the  
same way that having one leg broken is better than having both legs  
broken) nightly build process.

I think Rick (nR) also mentioned that .NET 1.1 apps run happily  
alongside .NET 2.0. This is true, we've had no problems in this area.

I don't know what your ongoing relationship with the product is gonna  
be - but I don't know anyone who enjoys using .NET 1.1. Consider  
future recruitment needs. You could end up with a bit of a white  
elephant if you don't migrate.

What else? Well, I've said before that .NET 1.1 was an alpha release  
of 2.0. 2.0 is *much* better.

Of course - you could also rewrite the lot in Python ;)

Cheers,
Dan

--
Dan Fairs <dan.fairs at gmail.com> | http://www.stereoplex.com/