ColdBox Platform: Difference between revisions
Cris.Escobar (talk | contribs) No edit summary |
m Version support table and LTS table |
||
Line 36: | Line 36: | ||
The latest release is version [https://github.com/ColdBox/coldbox-platform/releases/tag/v7.3.0 7.3.0] (May 14, 224). |
The latest release is version [https://github.com/ColdBox/coldbox-platform/releases/tag/v7.3.0 7.3.0] (May 14, 224). |
||
== Release History == |
|||
The framework authors publish their release history and long term support capabilities here: (https://coldbox.ortusbooks.com/readme/release-history) |
|||
ColdBox started offering Long Term Support (LTS) in 2020 with version 6.x. For all ColdBox releases, updates are provided for 12 months and security fixes are provided for 2 years after the next major release. |
|||
{| class="wikitable" |
|||
!width="12%"| Version |
|||
!width="12%"| Release Date <ref>{{cite web|url=https://github.com/coldbox/coldbox-platform/releases|title=Github Repository Release Notes - ColdBox|publisher=ColdBox|url-status=live}}</ref> |
|||
!width="15%"| Updates |
|||
!width="24%"| Security Fixes |
|||
!width="36%"| CFML/BoxLang Engines |
|||
|- |
|||
| {{Version |o |1.x}} |
|||
| 2006 |
|||
| NA |
|||
| NA |
|||
| NA |
|||
|- |
|||
| {{Version |o |2.x}} |
|||
| 2008 |
|||
| NA |
|||
| NA |
|||
| NA |
|||
|- |
|||
| {{Version |o |3.x}} |
|||
| 2010 |
|||
| NA |
|||
| NA |
|||
| NA |
|||
|- |
|||
| {{Version |o |4.x}} |
|||
| 2015 |
|||
| NA |
|||
| NA |
|||
| NA |
|||
|- |
|||
| {{Version |o |5.x}} |
|||
| 2018 |
|||
| NA |
|||
| NA |
|||
| NA |
|||
|- |
|||
| {{Version |co |6.x}} LTS |
|||
| 2020 |
|||
| 2023 |
|||
| 2025 |
|||
| ACF 2016+, Lucee 5+, BoxLang 1+ |
|||
|- |
|||
| {{Version |c |7.x}} |
|||
| 2023 |
|||
| 2024 |
|||
| 2026 |
|||
| ACF 2018+, Lucee 5+, BoxLang 1+ |
|||
|- |
|||
| {{Version |p |8.x}} |
|||
| 2024 |
|||
| 2025 |
|||
| 2027 |
|||
| ACF 2021+, Lucee 5+, BoxLang 1+ |
|||
|} |
|||
{{Version|t|show=11111}} |
|||
=== Supported Engines === |
|||
* ''ACF'' = Adobe ColdFusion |
|||
* BoxLang (https://www.boxlang.io) |
|||
* Lucee (https://lucee.org) |
|||
== Capabilities == |
== Capabilities == |
Revision as of 09:13, 10 June 2024
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Original author(s) | Ortus Solutions, Corp |
---|---|
Initial release | June 15, 2006 |
Stable release | |
Repository | ColdBox Repository |
Written in | CFML, Java |
Type | Web application framework |
License | Apache License v2 |
Website | ColdBox.org |
ColdBox is a free, open-source, conventions-based, modular web application framework intended for building enterprise applications with ColdFusion (CFML) using a Hierarchical MVC approach.
It is a set of tools and methodologies that can allow a developer to build their web applications in a modern and secure way. It also provides them with a scaffold on which to base their applications. As a result, they don’t have to reinvent the wheel on most concerns they have to consider when building web applications. The framework gives developers the proper tooling to do their job quickly, securely, modularly, and flexibly.
The source code of ColdBox and its companion libraries are hosted on GitHub and licensed under the terms of the Apache License v2.
History
ColdBox was developed and created by Luis F. Majano in 2006, and it has become the most widely used and maintained MVC framework. Given its speed and scalability, ColdBox evolved into a performant and simple framework that empowered developers. It became a professional open source project in 2008 when professional services were offered by the parent company Ortus Solutions, Corp. Later, in 2011, the Hierarchical Model View Controller was set as its core foundation design pattern. In the last few years, it introduced tight integration to Java's `CompletableFuture` API to support Futures and Promises and asynchronous/parallel programming.
The latest release is version 7.3.0 (May 14, 224).
Release History
The framework authors publish their release history and long term support capabilities here: (https://coldbox.ortusbooks.com/readme/release-history)
ColdBox started offering Long Term Support (LTS) in 2020 with version 6.x. For all ColdBox releases, updates are provided for 12 months and security fixes are provided for 2 years after the next major release.
Version | Release Date [2] | Updates | Security Fixes | CFML/BoxLang Engines |
---|---|---|---|---|
1.x | 2006 | NA | NA | NA |
2.x | 2008 | NA | NA | NA |
3.x | 2010 | NA | NA | NA |
4.x | 2015 | NA | NA | NA |
5.x | 2018 | NA | NA | NA |
6.x LTS | 2020 | 2023 | 2025 | ACF 2016+, Lucee 5+, BoxLang 1+ |
7.x | 2023 | 2024 | 2026 | ACF 2018+, Lucee 5+, BoxLang 1+ |
8.x | 2024 | 2025 | 2027 | ACF 2021+, Lucee 5+, BoxLang 1+ |
Legend: | Old version, not maintained | Old version, still maintained | Current stable version | Latest preview version | Future release |
---|
Supported Engines
- ACF = Adobe ColdFusion
- BoxLang (https://www.boxlang.io)
- Lucee (https://lucee.org)
Capabilities
- A HMVC web framework for the ColdFusion platform.
- Modular development platform to provide HMVC architectural patterns
- 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
- Adobe Flex/Air integration and monitoring
- Provides multi-development environment capabilities
- Prolific Documentation
- Integrates natively with Java's CompletableFuture API to support futures and promises.
Platforms
ColdBox is supported on Lucee (A popular open-source CFML engine) and Adobe's ColdFusion application servers. It has supported IDE plugins for Visual Studio Code, Sublime Text, Eclipse IDE, and Adobe ColdFusion Builder.
ColdBox Universe
The ColdBox Platform comprises several internal standalone libraries that can be used with any CFML Framework or none at all. Its library includes:
- LogBox - Logging Library
- WireBox - Dependency Injection and AOP library
- CacheBox - Caching Engine and Aggregator
- TestBox - Testing framework for ColdFusion
Usage
Below is a list of some notable users of the Coldbox Platform.[3]
- Adobe
- Esri
- FAA
- GE
- Kennedy Space Center
- NASA JPL
- Railo
- Lucee
- L'Oréal
- US Airforce
- US Navy
- Success Academy Charter Schools
- American Youth Soccer Organization
- Los Angeles County Museum of Art
Installation
Getting started is easy with ColdBox, WireBox, CacheBox, or LogBox in any ColdFusion (CFML) application since just CommandBox, the CLI, and the package manager should be leveraged. These commands run from the CommandBox interactive shell.
Controllers
ColdBox is a conventions-based framework 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 Dependency injection for hibernate-based virtual services
property name="userService" inject="entityservice:User";
/**
* Return immediate HTML
*/
function sayHello(event){
return "hello";
}
/**
* Return immediate JSON from an ORM object's memento
*/
function sayHello(event){
return userService.get( rc.id ).getMemento();
}
/**
* Return content in multiple formats
*/
function list(event){
prc.data = userService.list();
// render out all users in json format
event.renderData( data=prc.data, formats="json,xml,pdf,html" );
}
}
URL mappings
ColdBox supports URL mappings and routing in Rails style but is adapted for ColdFusion. It also supports the creation of RESTful routing:
// Resources
resource( "photos" );
// Nested Resources
resources(
resource = "agents",
pattern = "/sites/:id/agents"
);
// Redirects
route( "/oldRoute" )
.toRedirect( "/main/redirectTest" );
// Direct Routing
route( "/render/:format" ).to( "actionRendering.index" );
// With Regex
route( "post/:postID-regex:([a-zA-Z]+?)/:userID-alpha/regex:(xml|json)" )
.to( "ehGeneral.dumpRC" );
// subdomain routing
route( "/" )
.withDomain( ":username.forgebox.dev" )
.to( "subdomain.show" );
// Responses + Conditions
route( "/ff" )
.withCondition( function(){
return ( findnocase( "Firefox", cgi.HTTP_USER_AGENT ) ? true : false );
} )
.toResponse( "Hello FireFox" );
route( "/luis/:lname" )
.toResponse( "<h1>Hi Luis {lname}, how are {you}</h1>", 200, "What up dude!" );
// Inline Closure Responses
route( "/luis2/:lname" )
.toResponse( function( event, rc, prc ){
return "<h1>Hello from closure land: #arguments.rc.lname#</h1>";
} );
// Views No Events
route( "contactus" )
.as( "contactUs")
.toView( "simpleView" );
// Named routes
route( pattern="/routeRunner/:id/:name", name="routeRunner" )
.to( "main.returnTest" );
// Grouped Routing
group( { pattern="/runAWNsync", handler="utilities.AWNsync" }, function( options ){
route( '/:user_id' )
.withAction( { get = "runAWNsync", options = "returnOptions" } )
.end();
} );
// RESTFul Actions
route( "/health_check" )
.withAction( { get = "runCheck", options = "returnOptions" } )
.to( "utilities.HealthCheck" );
RESTful URLs
ColdBox allows for the easy creation of RESTful URLs via URL mappings and extension detection. Natively ColdBox can detect any extension when supplied to a URI resource:
http://api.coldbox.org/rest/user/luis.json http://api.coldbox.org/rest/user/luis.xml http://api.coldbox.org/rest/user/luis.pdf http://api.coldbox.org/rest/user/luis.yml
It allows for detecting such extensions, security around them, and the ability to customize them.
Ajax support
ColdBox supports all JavaScript frameworks that provide Ajax capabilities. It also offers an auto-marshaling function for natively rendering objects to the following formats: XML, WDDX, JSON, JSONP, TEXT, PDF, and CUSTOM.
SOAP-Adobe Flex/Air support
ColdBox supports creating, monitoring, and developing SOAP web services and Flex/Air remote components. It allows for having one development paradigm for multiple GUI interfaces.
Documentation Links
External links
- Official site
- GitHub code repository
- Online API
- ForgeBox - community based code sharing
- Community Forums
References
- ^ "ColdBox Platform Versions". forgebox.io. Retrieved 2024-05-14.
- ^ "Github Repository Release Notes - ColdBox". ColdBox.
{{cite web}}
: CS1 maint: url-status (link) - ^ "ColdBox MVC".