E N D
2. Jacinto Limjap, Jr. Senior Software Design Engineer, Cormant Technologies Inc.
3. Agenda Talk about Object Relational Impedance Mismatch, and why it matters
Go on a brief overview of Object Relational Mapping & NHibernate
Demo NHibernate and LINQ for NHibernate, and how it deals with data in .NET applications
4. Object Relational Impedance Mismatch RDBMS are optimized for data, OOP was optimized for behavior
RDBMS use tables and joins, OOP uses objects, inheritance and composition
No straightforward way to represent tables and columns as classes and attributes, and vice versa
5. The Vietnam of Computer Science “[Object relational impedance mismatch] represents a quagmire which starts well, gets more complicated as time passes, and before long entraps its users in a commitment that has no clear demarcation point, no clear win conditions, and no clear exit strategy.”
- Ted Neward
6. Attempts to solve the Object Relational Impedance Mismatch in .NET ADO.NET – Typed Datasets
LINQ to SQL
Entity Framework
LLBLGen
Objectmapper.NET iBATIS.NET
Subsonic
Lightspeed
NHibernate
db4o
7. Object Relational Mapping Attempts to solve object relational impedance mismatch
Data infrastructure is represented in separate files or as .NET attributes
Main aim is to maintain POCOs (Plain Old CLR Objects)?
8. Why should I care about POCOs? Loose coupling from data infrastructure
Testability
Ability to adhere to tenets of object oriented programming (as opposed to data-driven programming)?
9. NHibernate Ported from Hibernate, a popular ORM in Java
Open source
Works with Microsoft SQL Server, Oracle, MySQL, etc.
Uses XML to map objects to the database schema
De facto standard for OR Mapping
LINQ provides a new way to simplify NHibernate queries
10. Steps Download Nhibernate 2.0 Beta -- http://nhibernate.org
More information on setting up Nhibernate for your application can be found on The NHibernate FAQ: http://blog.hibernatingrhinos.com/nhibernate
Download NHContrib from Sourceforge using subversion
http://sourceforge.com/nhcontrib
Create your solution, add a reference to the NHibernate.Linq project
11. LINQ for NHibernate Demo
12. LINQ for NHibernate Pros & Cons Strongly typed queries
Eliminates need for string literals
Intellisense support Still in alpha (not included in NHibernate 2.0 beta!)?
Hasn't covered more complex join scenarios (yet)?
13. References NHibernate:
http://nhibernate.org
NHContrib:
http://sourceforge.net/projects/nhcontrib
The NHibernate FAQ:
http://blogs.hibernatingrhinos.com/nhibernate
The Vietnam of Computer Science by Ted Neward
http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx
14. Your speaker Blog
http://dotnet.kapenilattex.com
Forums (username = LaTtEX)?
http://msforums.ph/forums
Email
jonlimjap@gmail.com
Twitter
http://twitter.com/LaTtEX
15. Cormant is hiring: Technical Leads and Senior Software Design Engineers You must be a strong developer ready to roll up your sleeves, but will also be responsible for Team Lead duties such as resource allocations, task estimates, and coordination with Quality Assurance.
You have a proven experience in providing technical and design solutions using Object Oriented Analysis and Design (OOAD).
You have a strong opinion on whether to favor composition over inheritance.
You prefer to think through a problem rather than programming like mad.
“Refactor mercilessly” is not just a tee shirt slogan.
You get satisfaction in doing a job right.
You have proven experience in C#, NHibernate, Agile development methodologies (Test-driven development, Continuous Integration).
Email your resume to joy.perez@cormant.com