@ ben_hall [email protected] blog.benhall.uk
DESCRIPTION
My pain with. NHibernate Open Source Object Relational Mapping (ORM) Framework. @ Ben_Hall [email protected] Blog.BenHall.me.uk. Learning Curve. Agenda. Querying Mapping Relationships ‘Real’ application Castle’s Active Record. What is ORM?. Mapping between objects and database. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/2.jpg)
![Page 3: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/3.jpg)
Learning Curve
Se-ries1
![Page 4: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/4.jpg)
Agenda
• Querying• Mapping• Relationships• ‘Real’ application• Castle’s Active Record
![Page 5: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/5.jpg)
What is ORM?
![Page 6: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/6.jpg)
Mapping between objects and database
![Page 7: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/7.jpg)
Objects vs Tables
![Page 8: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/8.jpg)
ORM allows us to talk in our own language
![Page 9: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/9.jpg)
Developers vs DBAs
![Page 10: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/10.jpg)
![Page 11: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/11.jpg)
Personal Choice
![Page 12: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/12.jpg)
My choice is NHibernate
![Page 13: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/13.jpg)
![Page 14: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/14.jpg)
![Page 15: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/15.jpg)
![Page 16: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/16.jpg)
http://sourceforge.net/projects/nhibernate
http://teamcity.codebetter.com/overview.html
![Page 17: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/17.jpg)
QUERYING THE DATABASEDEMO
![Page 18: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/18.jpg)
CREATE, UPDATE, DELETEDEMO
![Page 19: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/19.jpg)
RELATIONSHIPSDEMO
![Page 20: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/20.jpg)
![Page 21: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/21.jpg)
STORED PROCEDURESDEMO
![Page 22: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/22.jpg)
BUT I LIKE LINQDEMO
![Page 23: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/23.jpg)
The Real World
![Page 24: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/24.jpg)
Testing ASP.net Web Applications
www.TestingASPnet.com
![Page 25: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/25.jpg)
WROX PIZZADEMO
![Page 26: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/26.jpg)
Sharp Architecture
http://code.google.com/p/sharp-architecture/
![Page 27: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/27.jpg)
Active Record
![Page 28: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/28.jpg)
ACTIVE RECORDDEMO
![Page 29: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/29.jpg)
In summary...
![Page 30: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/30.jpg)
Summary
• NHibernate has a learning curve • After the initial hit, easy to continue• A lot more powerful than I have shown today• Fluent NHibernate over XML Mapping• Active Record has an improved out-the-box
experience
![Page 32: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/32.jpg)
Resources
• http://Blog.BenHall.me.uk• http://www.TestingASPnet.com• http://sourceforge.net/projects/nhibernate• http://teamcity.codebetter.com/overview.html• http://nhforge.org• http://www.castleproject.org/ActiveRecord/• http://code.google.com/p/sharp-architecture/
![Page 33: @ Ben_Hall Ben@BenHall.uk Blog.BenHall.uk](https://reader036.vdocuments.us/reader036/viewer/2022081603/56815b99550346895dc99fd1/html5/thumbnails/33.jpg)
Flickr Images• http://www.flickr.com/photos/twenty_questions/
2261331590/• http://www.flickr.com/photos/kaibara/2920616863/• http://www.flickr.com/photos/mag3737/1914076277/• http://www.flickr.com/photos/zen/2273186263/• http://www.flickr.com/photos/frielp/6829509/• http://www.flickr.com/photos/e_phots/2345645865/• http://www.flickr.com/photos/leon_homan/2856628778/• http://www.wordle.net