2. Introduction to ORM Introduction to NHibernate Scenario NHibernate Demo Demo Process Hibernate-config.xml Mapping files & classes SessionManager DAO (Data Access Object) Create ASPX to do testing Reference 2 Agenda
4. Object-relational mapping (aka ORM, O/RM, and O/R mapping) is a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages (Wikipedia) Objects are hierarchical Databases are relational What is ORM? ORM objects relational 4
5. Productivity Eliminates lots of repetitive code – focus on business logic Database schema is generated automatically Maintainability Fewer lines of code – easier to understand Easier to manage change in the object model Performance Lazy loading – associations are fetched when needed Caching Database vendor independence The underlying database is abstracted away Can be configured outside the application ORM Benefits 5
6. 6 ORM and Architacture Oracle, MS SQL Server, DB2, MySQL, Sybase, etc.
8. Initially developed for Java created in late 2001 by Gavin King absorbed by the JBossGroup / Red Hat Ported to .NET 1.1, 2.0, 3.5 Resulting product called “NHibernate” All popular databases supported Oracle, SQL Server, DB2, SQLite, PostgreSQL, MySQL, Sybase, Firebird, … XML-based configuration files Good community support Free/open source -NHibernateis licensed under the LGPL (Lesser GNU Public License) Introduction to NHibernate 8
12. ISessionFactory One per database (or application) Expensive to create Reads configuration ISession Portal to the database Saves, retrieves ITransaction Encapsulates database transactions Nhibernate in a Nutshell 12
28. <class> declare a persistent class <id> defines the mapping from that property to the primary key column Specifies strategy <property> declares a persistent property of the class <component> maps properties of a child object to columns of the table of a parent class. Associations One-to-Many Many-to-One Many-to-Many One-to-One (uncommon) 28 Mapping Concepts
41. Transaction: A set of database operations which must be executed in entirety or not at all Should end either with a commit or a rollback All communication with a database has to occur inside a transaction! 40 Transactions
47. O/R Mapping http://en.wikipedia.org/wiki/Object-relational_mapping Official site www.hibernate.org NHibernate in Action NHibernate Made Simple http://www.codeproject.com/KB/database/Nhibernate_Made_Simple.aspx NHibernate Best Practices http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx 46 Reference