Comparing Fusebox 5 and Model-Glue: Building Web Apps Effectively
This presentation by David Fekke offers insights into developing web applications using Fusebox and Model-Glue frameworks. With a focus on the MVC design pattern and XML syntax, attendees will learn how to organize code to make it more reusable and manageable, emphasizing the importance of frameworks in reducing maintenance overhead. Key topics include Fusebox basics, plugin syntax, and the structure of both frameworks, providing a practical overview for developers new to these methodologies.
Comparing Fusebox 5 and Model-Glue: Building Web Apps Effectively
E N D
Presentation Transcript
Fusebox 5 vs Model-Glue JaxFusion September 2006
About the Presenter • David Fekke • Developing Fusebox since 1.0 • New to Model-Glue • Early adopter of CFCs • Lead for Vurv HR-XML API
What is covered in this Presentation • How to build web apps in Fusebox and Model-Glue • Basic XML syntax • Basic MVC
What is not covered in this Presentation • Unity, i.e. Reactor or ColdSpring • Fusedocs
Why use a Framework • 80% percent of development is maintenance • Encourages the use of MVC design pattern • Reduces the need spaghetti code • Makes your code more reusable
Fusebox History • Just a methodology • Custom Tags • Version 3 added framework • Version 4 uses XML config • Version 5 rewritten with CFCs
Fusebox Basics • Fusebox is based on a simple switch mechanism, hence the name “Fusebox” • Code files are referred to as “Fuses” • Most “fuse” files have very little code • Documentation called Fusedocs
Fusebox components • Fusebox.xml • Circuit.xml • Core files in fusebox5 folder • All requests through Index.cfm • App divided into circuit folder • Plugin directory
Fusebox.xml syntax • <cicuits> • <classes> • <parameters> • <globalfuseactions> • Appinit, preprocess, postprocess
Fusebox.xml plugin syntax • <Plugins> • <phase name=“preProcess”> • <phase name=“preFuseaction”> • <phase name=“postFuseaction”> • <phase name=“fuseactionException”> • <phase name=“postProcess”> • <phase name=“processError”>
Circuit.xml syntax • <fuseaction name=“fuseactionname”> • <xfa name=“save” value=“app.save” /> • <include template=“file.cfm” /> • <do action=“m.saveCat”/> • <set name=“id” value=“1” /> • <if condition=“”> • <instantiate/> <invoke />
Lexicons • Add your own verbs • Lexicon folders
Model-Glue Framework • Developed by Joe Rinehart of BAH • Also uses XML config file • Meant for more OO styled programming • MG-Unity is adding support Reactor, and ColdSpring
Model-Glue structure • All requests through Index.cfm • Config directory • Model-Glue.xml • Controller CFCs • ModelGlue folder in web root
Model-Glue config syntax • Controller, message-listener • event-handler • Broadcasts, message • Views, include • Results
Other Frameworks • Mach-II • OnTap: based on Tapestry • CF on Wheels • Ruby on Rails • Django for Python • Cairngorm Flex • Struts, JSF and many others…
Links • www.model-glue.com • www.fusebox.org • corfield.org • www.techspedition.com • www.halhelms.com • www.briankotek.com/blog/ • clearsoftware.net