Ok, that’s meant to be sarcastic…
As some of you may have noticed I had spent a bit of time porting one of my internal applications over to .NET 2.0 as an exercise to see what’s involved and to get a good feel of the administrative process. All at the same time I’ve been slowly cleaning up this version of the West Wind Web Store to remove the deprecated functions and adding a few simple 2.0 features that have obvious applications right away. Note that at this time - knowing that I need to continue sync to some degree with the 1.1 app - I haven't gone full bore into ripping and tearing out functionality that would be easy to replace with some of the built-in features of 2.0.
One of the enticing reasons besides the many new and useful features is the VS.NET 2005 IDE. The Refactoring tools especially are hard to give up when going back to 2003.
Anyway, as I was working on new features I realized that the 1.1 product too could use some of new these features and components I ended up building as a result so I’ve been slowly backfitting a lot of the new features and updates into the 1.1 version as well. Working with 2.0 Script Callbacks for example, I realized that a couple of apps I'm working on could definitely use some of this capability and so I implemented a new control that manages this process for me which is more lightweight and easier to use than the script callback mechanism in 2.0. And so there are lots of things that go that route - back and forth, back and forth, adding tools and components to the toolbox in both versions. But I've been doing most of my work in VS.NET 2005 and aside from some beta pain, the experience is starting to grow on me at least from the development end (not so much from the deployment end which downright sucks).
So yesterday I got a call for a new custom project and of course there’s no chance to do this project in 2.0 at this point, which is really a shame. Some of the projects features ended up being generic enough to backfit into the base store software, and so here I’ve been for 2 days working on two versions of the software at the same time.
Aaaaargh… this is a pain. Self inflicted at that. I know the rules - never screw with beta software for production code (or semi-production code for that matter). My plan had been to move into the 2.0 version and enhance that especially since my site is running the 2.0 version now. But of course reality sets in and you end up back in the old version for day to day work and you realize that this great thing you just built in 2.0 can also work with a few minor adjustments in 1.1. And here I am going back and forth.
So anybody have any great suggestions on keeping two codebases – framework code and app code – synced up? <g> My approach has been brute force. Create it in one place and immediately turn around and move it to the other version. Even that is pretty hairy as I deal with framework and application code so typical business changes end up touching at least two projects. Framework changes are easier because most of those are isolated and tend to be kept in plain classes that just work across versions as long as I keep 2.0 code out of it (which at this point hasn't been a big problem for me).
The big issues are the UI and UI front end code (Code behind) code which has been moved around quite a bit recently, so I can't cut and paste the entire thing, but I have to move things around in small snippets or control level blocks. So far it seems to work OK, but man is this ever tedious.
The worst part about this is that I could just say screw it and go do with what I need to do in 1.1 and then later add it back to 2.0 but it seems to me it'll be so much more difficult to move this over later when I forgot how the logic is tied together...
Patience is a virtue - I apparently failed to appreciate it <g>...
Other Posts you might also like