What is Fusebox

Fusebox is a framework for building web applications. It is meant to make your applications easier to create and maintain. It also makes team development easier. It does this by helping you structure your application and break things down into discreet pieces. Fusebox consists of a set of core files which handle much of the "plumbing" necessary when creating a web application.

A Fusebox application is made up of Circuits. A Circuit corresponds to a directory in your application. Within each circuit are one or more Fuseactions. A Fuseaction is a request handler. And finally, a Fuseaction does its work by executing one or more Fuses. Fuses are individual CFML templates such as display files.

The framework uses XML configuration files to define the application settings as well as declaring what each Circuit does and how Fuseactions within each Circuit execute. There is a core set of XML grammar that is used to create these files.

The framework is fully extensible via Plugins, which allow you to extend the core functionality without having to modify the core files. It also supports Custom Lexicons, which allow you to extend the XML grammar with your own tags. As a result, Fusebox is very flexible and can support a wide range of development needs.

Fusebox does not force the Model-View-Controller (MVC) pattern or Object-Oriented Programming (OOP) on the developer. However, either or both of these development approaches can be used with Fusebox.

Why Bother with Frameworks

Here are a number of reasons:

* Improved reliability: Working with the prebuilt components of both Fusebox and Mach-II means working with pretested components. This reduces the bugs to which "one-off" code is prone.

* Developer productivity: Having prebuilt code assets means that a substantial percentage of the code you'll need to make your application run has already been written. And though all frameworks have a learning curve, the price to learn the framework is paid once while the benefits in terms of faster delivery of software continue to pay off.

* Better, more granular security: A robust security model is not a trivial thing to implement. It just makes sense to have base security capabilities built into a framework rather than having to develop one for each new application.

* Easier team development: It may be, as the old song says, that you say toe-MAY-toe and I say toe-MAH-toe, but by agreeing on a common framework, we can work on different aspects of an application without fears that our two efforts will be incompatible.

* Faster delivery: Given coders with the same skills, a development team that starts off with 30% of its code written for it will have a substantial advantage when working to a tight deadline.

* Reusable code assets: Code written for one specific application within a given framework context can often be reused for another application.

* Less expensive development: All of the above benefits boil down to this: it costs less to build the same application with a framework than without it. In the competitive environments in which most of us work, the cost differential can be a very important factor.

Getting Started

If you're new to Fusebox and ready to get started, check out the Fusebox Installation wiki page!