Recently I have do some work in new technology – NHibernate.
NHibernate is same as JAVA’s Hibernate Core in .net framework. NHibernate is object-relational mappers(ORM). It handles persisting plain .NET objects to and from an underlying relational database. with an XML description of your entities and relationships, NHibernate automatically generates SQL for the objects.Persistent classes do not need to implement any interface or inherit from a special base class. This makes it possible to design the business logic using plain .NET (CLR) objects and object-oriented idiom.
NHibernate key features:
Natural programming model – NHibernate supports natural OO idiom; inheritance, polymorphism, composition and the .NET collections framework, including generic collections.
Native .NET – NHibernate API uses .NET conventions and idioms
Support for fine-grained object models – a rich variety of mappings for collections and dependent objects
No build-time bytecode enhancement – there’s no extra code generation or bytecode processing steps in your build procedure
The query options – NHibernate addresses both sides of the problem; not only how to get objects into the database, but also how to get them out again
Custom SQL – specify the exact SQL that NHibernate should use to persist your objects. Stored procedures are supported on Microsoft SQL Server.
Support for “conversations” – NHibernate supports long-lived persistence contexts, detach/reattach of objects, and takes care of optimistic locking automatically
Free/open source – NHibernate is licensed under the LGPL (Lesser GNU Public License)
For More details :
http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx
http://nhforge.org/wikis/howtonh/your-first-nhibernate-based-application.aspx