Hi David,
Thanks for the reply. I have just been reading some stuff from the
link you have provided. It seems the CSLA is interesting.
Ironically, since you mentioned struts, VS.NET wound up at the msdn site
again today (totally off-topic, but does anyone know how to get to the
Start window in VS after it's closed?) and they just posted an article
that compares ASP.Net and Struts development. It's more of a rah-rah,
go team article than a serious analysis, but there's some interesting
stuff.
One thing
I have noticed, even with the big push towards a more OO based
environment, is that the envelope still hasnt been pushed. I am
looking at the latest Petshop example from Microsoft, and even that
still needs to push the envelope, at version 3.
Yeah, I'm not disagreeing, I was just pointing to the samples as a
source of ideas. I'm not exactly sure why, but there's always been a
real lack of good mid-to-high level literature/samples in the MS
development world. I suspect it's partially because there's so many
beginners, they sort of drown the rest of the market (not unlike the
newsgroups at times), and partially because there simply isn't the
vendor competition to encourage robust debate.
Of course, .Net is still pretty new, and already I think the literature
out there is much, much better than MS development tools have enjoyed in
the past.
Anyway, my main point was that the situation that you're in, one major
project that you aren't entirely happy with, is pretty much the
situation everyone's in (especially since 2001/2002 was so bad
economically, which led to late adoption of .NET in major markets). I'd
expect to see more mature frameworks and patterns next year some time,
after lots of folks have been through a couple of enterprise-level
projects and can seriously evaluate and debate the various
architectures.
Separation of
concerns, and simple, crisp abstractions are what OO is all about.
Its ok to make pragmatic decisions about whether you decide to use
something like Transaction Script or Active Record, where the logic
for DB access is coupled tightly with the business logic. But if the
domain model of an OO based system, be it a web app or not, is rich
and complex, these simple examples just dont cut it. The PetShop
example is one taken purely out of context I think, from Microsofts
perspective. Their original version was horrendous from a software
development good practice perspective. Version 3 looks a lot better,
but the objects still arent crisp and there is still redundancy in the
web tier.
To be honest, I haven't looked at it since all the fuss over version 1.