Mach-II

Mach-II

Infobox Software
name = Mach-II


caption = "We're Community Driven"
genre = web application framework
developer = [http://www.greatbiztools.com GreatBizTools, LLC] |source_model = Open source
latest_release_version = 1.6 Beta
latest_release_date = September 23, 2008
operating system = Cross-platform
licence = Apache 2.0
website = [http://www.mach-ii.com 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.

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 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.

Mach-II vs. Other ColdFusion Frameworks


=Mach-II vs. Fusebox=

Mach-II is object-oriented which lends itself to developing loosely coupled and tightly cohesive models. In general, Fusebox is largely procedural, unless you choose to follow the MVC design pattern. Whereas Mach-II uses implicit invocation, Fusebox uses explicit invocation, where Choosing between Mach-II and Fusebox depends on the way you or your development team works. Developers that understand or want to learn more about object-oriented design and development find that Mach-II is a good choice for a framework. Procedural developers or developers that do not have the time to learn about object-oriented design and development usually find that Fusebox might be a better framework choice as it is aimed towards procedural development.

Mach-II vs Model-Glue

Mach-II and Model-Glue are similar in that they are both event driven, implicit-invocation, object-oriented MVC frameworks. Model-Glue hooks in other frameworks to the MVC framework. ColdSpring's IOC framework and support for both the [http://www.reactorframework.org Reactor] and [http://compoundtheory.com/transfer Transfer] ORM frameworks have been built-in, and scaffolding are also built-in, if you install either Reactor or Transfer (but Model-Glue does not depend on those frameworks otherwise). Model-Glue's MVC offers slightly simpler functionality. Mach-II does not install with other frameworks built-in, but allows them via its plug-in architecture.

The Mach-II.xml File

The mach-ii.xml file is the main configuration file for your Mach-II application. The XML configuration file has an accompanying DTD currently called mach-ii_1_5_0.dtd that is included with the core framework files. This file is commonly referred to as the "configuration file" throughout this article.

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.6b was released on September 23, 2008
* Mach-II 1.5 was released on October 1, 2007
* Mach-II 1.5rc1 was released as a public release candidate on August 14, 2007
* Mach-II 1.5b was released as a public beta on June 26, 2007
* Mach-II 1.1.1 was released November 28, 2006
* Mach-II 1.1.1b was released as a public Beta on August 21, 2006
* Mach-II 1.1.0 was released in November, 2005

Future development road map

* Mach-II 1.6 is scheduled for release late Q3 / early Q4 2008
* Mach-II 1.8 is scheduled for release late Q1 / early Q2 2009
* Mach-II 2.0 is scheduled for an alpha pre-view in the late half of 2009

License

Since the 1.1.0 release, Mach-II has been released under the Apache 2.0 license. Mach-II was licensed under an Apache 1.1 license before the 1.1.0 release, and is owned by GreatBizTools, LLC. You can use Mach-II on any commercial application as long as you abide by the license. For more details, please see the license that is shipped with the framework.

Team Mach-II

* [http://www.mattwoodward.com/blog Matt Woodward] - Community Manager
* [http://blog.maestropublishing.com/ Peter J. Farrell] - Lead Developer and Code Wrangler
* [http://www.jroller.com/page/kwiersma Kurt Wiersma] - Developer and Resident Geek
* Brian FitzGerald - Wiki Manager and Evangelist
* [http://www.kylehayes.info/blog/ Kyle Hayes] - Designer

External links

Mach-II Resources

* [http://www.mach-ii.com/ Mach-II web site]
* [http://blog.maestropublishing.com/ Shuttle.Space] - The blog of Peter J. Farrell
* [http://www.mach-ii.info Mach-II.info Resource Site] - Mach-II Resource Site
* [http://corfield.org/index.cfm?fuseaction=machii.main Sean Corfield's Mach-II Page] - Sean Corfield's Mach-II Page
* [http://www.mach-ii.de Mach-II.de the german side] - Mach-II (the German side)

Mach-II Open Source Applications

* [http://www.machblog.org/ MachBlog] - A full-featured Mach-II blogging application.

ee also

*Comparison of web application frameworks


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • mach — mach …   Dictionnaire des rimes

  • MACH (E.) — Physicien préoccupé en même temps de la critique historique des concepts physiques et des phénomènes de psychophysiologie des sensations, Mach a fourni une œuvre scientifique importante à la jonction de plusieurs disciplines, mais souvent mal… …   Encyclopédie Universelle

  • Mach — [ mak ] n. pr. • v. 1950; nom d un physicien autrichien ♦ Aéronaut. Nombre de Mach : rapport entre la vitesse d un mobile et celle du son se propageant dans le même milieu. Ellipt Voler à Mach 2, à Mach 3, à 2, 3 fois la vitesse du son (⇒… …   Encyclopédie Universelle

  • Mach — ist der Familienname folgender Personen: Alexander Mach (1902–1980), slowakischer Journalist und Politiker, Hauptorganisator der Deportation slowakischer Juden Edmund Mach (Chemiker) (1846–1901), österreichischer Agrarchemiker und Önologe Edmund… …   Deutsch Wikipedia

  • Mach — may refer to:* Mach number, a measure of speed * Gillette Mach3, a manual razor with three blades * Mach bands, an optical illusion * Muscarinic acetylcholine receptor, abbreviated mACh In computers* ATI Mach, a 2D GPU chip by ATI * Mach II, an… …   Wikipedia

  • Mach 1 —    , MACH NUMBER    When airplanes first started to fly, their speed was measured like that of a moving vehicle on the ground. As air speeds increased, that method became obsolete, and a new method had to be found.    Ernst Mach (1838 1916), an… …   Dictionary of eponyms

  • Mach-O — Icône de terminal, semblable à celle du terminal de MacOS X Extension …   Wikipédia en Français

  • mach — MACH, machi, s.m. (fiz.) Unitate de măsură pentru viteza mişcării fluidelor, utilizată în aerodinamică şi în tehnica rachetelor, egală cu 340 m/s. ♢ Numărul lui Mach = raport între viteza unui proiectil, avion etc. într un fluid şi cea a… …   Dicționar Român

  • Mach-O — Расширение без расширения, .o, .dylib Разработан Университет Карнеги Меллон/Apple Inc. Тип формата двоичный, исполняемый, объектный, динамическая библиотека, дамп памяти Содержит исполняемый код …   Википедия

  • MACH — ist ein Betriebssystem Kernel, der 1985–1994 im Rahmen eines Projekts an der Carnegie Mellon University entwickelt wurde, und gehört zur Klasse der Mikrokernel. Eine aktuelle Inkarnation der Mach Kernel Familie stellt der XNU Kernel dar. Die… …   Deutsch Wikipedia

  • Mach — [mæk US ma:k] n [U] [Date: 1900 2000; Origin: Ernst Mach (1838 1916), Austrian scientist] a unit for measuring speed, especially of an aircraft, in relation to the speed of sound. Mach 1 is the speed of sound, Mach 2 is twice the speed of sound… …   Dictionary of contemporary English

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”