SlideShare une entreprise Scribd logo
1  sur  23
NHibernate
                     VS
                 Linq to Sql



                               Mirta Baranović
Mario Pavlović                 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 baze
    podataka
  – 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

Contenu connexe

Similaire à Linq to Sql vs NHibernate

Seminarv2 0 090609060123 Phpapp01
Seminarv2 0 090609060123 Phpapp01Seminarv2 0 090609060123 Phpapp01
Seminarv2 0 090609060123 Phpapp01google
 
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister
 
Vert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaVert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaFive
 
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeVert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeMihovil Rister
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Denis Kranjčec
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)IT Showoff
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayNETMedia
 
Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Nenad Pecanac
 
eZ Publish intro
eZ Publish introeZ Publish intro
eZ Publish introivrdoljak
 
HUJAK NoSQL - mihovil rister
HUJAK NoSQL - mihovil rister HUJAK NoSQL - mihovil rister
HUJAK NoSQL - mihovil rister Mihovil Rister
 
Developers' mDay 2017. - Veljko Manojlović Telenor
Developers' mDay 2017. - Veljko Manojlović TelenorDevelopers' mDay 2017. - Veljko Manojlović Telenor
Developers' mDay 2017. - Veljko Manojlović TelenormCloud
 
Web bazirani servisi za krekiranje lozinki - Marija Barušić
Web bazirani servisi za krekiranje lozinki - Marija BarušićWeb bazirani servisi za krekiranje lozinki - Marija Barušić
Web bazirani servisi za krekiranje lozinki - Marija BarušićMarija Barušić
 
Kako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudKako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudDubravko Marak
 

Similaire à Linq to Sql vs NHibernate (20)

Seminarv2 0 090609060123 Phpapp01
Seminarv2 0 090609060123 Phpapp01Seminarv2 0 090609060123 Phpapp01
Seminarv2 0 090609060123 Phpapp01
 
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
 
Vert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaVert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, Javantura
 
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil RisterJavantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
 
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeVert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump Day
 
JavaCro'15 - Microservice architecture - Nenad Pečanac
JavaCro'15 - Microservice architecture - Nenad PečanacJavaCro'15 - Microservice architecture - Nenad Pečanac
JavaCro'15 - Microservice architecture - Nenad Pečanac
 
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
 
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - MEAN Stack – How & When – Nenad PećanacJavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
 
Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Mean Stack JavaCro 2014
Mean Stack JavaCro 2014
 
eZ Publish intro
eZ Publish introeZ Publish intro
eZ Publish intro
 
eZ publish intro
eZ publish introeZ publish intro
eZ publish intro
 
HUJAK NoSQL - mihovil rister
HUJAK NoSQL - mihovil rister HUJAK NoSQL - mihovil rister
HUJAK NoSQL - mihovil rister
 
Developers' mDay 2017. - Veljko Manojlović Telenor
Developers' mDay 2017. - Veljko Manojlović TelenorDevelopers' mDay 2017. - Veljko Manojlović Telenor
Developers' mDay 2017. - Veljko Manojlović Telenor
 
Web bazirani servisi za krekiranje lozinki - Marija Barušić
Web bazirani servisi za krekiranje lozinki - Marija BarušićWeb bazirani servisi za krekiranje lozinki - Marija Barušić
Web bazirani servisi za krekiranje lozinki - Marija Barušić
 
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir MuratJavantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
 
Kako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudKako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloud
 
Colaab
ColaabColaab
Colaab
 

Linq to Sql vs NHibernate

  • 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
  • 19. NHibernate – prednosti • POCO razredi • Odvaja model domene od perzistencije Računica:
  • 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

Notes de l'éditeur

  1. Urok = uzrok
  2. Prednosti ORMa:Produktivnost – količina kôda smanjenaProvjerena kvalitetaJednostavnost i konzistencijaKvaliteta (?)
  3. Promjeniti font?
  4. A zasto je to vazno?