June 2, 2004

Mach II: Framework or methodology

There's a good question, and it was recently elaborated upon by my buddy, dave in this post.

Mach II came to life out of fusebox. My understanding is there was a divide in the fusebox community, some people wanting to utilize a procedural framework, and some people wanting to go an object oriented structure. If anyone can elaborate, please I'd like to hear the history.

So what is a framework?

A definition I've come across is that a framework is a class library that captures patterns of interaction between objects. A framework consists of a suite of concrete and abstract classes, explicitly designed to be used together. Applications are developed froma a framework by completion of the implementation of abstract classes. A framework can be also utilized to include additional utilities to aid in the completion of end-user applications.

So if we agree this defines a framework, what is a methodology?

A methodology is a codified set of recommended practices. I think that summarizes it up.

So what is Mach II. Well Mach II is definitely a framework, but utilizing that framework based software development, is a methodology. Utilizing a framework brings a different approach to solving a problem. One works from within the constraints of the framework, because the framework is extended for multiple applications.

So the code of Mach II itself is a framework, but utilizing Mach II in application development is a methodology.


Posted by Elyse at June 2, 2004 6:48 AM | TrackBack
Comments

Mach-II was originally called FuseboxMX. Hal had been thinking for some time about if/how to leverage the new OO capabilities of CFCs within Fusebox. As I understand it, he started working on FuseboxMX, but over time he realized that to make it truly OO required a radical departure for traditional Fusebox. To avoid sowing confusion and calling something Fusebox that was really a totally different beast, he and Ben decided to start from scratch and build something OO from the ground up. It was not a "bad" split, as Hal also spent a lot of time helping with Fusebox 4. Hope that helps clarify the Mach-II back story.

Posted by: Brian Kotek at June 2, 2004 10:23 AM

Your definition of a framework is very restrictive. It assumes that you are dealing in an object oriented system. A better definition might be to say that a framework provides pre-written code, but a methodology does not. Alos, a framework is usually an implementation of a methodology.

Almost any framework will also provide some guidelines about how your code should be structured and how to use the pre-written code in your applications.

I would say that Mach-ii is definitely a framework that implements the MVC methodology.

Posted by: Spike at June 2, 2004 12:53 PM

MVC is *not* a methodology - it's 'merely' a design pattern (using design patterns might be classed as a methodology, of course).

Spike's right about frameworks not being required to be OO tho'...

Posted by: Sean Corfield at June 3, 2004 2:58 AM