1. NHibernate
VS
Linq to Sql
Mirta Baranović
Mario Pavlović Zvonimir Vanjak
2.
3.
4.
5.
6. Baza podataka relacijska paradigma
Aplikacija objektna paradigma
Izvor: www.deviantart.com - Craig Hilton
7. Objektno-relacijsko preslikavanje
Programerska tehnika pomoću koje se
premošćuje nekompatibilnost tipova
unutar objektne i relacijske
paradigme
8.
9. (N)Hibernate
• Inicijalno razvijen za Javu
– Razvijen 2001. godine od strane Gavina Kinga
– Preuzet od strane JBoss grupe/Red Hat
• Prenamijenjen za .NET okruženje
– Rezultat prenamjene je Nhibernate
• Podupire gotovo sve komercijalne baze podataka
– Oracle, Sql Server, DB2, SQLite, PostgreSql, MySql,
Sybase, Firebird, …
• XML konfiguracijske datoteke
• Dobra potpora zajednice
• Free/Open source – licenciran pod LGPL licencom
10. (N)Hibernate
• App.config* – konfiguracijski
XML
• XML mappings – definicija
perzistencije
• mogu ga zamijeniti i hibernate.cfg ili web.config
12. Linq to Sql
• Prvi Microsoftov OR maper*
• Preslikava relacijski model baze u objektni
model aplikacije
• Pruža run-tim infrastrukturu koja upravlja
relacijskim podatcima i predstavlja ih kao
objekte aplikacije
* Nastao 2003. godine pod vodstvom Matta Warrena
13. Linq to Sql – Arhitektura
Izvor: www.galcho.com
15. Linq to Sql - Prednosti
• LINQ to sql
– Jednostavni upiti lako razumljivi
– Kompleksni upiti lako postaju ogromni i
zamorni (?prednost?)
– Upiti se kompajliraju
Izvor: www.simonsegal.net
16. Linq to Sql - Prednosti
• Povoljna krivulja učenja
– Generiranje kôda
– Brži start
– Brzi rezultati
17. Linq to Sql - Prednosti
• Povoljna krivulja učenja
– Object Relation Designer
– Drag’n’Drop
– Procedure = Metode
18. NHibernate – prednosti
• Alat za velike dečke
– Podržava sve
komercijalne baze
podataka
– Dokazana stabilnost:
2005. godine Jolt Award
Izvor: i.zdnet.comblogsdavid-goliath
20. NHibernate – prednosti
• Object Relation Designer
– Prednosti smo vidjeli, a mane?
• Cijeli objektni model u jednoj datoteci
• Razredi su prljavi
– Koriste sebi svojstvene tipove
21. NHibernate – prednosti
HQL*
– Inačica Sql jezika
– Podržava:
• Nasljeđivanje
• Polimorfizam
• Asocijacije
– Približava relacijski model objektnom
* Hibernate Query Language
22. Zaključak
• Linq to Sql
– početak kraja Microsoftovog ignoriranja
OR mapiranja
– Ugrađuje loše stavove (sve
jednostavno, sve lako)
– Pogodan za male projekte
• NHibernate
– Pouzdan, fleksibilan
– Objektni upitni jezik
– Pogodan za srednje i veće projekte