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.
A major component of HabaneroÃ¢â‚¬â„¢s power lies in its simplicity. Once the developer has got to grips with the domain driven approach that Habanero promotes, the most complex tasks become much easier to implement.
A tool called FireStarter is included with Habanero to provide a visual interface for the creation of your domain model objects and rules as well as your application code. Using FireStarter, a developer is able to iteratively generate all of the domain model code (as well as supporting Test Fixtures) for his application, allowing them to focus on the application logic and flow instead. FireStarter also supports the ability to reverse engineer an existing database and create a domain model that matches the databaseÃ¢â‚¬â„¢s structure and rules. The use of FireStarter with Habanero makes the development and maintenance of applications faster, easier, and more reliable.
Security and validation of the object model are supported at the domain model level of the application, so that accessing the same object from multiple User Interfaces does not give inconsistent access and validation rules. The validation rules on the domain model can be defined within the Class Definitions, or as custom code. The domain model security checks are not bound to a particular security provider, so that you can implement this for your particular environment and security requirements.
Habanero is a very stable framework with many solutions successfully deployed all over the world. The framework has been developed with a Test Driven Development approach ensuring that the code base is of a very high quality. The framework is currently covered by more than 7500 unit and acceptance tests and the core domain layer library has test coverage of almost 90%. There is also a very active community working on the framework with very deliberate focus on establishing Habanero as the standard for high quality application development.