Being an ultra-introvert, it always freaks me out when a comment I make brings me out from under the radar.
I posted on the alt.net list
to a thread concerning the pro's and cons. Jeremy Miller posted an opinion
on my comment, and I followed up with a comment on the post.
As a reflection on all that, I'd like to say that I think that in priciple I'm inclined to agree with Jeremy. In practice, I'm stuck with the Framework that led to the post.
I believe that my ideas of what a 'Framework' should be is changing. Jeremy talks about code generation and the templates and IDE productivity stuff, but I think that I'm going a different route myself, although it wouldn't be the first time I was wrong.
What I've been currently trying to do, with the help of the language enhancements (anonymous delegates, generics, lambda expressions, etc.) is get libraries of limited scope reusable objects that can be modified through the use of generics and delegates to perform instance specific work.
What I am working on right now involves a ton of reuse, many of our systems are basically made up of building blocks that are identical in specification. Our framework involved creating blocks of reusable objects, along with the rules of validation, that could be dropped into place.
For the first round of systems (which were almost identical), this worked very well; however, as more less similar systems were included, the framework started to show strain. My original point was that the framework would have been able to be adapted or evolved into a better form, except that the development contracts were written in such a way as to preclude any further development on the system in question (a bad choice by program management). Once we finally got the money in place to make updates to the framework, the enhancements are stretching the capabilities of the framework.
One of the biggest issues I've had recently was to try to convince a team not to use the system for a project that didn't fit well with the design intent with the framework, and they suffered exactly the fate that Jeremy mentions in his post and would have been better off starting from scratch.