Frameworks

irasmith

Junior Contributor
Joined
Sep 19, 2003
Messages
209
Location
Nashville
I am currently reading Developing Application Frameworks in .NET by Xin Chen. Even though I am not finished with the book yet, I am finding it very interesting and can see how an application framework would make application development somewhat easier and faster if the nature of the application lent itself to be used within the framework.

Just curious if any/many of you were doing development by creating frameworks to build related applications upon or if due to budget/time constraints folks were not putting the effort into framework development and instead focusing in on the specific application development.

So what is everyones take on the development and use of frameworks?
 
My experience is that frameworks can be very useful but you should be careful not to over engineer you solution to a problem. Sometimes a simple tool kit will cover your bases, other times it might be better to adapt your solution to someone else's framework even though it might be a little awkward at first and still others you should just bite the bullet and start writing code. Often times you think are going to need all this reusability, when really you don't. When considering whether it would be worth your time/effort, you really have to answer the hard questions: Do you really need to reuse it? How will this help me now? Can my application/design remain flexible enough without a framework? What is the relative effort compared to not building the framework? Can I improve stability/testability with a framework? I'm sure there are other good things to think about but that's all of I've got for now...

The other thing I've learned is that building even a mediocre framework is an extremely difficult task. It takes a lot of experience (or trial and error) and requires the architect to balance the fine line between too much (generalization, functionality, etc.) and too little to find something that is just right. In the right problem domain, a framework can be the best idea ever.
 
My company has invested somewhat heavily, over time, in a framework. We modelled it closely to what the new MS book recommends, mostly through luck or skill or both. Our main architect in charge of keeping the framework updated has that book and loves it.

mskeel brought up all the relevant questions that should be asked, or thought about, if you're taking time to build a framework. I would never suggest starting with a framework. Our framework has evolved from two main approaches, one good and one bad. The good is when we identify some cut-and-paste code and decide to make it more common and reusable, and put it in the framework. The bad is when we don't have the need for something to be reusable but we think we might and we try to think of how we might need it later... and we end up with code bloat. The agile guys name it YAGNI (you ain't gonna need it).

Our framework comes with a price: maintenance. We have a small group of guys that maintain it in their time. And any changes must get cleared through them, to keep it clean. It's very well documented (unlike most of our other code).

-ner
 
Back
Top