|
|
This article is written like an advertisement. Please help rewrite this article from a neutral point of view. For blatant advertising that would require a fundamental rewrite to become encyclopedic, use {{db-spam}} to mark for speedy deletion. |
|
|
This article does not cite any references or sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. |
![]() |
|
|---|---|
| Developer(s) | Team Mach-II |
| Initial release | 1 August 2003[1] |
| Stable release | 1.6.1 / 2009-03-30 |
| Preview release | 1.8.0 Beta 1 / 2009-08-12 |
| Written in | CFML |
| Operating system | Cross-platform |
| Development status | Mature |
| Type | Event-driven web application framework |
| License | Apache 2.0 |
| Website | http://www.mach-ii.com |
Mach-II is an open-source object-oriented web application framework based on the model-view-controller design pattern. The framework focuses on trying to ease software development and maintenance. Mach-II was the first object-oriented framework for ColdFusion.
The mission of Mach-II is to do MVC and do that well without sacrificing extensibility. Mach-II is highly extensible through its filter and plugin architecture. This design allows developers to leverage third-party functionality or other frameworks easily. A by-product of this basic credo is that Mach-II is not hampered by the release schedules or bugs of other frameworks because they are not intrinsically integrated into the Mach-II core. This allows Mach-II developers to "virtually customize" so Mach-II application always use your architecture and specifications without being forced to abide by convention over configuration.
Mach-II is not a full-stack framework like Ruby on Rails. Mach-II aims to be a pure MVC framework that provides extensibility through the framework’s architecture instead of providing built-in functionality to code generation or Object Relational Mapping (ORM).
Mach-II is owned and supported by GreatBizTools, LLC (GBT). GBT is a consulting firm that specializes in designing, developing, and implementing human resource management systems.
Contents |
Principles
Mach-II has been developed on the following object-oriented principles:
Event-Driven
In a Mach-II application, events are announced either programmatically or based on user actions, and event announcements drive the behavior of the application. The details of what occurs in an event is configured in Mach-II's XML configuration file, which allows for easy, flexible development and maintenance.
Implicit Invocation
In a Mach-II application, procedures and methods are not invoked directly, but rather are invoked implicitly as the result of an event announcement and any related notifications to Mach-II listeners. This concept is also referred to as the Hollywood Principle, which is a reference to the cliché Hollywood phrase, "don't call me, I'll call you." This concept leads to application components that are highly cohesive and loosely coupled, which makes applications easier to test, debug, and maintain.
Features
- XML Configuration Files provide an easy-to-reference roadmap for applications built on the framework. Mach-II allows for the use of multiple XML configuration files for easier maintenance through the use of XML includes.
- Developer Configured Listeners serve as Mach-II's powerful controller layer. Listeners allow for maximum flexibility in controlling application flow, and help provide a distinct separation between the controller and the model layers.
- Highly Extensible Architecture through filters, plugins, and modules which allow developers to easily add, remove, and alter functionality in Mach-II applications.
Filters
Filters enable per-event flow control in Mach-II applications, and are easily added to Mach-II events through a single line in the XML configuration file. A simple example would be the addition of security or logging to a specific Mach-II event. By developing a filter and adding this filter to the event, this additional functionality can be added to or removed from the event without touching the business objects involved with the event.
Plugins
Plugins are similar to filters, but plugins execute on every event in a Mach-II application, and plugins also offer much more granular control through access to numerous plugin points during the course of event execution.
Modules
Modules allow for entire sub-applications, even completely independent or stand-alone applications, to be added to an existing Mach-II application. When a module is added to a Mach-II application this creates a parent-child relationship between the base application and the module, and functionality within the module can be overridden by the base Mach-II application. For example, if a blog application is used as a module in Mach-II, the authentication functionality of the parent application can override the authentication in the blog application.
URL Management
Mach-II offers basic URL management in which the can build framework specific urls via BuildUrl() or BuildUrlToModule(). It is easy and quick to implement SES/Friendly urls by changing just a few properties in the XML configuration file. Mach-II also can persist complex data types (i.e. CFCs, structs, arrays) across redirects.
Platforms
The Mach-II framework is available for ColdFusion. An earlier version of Mach-II is available for PHP, but is no longer officially supported. Mach-II is supported for Adobe Systems ColdFusion 6.1+ and New Atlanta BlueDragon 7+. Although not officially supported, according to Vince Bonfanti at New Atlanta, version Mach-II 1.1.1 runs without modification on BlueDragon 6.2.1.
Drawbacks
- Mach-II has a steeper learning curve for developers that have a procedural programming background since Mach-II is an object-oriented framework.
- Mach-II based applications have some application overheard compared to roll your own frameworks. This drawback applies to all frameworks. With the price of memory and processing power low, the relatively small overhead is usually met with indifference by most developers.
Framework development
Mach-II for ColdFusion was originally created by Ben Edwards and Hal Helms. The framework is currently maintained by a dedicated team of contributors. The principle commercial entity supporting Mach-II is GreatBizTools, LLC - a human resource management company.
Release history
- Mach-II 1.8.0 Beta 1 (Simplicity) was released on August 12, 2009
- Mach-II 1.6.1 was released on March 20, 2009
- Mach-II 1.6 was released on February 9, 2009
- Mach-II 1.5 was released on October 1, 2007
- Mach-II 1.1.1 was released November 28, 2006
- Mach-II 1.1.0 was released in November, 2005
Future development road map
- Mach-II 1.8 is scheduled for release in Q3 2009
- Mach-II 2.0 is scheduled for an alpha pre-view in the late Q4 2009
Team Mach-II
- Matt Woodward - Community Manager
- Peter J. Farrell - Lead Developer and Code Wrangler
- Kurt Wiersma - Developer and Resident Geek
- Brian FitzGerald - Wiki Manager and Evangelist
- Kyle Hayes - Designer
References
- ^ "Mach-II Release History". http://greatbiztoolsllc-trac.cvsdude.com/mach-ii/wiki/FAQReleaseHistory. Retrieved 2008-10-14.
External links
Mach-II Resources
- Mach-II web site
- Shuttle.Space - The blog of Peter J. Farrell
- Mach-II.info Resource Site - Mach-II Resource Site
- Sean Corfield's Mach-II Page - Sean Corfield's Mach-II Page
- Mach-II.de the german side - Mach-II (the German side)
Mach-II Open Source Applications
- MachBlog - A full-featured Mach-II blogging application.
See also
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)





