Habanero is a free open source Enterprise Application Framework for .Net. Habanero provides the developer with a tool to produce an agile application, from the data layer through to the front-end. It persists data to and from the database using object relational mapping (ORM), manages business objects to support a rich domain model, and generates user interfaces at runtime to display and edit the mapped data.
Habanero provides a developer with everything that is needed to develop highly efficient, scalable, and easily maintainable software. At its core is a highly optimised Object Relational Mapping (ORM) layer that handles all interactions of your domain model objects with the data store of your choice.
Persistence to most mainstream relational databases (Oracle, SQL Server, MySQL, FireBird, MS Access, PostgreSQL, and SQLite), as well as files (XML, binary, etc.) and even a highly efficient in-memory data store (perfect for testing and delayed persistence) has been built into Habanero for you. Furthermore, if your required persistence strategy is not supported, you can create your own custom strategy that plugs seamlessly into Habanero, enabling the required persistence support.
When using Habanero, you will notice that you never have to think about SQL, or files, or any other persistence strategy. All of this is done for you. The Habanero SQL engine handles everything, from querying your database to inserting, updating and deleting your data records. Due to the intelligence built into the Habanero object model, you are able to query across relationships without having to think about SQL Joins and you can do efficient updates of the data in a table for only the fields that have been modified.
All of the major persistence concerns of a developer are addressed by Habanero so that more time can be spent on the actual problem domain. Habanero handles the persistence technology, concurrency control, transactions and audit logging for you, without any additional effort.
* ORM: Map database tables to objects in code
* Persist property values to and from the database
* Define all mapping in a single XML file
* Switch between database vendors with one setting
* Support for MySQL, MS Sql Server, MS Access, Oracle, PostgreSQL, SQLite, Firebird
* FireStarter GUI class definitions xml manager
* Generate user interfaces at runtime and map properties to controls
* Develop for both desktop (with Windows Forms) and web (with Gizmox' Visual WebGUI)
* Generate new projects and code files
* Generate UI forms from templates
* Reverse engineer class definitions from existing databases
* Support variable data sources, including an in-memory database
* Source code included
* Supports several object inheritance structures/formats
* Supports generic collections and nullable types
* Supports relationships between objects
* Supports relationship types of association, composition and aggregation
* Supports deletion prevention or cascading deletes on multiple relationships
* Set load criteria on collections
* Choose between single or composite primary keys
* Choose between raw SQL or Habanero's Criteria query structure
* Migration support to upgrade databases of outdated client installations
* Generate test classes for Business Objects
* Generate fully functional grids from database data
* Generate editing forms to edit data and persist changes
* Central form control for MDI-based applications
* Generate combo-box content dynamically from the database
* Application logging uses log4net