ColdBox Platform

From Wikipedia, the free encyclopedia
Jump to: navigation, search
ColdBox Platform
ColdBoxLogo.png
Original author(s) Luis Majano & Ortus Solutions
Developer(s) [1]
Initial release June 15, 2006 (2006-06-15)
Stable release 3.8.0 / December 18, 2013 (2013-12-18)
Development status Active
Written in CFML, Java
Operating system Cross-platform
Type Web application framework
License Apache License
Website coldbox.org

ColdBox is an open source, conventions based web application framework intended for building enterprise applications with CFML. ColdBox uses Convention over configuration and aims for simplicity, rapid development. It makes use of Model-view-controller, Dependency injection, Unit testing, Aspect-oriented programming architectural patterns. ColdBox allows for development of stand-alone modules which can be shared across apps. ColdBox is an active and heavily documented CFML framework.[1]

History[edit]

  • ColdBox was developed by Luis Majano and open sourced for the first time in 2006.
  • Since 2006 there have been over 25 releases.
  • ColdBox became a professional open source project in 2008, when professional services were offered by the parent company Ortus Solutions, Corp.
  • The latest generation version is 3.8.0 released in December 2013[2]
  • In 2012, ColdBox Platform joined the Open CFML Foundation[3] (http://www.opencfmlfoundation.org/projects/coldbox/) in an effort to support and maintain open source CFML projects.

Platforms[edit]

Coldbox is supported on both Railo (The popular open source CFML Engine) and Adobe's Coldfusion application servers.

It has supported IDE plugins for both Eclipse IDE and Sublime Text

Usage[edit]

Below is a list of some notable users of the Coldbox Platform.[4]

Overview[edit]

High-level attributes of ColdBox:

  • A web framework for the ColdFusion platform.
  • Conventions over configurations (No XML)
  • Integrates with Hibernate ColdFusion ORM.
  • Offers a consistent framework aiming to reduce confusion and be easy to learn.
  • Persistence abstraction layers (caching).
  • Built-in logging library.
  • Built-in dependency injection and AOP capabilities.
  • Internal Domain Specific Languages to define caching, DI/AOP, logging and mocking.
  • Ability to do unit and integration testing.
  • Ajax support which is easy to extend and customize.
  • RESTful and SOAP web service support[5]
  • Adobe Flex/Air integration and monitoring.
  • Provides multi-development environment capabilities
  • Has over 700 pages of documentation in the online wiki

Internal Frameworks[edit]

The ColdBox Platform comprises five independent frameworks:

  • LogBox - Logging Library
  • WireBox - Dependency Injection and AOP library
  • CacheBox - Caching Engine and Aggregator
  • MockBox - Testing, Mocking and Stubbing library
  • ColdBox MVC - MVC conventions based web framework

Controllers[edit]

ColdBox is conventions-based framework that is programmed in CFML, differing from other CFML MVC frameworks that use XML declarative logic for their controllers.

Below is an example of a controller:

component{
 
  // Use DI for hibernate virtual services
  property name="userService" inject="entityservice:User";
 
   function sayHello(event){
     return "hello";
  }
 
   function list(event){
     // render out all users in json format
     event.renderData(type="json", data = userService.list() );
  }
}

URL Mappings[edit]

ColdBox supports URL mappings and routing Rails style but adapted for ColdFusion. It also supports the creation of RESTful routing:

addRoute(pattern="api/user/:username",handler="user",action={get='list', post='create', put='update', delete='remove'});

RESTful URLs[edit]

ColdBox allows for easy creation of RESTful URLs via URL mappings and extension detection. Natively ColdBox can detect any extension when supplied to an URI resource:

http://api.coldbox.org/rest/user/lui.json
http://api.coldbox.org/rest/user/lui.xml

It allows for the detection of such extensions, security around them and the ability to customize the extensions.

Ajax support[edit]

ColdBox supports all JavaScript frameworks that provide Ajax capabilities. It also provides an auto-marshalling function to render any object to the following formats natively: XML, WDDX, JSON, JSONP, TEXT, PDF, CUSTOM.

SOAP-Adobe Flex/Air Support[edit]

ColdBox offers support for creating, monitoring and developing SOAP web services and Flex/Air remote components. It allows for having one development paradigm for multiple GUI interfaces.

External links[edit]

References[edit]