ColdFusion Framework Comparison Vikas Patel iSummation Technologies
What we’ll cover Types of frameworks Structure of frameworks Common things and differences
Traditional Applications Validation / data processing in the same page Logic to select next page <cfif isDefined(&quot;form.submit&quot;)> ... process data ... ... redirect or continue to show errors ... </cfif> <cfform ..> ... </cfform>
Model-View-Controller View = display code Controller = logic to select next page, form validation, interaction with Model Model = all the business logic - validation, data processing etc
Types of frameworks MVC - application frameworks cfWheels, ColdBox, Fusebox, Mach-II, Model-Glue, onTap etc ORM - persistence frameworks DataFaucet, Reactor, Transfer etc IoC / DI - management of services (CFCs) ColdSpring, Lightwire, Spring (Java) Miscellaneous Validation frameworks Event handling frameworks etc
ColdSpring
ColdSpring UserService.cfc UserGateway.cfc ConfigBean.cfc
ColdSpring
Commonalities What do ColdBox, Mach-II and Model-Glue have in common? index.cfm - entry point for Controller event-based - focused on &quot;handlers“ event &quot;object“ Contains URL and form data Provides a data bus for Controller / View
Commonalities Views are &quot;regular&quot; CFML pages Controllers are CFCs Model is a collection of CFCs too
Configuration vs Convention Event handlers are specified in XML files Mach-II, Model-Glue - like Fusebox XML Event handlers are located by convention ColdBox - like Fusebox no-XML
How are they different?
ColdBox
 
 
 
ColdBox Event names look like entity.action Map to handler entity.cfc, method action (event) - like Fusebox no-XML Core configuration is via XML file Just basic properties - no &quot;logic“ Layouts Default layout for whole app Default layout for specific views/folders Can override programmatically
ColdBox Interceptors - called automatically during the application / request lifecycle SES URLs, security, tracing, cache advice… e.g., environment interceptor can override configuration for dev, QA, prod
ColdBox Plugins - add custom functionality Create plugins/Stuff.cfc In view or handler, getMyPlugin(&quot;Stuff&quot;) Automatically cached Lots built-in: i18n, logger, RSS, web services, timer etc
Mode-Glue
Model-Glue Event handlers in XML Publish messages for subscribed listeners Specify conditional result / event mapping Specify views to render
Model-Glue Controller CFCs (methods are listeners) Conditional logic sets &quot;results&quot; to control the flow of events (like filters in Mach-II) A few automatic events during each request (like plugins in Mach-II or interceptors in ColdBox)
Model-Glue Scaffolding (MG2) / code generation (MG3) Builds XML, controllers and views for you to speed up development Event types (new in MG3) Reduces boilerplate layout / result mapping in event handler XML
Model-Glue Integrated ColdSpring Autowiring of model into controllers Model-Glue itself is wired together with ColdSpring! View formats (new in MG3) Select different views in single event handler to render HTML or AJAX
Mach-II
Mach-II Event handlers in XML Call methods on listener CFCs Specify views to render Can publish message for subscribed listeners Can map event names Both decouple listeners from XML
Mach-II Plugins - a bit like interceptors in ColdBox Automatically called during each request Filters - conditional logic for event handlers Can change flow of events Built-in caching, logging Environment support HTML helper
Wrap up.. At a high level, ColdBox, Mach-II and Model-Glue perform similar functions ColdBox has convention-based approach Model-Glue is lightweight and simple Mach-II is very OO and built for extension
Wrap up..
Q & A

ColdFusion framework comparison

  • 1.
    ColdFusion Framework ComparisonVikas Patel iSummation Technologies
  • 2.
    What we’ll coverTypes of frameworks Structure of frameworks Common things and differences
  • 3.
    Traditional Applications Validation/ data processing in the same page Logic to select next page <cfif isDefined(&quot;form.submit&quot;)> ... process data ... ... redirect or continue to show errors ... </cfif> <cfform ..> ... </cfform>
  • 4.
    Model-View-Controller View =display code Controller = logic to select next page, form validation, interaction with Model Model = all the business logic - validation, data processing etc
  • 5.
    Types of frameworksMVC - application frameworks cfWheels, ColdBox, Fusebox, Mach-II, Model-Glue, onTap etc ORM - persistence frameworks DataFaucet, Reactor, Transfer etc IoC / DI - management of services (CFCs) ColdSpring, Lightwire, Spring (Java) Miscellaneous Validation frameworks Event handling frameworks etc
  • 6.
  • 7.
  • 8.
  • 9.
    Commonalities What doColdBox, Mach-II and Model-Glue have in common? index.cfm - entry point for Controller event-based - focused on &quot;handlers“ event &quot;object“ Contains URL and form data Provides a data bus for Controller / View
  • 10.
    Commonalities Views are&quot;regular&quot; CFML pages Controllers are CFCs Model is a collection of CFCs too
  • 11.
    Configuration vs ConventionEvent handlers are specified in XML files Mach-II, Model-Glue - like Fusebox XML Event handlers are located by convention ColdBox - like Fusebox no-XML
  • 12.
    How are theydifferent?
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
    ColdBox Event nameslook like entity.action Map to handler entity.cfc, method action (event) - like Fusebox no-XML Core configuration is via XML file Just basic properties - no &quot;logic“ Layouts Default layout for whole app Default layout for specific views/folders Can override programmatically
  • 18.
    ColdBox Interceptors -called automatically during the application / request lifecycle SES URLs, security, tracing, cache advice… e.g., environment interceptor can override configuration for dev, QA, prod
  • 19.
    ColdBox Plugins -add custom functionality Create plugins/Stuff.cfc In view or handler, getMyPlugin(&quot;Stuff&quot;) Automatically cached Lots built-in: i18n, logger, RSS, web services, timer etc
  • 20.
  • 21.
    Model-Glue Event handlersin XML Publish messages for subscribed listeners Specify conditional result / event mapping Specify views to render
  • 22.
    Model-Glue Controller CFCs(methods are listeners) Conditional logic sets &quot;results&quot; to control the flow of events (like filters in Mach-II) A few automatic events during each request (like plugins in Mach-II or interceptors in ColdBox)
  • 23.
    Model-Glue Scaffolding (MG2)/ code generation (MG3) Builds XML, controllers and views for you to speed up development Event types (new in MG3) Reduces boilerplate layout / result mapping in event handler XML
  • 24.
    Model-Glue Integrated ColdSpringAutowiring of model into controllers Model-Glue itself is wired together with ColdSpring! View formats (new in MG3) Select different views in single event handler to render HTML or AJAX
  • 25.
  • 26.
    Mach-II Event handlersin XML Call methods on listener CFCs Specify views to render Can publish message for subscribed listeners Can map event names Both decouple listeners from XML
  • 27.
    Mach-II Plugins -a bit like interceptors in ColdBox Automatically called during each request Filters - conditional logic for event handlers Can change flow of events Built-in caching, logging Environment support HTML helper
  • 28.
    Wrap up.. Ata high level, ColdBox, Mach-II and Model-Glue perform similar functions ColdBox has convention-based approach Model-Glue is lightweight and simple Mach-II is very OO and built for extension
  • 29.
  • 30.