Our Blog

While working with the C2 architecture I realized the real purpose of using a framework. By definition, a framework is "a structure for supporting or enclosing something else". That is, a structure that allows us to do things such as using messages as communication between components (as in C2) or implementing implicit invocation (as in MachII) when the underlying language does not provide native facilities for that.

It is not only to be able to rapidly develop an application. Rather, it is to be able to use an architectural style to inherit all its advantages: modularity, anticipation of change, abstraction, low coupling, and high cohesion (all the properties that styles aim at). That, in turn, allows us to develop more quickly because the style put us constraints and we have some predefined configurations of component arrangement. We also achieve faster development by means of using proven patterns and reusing components. We could achieve the same results by applying other styles (as long as the language allows us) and skipping the framework.

So why use a framework? Because I am lazy and I don't want to have to think so much about how to realize a style or pattern. And by using a framework correctly, I get a free ride to a well organized application and I can focus on other things.




  1. Sven Busse

    but it also depends a little on what you want to do.
    the main idea on frameworks is, that there is an almost ready to go application, which you can use and expand for your own demands. frameworks work in the way: "don't call us, we call you", means, you develop extensions and additional functionality, which will be used by the framework.

    Sometimes, that is not really, what you want. Then you would make use of "libraries". Because libraries represent something like the opposite. You write the main application and the library extends your main application. So now it's your application, which "calls" the extensions.

    So it depends on how you want to build up your app. So your right, frameworks can really rock :o)
  2. I guess there are different types of frameworks. With the type of framework I mentioned you only get a set of idioms and the ability to put an architectural style into practice. They do not provide any ready-to-use functionality. Take MachII for example, it only gives you classes for listeners, events, messaging queues, and an xml definition file. No functionality at all, only the structure. That is one of the reason why the MachII forums are full people asking for application samples: because you have to build them yourself! and the style is so far away from the usual way we develop in CF that nobody knows how to get the best out of it.

    But you are right, sometimes you kind of fill in the blanks of the framework and the framework itself calls your listeners, sets up the flow, establishes who communicates with who, etc. I would say that that is part of the job of any framework.
  3. argonauta
    among the frameworks i use in my developments i could tell you the ones i consider the best:

    SOFIA, for jsp development (sorry, i have no link, but look for it in sourceforge.net)

    and typo3 (www.typo3.com) a php content management framework.

    And of course, it's always usefull to make yourself a framework :) (now,everytime i have to do something in flash, it takes me 6 hours less than when i use to make everything from scratch, now it's copy paste the core classes and voila, a lot of functionality for you to keep developing)
  4. hiren
    why use of framework??? we can use some other feature same as framework.....???