Habanero.NET
Encyclopedia
Habanero is an Enterprise Application Framework for the .NET
platform that provides tools for rapid application development
using agile
techniques. Habanero uses object-relational mapping
(ORM) to carry out data persistence from relational databases to objects in code, and provides runtime user interface generation to create and edit the mapped data. Habanero is one of several rapid application and ORM tools available, each seeking to resolve the mismatch between object-oriented code and relational database
s. Habanero is developed by Chillisoft, a software development company from Pietermaritzburg, South Africa, and is released as free, open source, under the GNU LGPL license.
Habanero uses an Xml
file to determine how the data mapping should take place, giving the developer some control over data types and validation rules. User interface generation is supported through a control factory structure, using an abstract factory pattern, so that the appropriate control factory is chosen for the deployment environment. By supporting Visual WebGUI (developed by Gizmox) and Windows Forms, an application developed by Habanero can be deployed in either a desktop or web environment.
The Habanero architecture provides dependency inversion between the business object layer and database layer, which provides the ability to source data from variable data source types, including a relational database and an in-memory database that stores data for the lifetime of the application.
Habanero includes the Firestarter tool to manage the mapping definitions. Firestarter is able to generate the class definitions from an existing database schema
. Apart from managing the specific settings within the class definitions, Firestarter uses code generation from custom templates to generate a working solution, including once-off form generation. Firestarter is included for free, but is not distributed under the LGPL license with the main Habanero framework.
editor were released for free during the beta phase.
On November 7, 2007, Chillisoft launched the gold release of Habanero, splitting the product into two packages. Habanero Standard was released as a free, open source edition that carried out object-relational mapping and that required manual construction of the Xml
mapping definitions. Habanero Professional extended the Standard edition by providing a mouse-driven interface to edit the XML mapping definitions, and by offering support for the generation of the definitions from an existing database. The Professional edition also provided generation of code and user interfaces to edit the properties defined in the definitions.
On June 9, 2008, with the version 1.4.1 release, the entire Habanero framework was moved to the free LGPL license and the Pro and Standard editions were merged. Firestarter was included as a free executable utility.
On September 15, 2008, Chillisoft released a version 2.0 beta of Habanero, rebranding it as a full Enterprise Application Framework. Version 2 included support for Visual WebGUI and the Firebird database.
On October 17, 2008, with the version 2.0.1 release, an example application was released which demonstrated the separation of the presentation layer from the user interface layer. The example application provided both Windows Forms and Visual WebGUI presentation layers sharing common user interface code.
On November 12, 2008, version 2.1 was released with support for once-off generation of standard forms built from dynamic Habanero user interface components.
On June 12, 2009, version 2.3.0 was released with a wide range of bug fixes and performance enhancements.
On September 10, 2009, version 2.3.1 was released with a wide range of bug fixes and performance enhancements.
On March 29, 2010, version 2.3.2 was released. The new version now has added Support for MSAccess2007 to Habanero and dramatically improved performance of loading collections.
-
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
platform that provides tools for rapid application development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...
using agile
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
techniques. Habanero uses object-relational mapping
Object-relational mapping
Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...
(ORM) to carry out data persistence from relational databases to objects in code, and provides runtime user interface generation to create and edit the mapped data. Habanero is one of several rapid application and ORM tools available, each seeking to resolve the mismatch between object-oriented code and relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...
s. Habanero is developed by Chillisoft, a software development company from Pietermaritzburg, South Africa, and is released as free, open source, under the GNU LGPL license.
Habanero uses an Xml
XML
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....
file to determine how the data mapping should take place, giving the developer some control over data types and validation rules. User interface generation is supported through a control factory structure, using an abstract factory pattern, so that the appropriate control factory is chosen for the deployment environment. By supporting Visual WebGUI (developed by Gizmox) and Windows Forms, an application developed by Habanero can be deployed in either a desktop or web environment.
The Habanero architecture provides dependency inversion between the business object layer and database layer, which provides the ability to source data from variable data source types, including a relational database and an in-memory database that stores data for the lifetime of the application.
Habanero includes the Firestarter tool to manage the mapping definitions. Firestarter is able to generate the class definitions from an existing database schema
Database schema
A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed...
. Apart from managing the specific settings within the class definitions, Firestarter uses code generation from custom templates to generate a working solution, including once-off form generation. Firestarter is included for free, but is not distributed under the LGPL license with the main Habanero framework.
Release history
Habanero was released on July 27, 2007, primarily as an open source tool to carry out the ORM functionality. The additional user interface support and XmlXML
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....
editor were released for free during the beta phase.
On November 7, 2007, Chillisoft launched the gold release of Habanero, splitting the product into two packages. Habanero Standard was released as a free, open source edition that carried out object-relational mapping and that required manual construction of the Xml
XML
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....
mapping definitions. Habanero Professional extended the Standard edition by providing a mouse-driven interface to edit the XML mapping definitions, and by offering support for the generation of the definitions from an existing database. The Professional edition also provided generation of code and user interfaces to edit the properties defined in the definitions.
On June 9, 2008, with the version 1.4.1 release, the entire Habanero framework was moved to the free LGPL license and the Pro and Standard editions were merged. Firestarter was included as a free executable utility.
On September 15, 2008, Chillisoft released a version 2.0 beta of Habanero, rebranding it as a full Enterprise Application Framework. Version 2 included support for Visual WebGUI and the Firebird database.
On October 17, 2008, with the version 2.0.1 release, an example application was released which demonstrated the separation of the presentation layer from the user interface layer. The example application provided both Windows Forms and Visual WebGUI presentation layers sharing common user interface code.
On November 12, 2008, version 2.1 was released with support for once-off generation of standard forms built from dynamic Habanero user interface components.
On June 12, 2009, version 2.3.0 was released with a wide range of bug fixes and performance enhancements.
On September 10, 2009, version 2.3.1 was released with a wide range of bug fixes and performance enhancements.
On March 29, 2010, version 2.3.2 was released. The new version now has added Support for MSAccess2007 to Habanero and dramatically improved performance of loading collections.
-