23
NHibernate VS Linq to Sql Mario Pavlović Mirta Baranović Zvonimir Vanjak

Linq to Sql vs NHibernate

  • Upload
    pakizg

  • View
    1.424

  • Download
    6

Embed Size (px)

DESCRIPTION

Pros and cons of using Linq to Sql and NHIbernate. Presentation is in croatian.

Citation preview

Page 1: Linq to Sql vs NHibernate

NHibernate VS

Linq to Sql

Mario PavlovićMirta BaranovićZvonimir Vanjak

Page 2: Linq to Sql vs NHibernate
Page 3: Linq to Sql vs NHibernate
Page 4: Linq to Sql vs NHibernate
Page 5: Linq to Sql vs NHibernate
Page 6: Linq to Sql vs NHibernate

Baza podataka relacijska paradigma Aplikacija objektna paradigma

Izvor: www.deviantart.com - Craig Hilton

Page 7: Linq to Sql vs NHibernate

Objektno-relacijsko preslikavanje

Programerska tehnika pomoću koje se premošćuje nekompatibilnost tipova

unutar objektne i relacijske paradigme

Page 8: Linq to Sql vs NHibernate
Page 9: Linq to Sql vs NHibernate

(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

Page 10: Linq to Sql vs NHibernate

(N)Hibernate

• App.config* – konfiguracijski XML

• XML mappings – definicija perzistencije

• mogu ga zamijeniti i hibernate.cfg ili web.config

Page 11: Linq to Sql vs NHibernate

(N)Hibernate – Arhitektura

Page 12: Linq to Sql vs NHibernate

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

Page 13: Linq to Sql vs NHibernate

Linq to Sql – Arhitektura

Izvor: www.galcho.com

Page 14: Linq to Sql vs NHibernate

Usporedba

Page 15: Linq to Sql vs NHibernate

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

Page 16: Linq to Sql vs NHibernate

Linq to Sql - Prednosti

• Povoljna krivulja učenja– Generiranje kôda– Brži start– Brzi rezultati

Page 17: Linq to Sql vs NHibernate

Linq to Sql - Prednosti

• Povoljna krivulja učenja– Object Relation Designer– Drag’n’Drop– Procedure = Metode

Page 18: Linq to Sql vs NHibernate

NHibernate – prednosti

• Alat za velike dečke– Podržava sve

komercijalne bazepodataka

– Dokazana stabilnost:2005. godine Jolt Award

Izvor: i.zdnet.comblogsdavid-goliath

Page 19: Linq to Sql vs NHibernate

NHibernate – prednosti

• POCO razredi• Odvaja model domene od perzistencije

Računica:

Page 20: Linq to Sql vs NHibernate

NHibernate – prednosti

• Object Relation Designer– Prednosti smo vidjeli, a mane?

• Cijeli objektni model u jednoj datoteci• Razredi su prljavi– Koriste sebi svojstvene tipove

Page 21: Linq to Sql vs NHibernate

NHibernate – prednosti

HQL*– Inačica Sql jezika– Podržava:• Nasljeđivanje• Polimorfizam• Asocijacije

– Približava relacijski model objektnom

* Hibernate Query Language

Page 22: Linq to Sql vs NHibernate

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

Page 23: Linq to Sql vs NHibernate

Pitanja