The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...
ColdFusion Markup Language, more commonly known as CFML, is a scripting language for web development that runs on the JVM, the .NET framework, and Google App Engine...
. ColdBox was the first ColdFusion framework to leverage conventions over configurations and it aims for simplicity, rapid development, and makes use of the Model-view-controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
Dependency injection is a design pattern in object-oriented computer programming whose purpose is to improve testability of, and simplify deployment of components in very large software systems....
In computing, aspect-oriented programming is a programming paradigm which aims to increase modularity by allowing the separation of cross-cutting concerns...
An architectural pattern in software is a standard design in the field of software architecture. The concept of a software architectural pattern has a broader scope than the concept of a software design pattern...
. ColdBox is comprehensive and modular, which helps address most infrastructure concerns of typical ColdFusion applications
History
ColdBox was developed by Luis Majano and open sourced for the first time in 2006.
Since 2006 there have been over 23 releases.
ColdBox became a professional open source project when professional services where created by the parent company Ortus Solutions, Corp in 2008.
The latest generation version is 3.1.0 released in 2011
Overview
ColdBox has been developed with a number of goals in mind:
Provide a high-productivity web framework for the ColdFusion
ColdFusion
In computing, ColdFusion is the name of a commercial rapid application development platform invented by Jeremy and JJ Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database, by version 2 it had...
platform.
Integrate with hibernate ColdFusion ORM to allow for faster development of relational applications
Offer a consistent framework which reduces confusion and is easy to learn.
Offer documentation for those parts of the framework which matter for its users. It has over 700 pages of documentation in the online wiki
Provide what users expect in areas which are often complex and inconsistent:
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....
abstraction layers.
Powerful and consistent conventions over configurations (No XML)
Internal Domain Specific Languages to define caching, DI/AOP, logging and mocking.
SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks...
web service support
Powerful and Consistent Adobe Flex/Air integration and monitoring
Provide 25 sample applications which demonstrate the power of the framework.
Provide multi-development environment capabilities
Internal Frameworks
The ColdBox Platform is unique in that it aggregates 5 different frameworks into one ColdFusion development platform:
LogBox - Enterprise Logging Library
WireBox - Enterprise Dependency Injection and AOP library
CacheBox - Enterprise Caching Engine and Aggregator
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
configuration
Built in enterprise logging
Built in enterprise caching
Built in dependency injection and AOP capabilities
Ready-to-use application templates
Functionality available through mixins and conventions
Built in RESTful and SOAP web service capabilities
Documentation
ColdBox's documentation is what sets it apart with over 700 pages worth of documentation online, professional training and books.
Custom Conventions
Conventions over configurations is the standard in ColdBox development. It does not rely on the verbosity of xml logic and uses ColdFusion and a set of conventions for development. Conventions are also used for registering events, interceptors, plugins and much more.
Coldfusion Controllers instead of XML Controllers
ColdBox doesn't rely on XML declarative logic where you have to define an event, what it does and where does it go. ColdBox is a conventions based framework that will let you program in ColdFusion to get things done.
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
ColdBox supports URL mappings and routing Rails style but adapted for ColdFusion. It also supports the creation of RESTful routing:
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:
It allows for the detection of such extensions, security around them and the ability to customize the extensions.
Ajax support
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
CUSTOM
SOAP-Adobe Flex/Air Support
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.
Companies providing ColdBox development services
Ortus Solutions provides consulting services being the main developer of the platform.
Computer Know How provides ColdBox services as being a ColdBox Alliance Partner
The source of this article is wikipedia, the free encyclopedia. The text of this article is licensed under the GFDL.