I’ve been working on session for DevTeach using Whidbey and it’s killing me! As some of you may know I have some reservations about writing or doing sessions on early release software that is very likely to change. The topic – in this case Master Pages and Themes in ASP. Net 2.0 – is one that is very dear to me since I and quite a few others have spent a fair amount of time working around some of the version 1.1 limitations to build consistent site designs. I made an exception to my inofficial rule because I think it’s not a bad idea to get a head start on this particular technology and understand how it might affect ASP. Net applications in the future.

 

When I originally signed up for this session (sometime late last year actually) I was pretty sure we would have at least a beta to work with, but now – over a half a year later, we still have nothing more than a really, really buggy pre-release Alpha version to work with. The VS2005 Community build is certainly not stable by any definition. The framework on the otherhand does work reasonably well and works well enough to demonstrate coding concepts.

 

I guess I’m just whining right? After all, you can do all this stuff by hand. But, the reality is nobody wants to work like this anymore. Heck, not even the C++ guys do <gd&r fC++D>

 

I spent the better part of three days fighting VS.Net and get preciously little done. Sure the basic stuff works reasonably well, but when you have interaction between a few components it sure helps to have a development environment that supports you and currently VS.Net certainly doesn’t do much in this part.

 

In my installation for ASP. Net very few things work as they should. For one all the project templates do not work, so I had to add everything manually to the project and create files from scratch. Yeah, so what? Easy right – not really. With Whidbey’s new CodeBeside model things are easier but it’s not so easy to figure out what you need and what you don’t anymore for pages controls etc.

 

The CodeBeside model also seems like a big step backwards, back to the days of putting code and HTML markup into the same page. While the editor makes it so that code and HTML are separated, the model here is still declarative where you have to define things like imports and namespaces as markup tags. It just doesn’t feel right to do this. Instead of working with a ‘real’ class you work with an HTML document with script code embedded in it that the compiler declaratively converts into a class. For coding, I prefer a ‘real’ class with a class definition.

 

You also don’t compile a Web project – in theory you can just run, since the pages dynamically compile at runtime. You can precompile or run a ‘Validation’ step which basically lets you know about compile errors. You don’t loose functionality exactly, but it sure seems like there are more steps to get the same behavior we used to have.

 

Luckily it appears that Microsoft will go back to the CodeBehind model as the default for the beta – I sure hope so. I never really understood what was so supposedly difficult about this model other than the code clutter of the ASPX and .cs file, which would be easy to handle for VS.Net by sticking the .CS files into a separate directory. Having a separate DLL for the codebehind classes does not seem a big issue even if you have to update that DLL as a whole.

 

I can see merit for the single page model for simple pages in an otherwise non dynamic Web site for things like counters, logging, tracking etc. I’m planning on using more of this for my main Web Site which is mostly static. But if the idea was to remove complexity having all those special directories for CodeBeside doesn’t seem to make things less complex.  If anything it makes deployment more complicated.

 

The worst issues I’ve run into have to do with VS.Net’s IDE. Over the last 3 hours I’ve locked up VS no less than 10 times. And when I mean locked up I mean REALLY locked up to the point where even task manager is slow to come up and it really is a task to try to kill DEVENV from the task list. Nothing like wasting 5 minutes trying to kill VS.Net which has taken over your computer.

 

I find it fascinating that Microsoft would put out software at this quality level. I know, I know, we’ve been warned that these builds would be unstable, but if you had a software product and you were in process of building a new version and handing out pre-release versions would you put out a product that has serious problems on this order of magnitude? Add to that the install issues I wrote about earlier which were obvious oversights? The community build looks just like a run of the mill daily build that was put out for public consumption. For a build that’s reaching probably a hundred thousand developers that seems like a funky policy to me…

 

Remind me not to sign up for sessions on software that’s not released yet. It’s not worth the effort. Let somebody else bleed for this stuff. I’ll play, but I don’t want the burden of having something to present that people go home with and only will find either crashing (environment or code) or be completely obsoleted by the time the next pre-release rolls around.

 

Serves me right – I should stick to my own values…