- TurboGears
Infobox_Software
name = TurboGears
developer = [http://www.blueskyonmars.com/ Kevin Dangoor] et al.
latest_release_version = 1.0.7
latest_release_date =September 15 ,2008
programming language = Python
operating_system =Cross-platform
genre =Web application framework
license =MIT License ,LGPL
website = http://www.turbogears.orgTurboGears is a Python
web application framework consisting of several underlying components such asMochiKit ,SQLObject ,CherryPy and Kid.TurboGears was created in 2005 by
Kevin Dangoor as the framework behind the as yet unreleasedZesty News product. When he released it as anopen source framework in the end of September 2005, it received more than 30,000screencast downloads in the first 3 months.Fact|date=February 2007TurboGears is designed around the
model-view-controller architecture, much like Struts orRuby on Rails , designed to make rapid web application development in Python easier and more maintainable.TurboGears components
TurboGears components are as follows:
*
SQLObject as the Model - data backend that can create a database or interface with existing data on many database servers.
*SQLAlchemy can be used as an alternative model layer and is slated to be the default in TurboGears >= 1.1.
* Kid as the View - XHTML frontend templating engine where all templates are valid XHTML or XML files that are usually made in a way that allows opening these templates as simple XHTML files to check the design. At the same time features are provided to embed snippets of Python in a XMLish manner.
* Genshi is the successor project to Kid and replaces the latter as the default templating engine in TurboGears >= 1.1. It is nearly 100% syntax-compatible to Kid. See also the "Template plugins" section below.
*CherryPy as the Controller - middleware that allows web applications to be programmed by writing event handlers that return data to (in TurboGears case) templates. The same data can also be received in Ajax fashion as aJSON data stream.
*MochiKit is an optional piece of TurboGears - it is a JavaScript library to make programming in JavaScript more Pythonic. It is mostly used for implementing Ajax features as it provides an interface to get JSON data streams in asynchronous manner.Template plugins
Templating languages other than Kid can be used through a plugin system. Plugins currently exist for Genshi, Cheetah, Django templates, Mako, and Jinja. Several template engines can be used in the same application.
Project history
January 2007 Kevin Dangoor retired as project leader and
Alberto Valverde managed the project as his successor,cite web |date=2007-01-03 |title=TurboGears has a new leader |publisher=Kevin Dangoor |url=http://www.blueskyonmars.com/2007/01/03/turbogears-has-a-new-leader/ |accessdate=2007-04-12 ] but susequently stepped down due to other personal commitments. Alberto is still involved in the TurboGears community through hisToscaWidgets project. The TurboGears project is now managed jointly by a group of about half a dozen core developers under the leadership ofMark Ramm (as the TurboGears 2 development lead) andFlorent Aide (as the Turbogears 1.x release manager).In June 2007 the community began experiments to put the TurboGears API on top of components and protocols used in Pylons and there was speculation that the two frameworks may finally be merging. [cite web | url=http://compoundthinking.com/blog/index.php/2007/06/27/turbogears-11-and-beyond/ | title=Pylons Merge | accessdate=2007-06-27] However, the official TurboGears 2 documentation states that this is unlikely to happen, due to the "different, but compatible priorities" [cite web | url=http://turbogears.org/2.0/docs/main/WhatsNew.html#why-not-just-merge-with-pylons | title=What’s new in TurboGears 2 | accessdate=2008-09-16] of both projects.
As of Fall 2008, TurboGears has a large and healthy community with over 3000 users on the TurboGears mailing list, a book from
Prentice Hall published in Nov. '06, and a number ofopen source and proprietary TurboGears applications deployed to the real world. The development progresses at a moderate but steady pace and was also newly fueled by a successful participation of the project as aGoogle Summer of Code mentoring organization in 2008. A first beta version of TurboGears 1.1 was released in early September 2008 and a preview-release of TurboGears 2 is currently in alpha-state.Future of TurboGears
Development currently happens in two main branches:
# The TurboGears 1.x branch, which is based on the original code-base and uses CherryPy as the underlying web application server.
# TurbGears 2 (trunk), which basically rebuild the TurboGears 1API on top of Pylons.TurboGears 1.1 will be a newer version of TurboGears 1.0, which continues to support exactly the same API. The main difference between 1.0 and 1.1 will be the choice of default templating engine and default ORM, i.e. it aims to replace SQLObject with
SQLAlchemy and Kid with Genshi. The 1.1 branch is regarded as an intermediate step towards the Pylons-based 2.0 version. Recently, however, there has been made good progress to adapt the 1.x code-base to CherryPy 3.0 and a new 1.5 branch, which is currently in alpha-state, has been created.TurboGears 2 is expected to go beta in early Fall 2008 with a 2.0 stable release to follow later this year.
Further reading
Ramm, M (Nov 7, 2006). Rapid Web Applications with TurboGears, Prentice Hall. ISBN 0132433885
References
See also
*
Comparison of web application frameworks External links
* [http://www.turbogears.org/index.html TurboGears homepage]
* [http://planet.turbogears.org/ TurboGears Blogs]
* [http://groups.google.com/group/turbogears TurboGears google group]
* [http://showmedo.com/videos/TurboGears TurboGears screencasts] and related videos
* [http://lucasmanual.com/mywiki/TurboGears TurboGears from start to finish]
Wikimedia Foundation. 2010.