Jump to content

NHibernate

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 195.47.234.106 (talk) at 12:04, 2 May 2009 (→‎Books). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

NHibernate
Developer(s)JBoss
Stable release
2.0.1 / September 29, 2008 (2008-09-29)
Repository
Written inC#
Operating systemCross-platform
Platform.NET 1.1 or 2.0 and Mono
TypeObject-relational mapping
LicenseGNU Lesser General Public License
Websitehttp://www.nhibernate.org/

NHibernate is an Object-relational mapping (ORM) solution for the Microsoft .NET platform: it provides a framework for mapping an object-oriented domain model to a traditional relational database. Its purpose is to relieve the developer from a significant portion of relational data persistence-related programming tasks.

NHibernate is free as open source software that is distributed under the GNU Lesser General Public License.

NHibernate is a port of the popular Java O/R mapper Hibernate to .NET. Version 1.0 mirrored the feature set of Hibernate 2.1, as well as a number of features from Hibernate 3.

NHibernate 1.2.1, released in November 2007, introduced many more features from Hibernate 3 and support for .NET 2.0, stored procedures, generics, and nullable types.

NHibernate 2.0 was released August 23 2008. It is comparable to Hibernate 3.2 in terms of features.

NHibernate 2.1 is currently under development and should be released in mid 2009.

NHibernate 3.0 will be the first version to use .Net 3.5.

A partial implementation of a LINQ provider is available for 2.1. A new AST parser which can transform HQL (Hibernate Query Language) or LINQ is in development for a future version of NHibernate.

Feature summary

NHibernate's primary feature is mapping from .NET classes to database tables (and from CLR data types to SQL data types). NHibernate also provides data query and retrieval facilities. NHibernate generates the SQL commands and relieves the developer from manual data set handling and object conversion, keeping the application portable to most SQL databases, with database portability delivered at very little performance overhead.

NHibernate provides transparent persistence for Plain Old CLR Objects (POCOs). The only strict requirement for a persistent class is a no-argument constructor, which does not have to be public. (Proper behavior in some applications also requires special attention to the Equals() and GetHashCode() methods. [1])

History

NHibernate was started by Tom Barrett, and later picked up by Mike Doerfler and Peter Smulovics. At the end of 2005, JBoss, Inc. (now part of Red Hat) hired Sergey Koshcheyev, the then lead developer of NHibernate, to work full-time on its future versions. [2]. At the end of 2006 JBoss stopped the support to this project; nowadays it's entirely developed and led by the community.

Contributions

As open source software, NHibernate has received many contributions from its users. Most of them are directly integrated as internal features. Others are provided by the users as utilities and documentation.

Implementation of LINQ has allowed Language Integrated Query use with NHibernate.[3]

See also

References

Bibliography

  • Kuaté, Pierre Henri; Harris, Tobin; Bauer, Christian; King, Gavin (February 2009). NHibernate in Action. Manning Publications. p. 400. ISBN 1932394923.