This week we released Patch 1763 for Enterprise Library January 2005 (“1.0”) to our GotDotNet Community site. Full information about what the patch is, when and how to apply it is described in the Readme, but I wanted to give a quick explanation here.
To give you some background, the .NET team has been working very hard to ensure backwards compatibility between .NET 2.0 and .NET 1.1. “Compatibility” includes a few different things, including the ability to run .NET 1.1-compiled binaries in the .NET 2.0 CLR, and the ability to compile .NET 1.1 source code under a .NET 2.0 compiler. While the team has done a great job with compatibility, with so many changes happening under the covers, it isn’t possible to guarantee compatibility across all apps – especially since different applications make different assumptions about the environments in which they are executing, which may have held in .NET 1.1 but are no longer the case in .NET 2.0.
When we built Enterprise Library January 2005, .NET 2.0 was pre-Beta 2 and still undergoing a lot of change, so it wasn’t possible to do any very useful testing against .NET 2.0. However now that .NET 2.0 is nearing the finish line, we went and retested both the January and June releases against the newest .NET 2.0 bits. The focus here was on testing whether existing, compiled .NET 1.1 apps using Enterprise Library would work under the .NET 2.0 CLR. This can be important when you may want to deploy your application on machines with only .NET 2.0 installed, or if you have components running in an environment that automatically loads the latest version of the .NET CLR, such as COM add-ins. As a result of this testing, we found that while the June release worked fine, the January release was making some assumptions about the layout of configuration files which weren’t valid in .NET 2.0.
So we released Patch 1763 to change the way that the January release deals with configuration files. If you have built apps with EntLib January and there is any chance you may want to run these under .NET 2.0, you should apply the patch to the Enteprise Library source, recompile the Configuration assembly and deploy the new assembly to your applications. If you know you won’t want to run your apps under the .NET 2.0 CLR, there is no need to deploy the patch – and the patch is not needed (and shouldn’t be applied) for Enterprise Library June 2005 (“1.1”). Note that the June release includes a number of important bug fixes over January, and you should be using this for all new development anyway.
Many of you may have already noticed that Enterprise Library January could not be compiled or run under .NET 2.0 beta 2, and while the June release can be made to work, it’s necessary to change some conditional compliation constants as described in the Readme. Most of compatibility issues that exist in .NET 2.0 Beta 2 but will be resolved in the final release – however the configuration file format issue in the January version could only be addressed through the patch that we just released. By the time .NET 2.0 is released, the June version should run fine, with or without the conditional compilation changes. But of course, the upcoming Enterprise Library for .NET 2.0 is where you will want to be, once we get it finished!
And – most importantly – congratulations to the Sydney Swans for their great win against the West Coast Eagles in yesterday’s Aussie Rules Football grand final. We were at a great grand final party here in Seattle, complete with meat pies, sausage rolls, lamingtons and far too much beer – all of which I’m paying the price for this morning :-). Still it’s great that you can still get some great Aussie “culture” (many would call that an oxymoron) so far away from home!