linq to sql vs nhibernate
DESCRIPTION
Pros and cons of using Linq to Sql and NHIbernate. Presentation is in croatian.TRANSCRIPT
NHibernate VS
Linq to Sql
Mario PavlovićMirta BaranovićZvonimir Vanjak
Baza podataka relacijska paradigma Aplikacija objektna paradigma
Izvor: www.deviantart.com - Craig Hilton
Objektno-relacijsko preslikavanje
Programerska tehnika pomoću koje se premošćuje nekompatibilnost tipova
unutar objektne i relacijske paradigme
(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
(N)Hibernate
• App.config* – konfiguracijski XML
• XML mappings – definicija perzistencije
• mogu ga zamijeniti i hibernate.cfg ili web.config
(N)Hibernate – Arhitektura
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
Linq to Sql – Arhitektura
Izvor: www.galcho.com
Usporedba
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
Linq to Sql - Prednosti
• Povoljna krivulja učenja– Generiranje kôda– Brži start– Brzi rezultati
Linq to Sql - Prednosti
• Povoljna krivulja učenja– Object Relation Designer– Drag’n’Drop– Procedure = Metode
NHibernate – prednosti
• Alat za velike dečke– Podržava sve
komercijalne bazepodataka
– Dokazana stabilnost:2005. godine Jolt Award
Izvor: i.zdnet.comblogsdavid-goliath
NHibernate – prednosti
• POCO razredi• Odvaja model domene od perzistencije
Računica:
NHibernate – prednosti
• Object Relation Designer– Prednosti smo vidjeli, a mane?
• Cijeli objektni model u jednoj datoteci• Razredi su prljavi– Koriste sebi svojstvene tipove
NHibernate – prednosti
HQL*– Inačica Sql jezika– Podržava:• Nasljeđivanje• Polimorfizam• Asocijacije
– Približava relacijski model objektnom
* Hibernate Query Language
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
Pitanja