O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

ORM - Introduzione

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
JPA and Hibernate
JPA and Hibernate
Carregando em…3
×

Confira estes a seguir

1 de 41 Anúncio

ORM - Introduzione

In data Mercoledì 13 Giugno 2012 in aula 4, dalle 9:00 alle 10:30,il dott. Alessandro Forte della T.&C. Systems Group s.r.l. ha tenuto un seminario sull'Object-Relational Mapping.
Il dott. Forte è attualmente SW Architect per la T.&C. Systems Group s.r.l. e speaker certificato Microsoft Italia.
Si è trattato di un'importante occasione per affacciarsi a nuovi argomenti di interesse del mondo produttivo e allo stesso tempo entrare in contatto con una società attiva sul territorio. Si ringrazia il prof. Antonio Maratea per l'occasione concessa e la disponibilità dimostrata.

In data Mercoledì 13 Giugno 2012 in aula 4, dalle 9:00 alle 10:30,il dott. Alessandro Forte della T.&C. Systems Group s.r.l. ha tenuto un seminario sull'Object-Relational Mapping.
Il dott. Forte è attualmente SW Architect per la T.&C. Systems Group s.r.l. e speaker certificato Microsoft Italia.
Si è trattato di un'importante occasione per affacciarsi a nuovi argomenti di interesse del mondo produttivo e allo stesso tempo entrare in contatto con una società attiva sul territorio. Si ringrazia il prof. Antonio Maratea per l'occasione concessa e la disponibilità dimostrata.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a ORM - Introduzione (20)

Anúncio

Mais recentes (20)

Anúncio

ORM - Introduzione

  1. 1. Alessandro Forte SW Architect @ T&C Group MCP – MCTS http://www.alessandroforte.it/blog info@alessandroforte.it
  2. 2. Alessandro Forte Software Architect @ T&C Group DotNetCampan ia Founder Contatti WebSite: http://www.alessandroforte.it/ Blog: http://www.alessandroforte.it/blog/ E-Mail: informazioni@alessandroforte.it Prossimo Speech BBCC - Biology, Bioinformatics and Computation in Campania Napoli, 27/09/2012 Compra il mio libro
  3. 3. Agenda della giornata: o ORMs o OR Impedance Mismatch o DAL o Entity Framework o DEMO (Creiamo un EDM) o DEMO (Consumiamo un EDM) o QAT
  4. 4. “Object-relational mapping (ORM, O/RM, and O/R mapping) in computer software is a programming technique in which a metadata descriptor is used to connect object code to a relational database”. Object code is written in object-oriented programming (OOP) languages such as Java or C#. Gli Oggetti sono GERARCHICI I Database sono RELAZIONALI
  5. 5. “Object-Relational Impedance Mismatch” è un modo elegante di dire che gli Object Models e i Relational Models non lavorano molto bene tra di loro. Gli RDBMSs rappresentano I dati in un “formato tabellare”, mentre I linguaggi di programmazione object-oriented, come Java e C#, rappresentano I dati come “grafi di oggetti” interconnessi tra di loro. Il caricamento e la memorizzazione di grafi di oggetti usando la notazione tabellare dei database relazionali ci espone ad almeno 5 problemi di “disallineamento”
  6. 6. 1) Granularity
  7. 7. Spesso ci troviamo nel caso in cui il nostro Object Model ha (mappa) più classi rispetto al numero corrispondente di tabelle nel database. public class Teacher{ } public class School{ }
  8. 8. 1) Granularity 2) Inheritance
  9. 9. L’ereditarietà è un paradigma “naturale” nei linguaggi di programmazione orientati agli oggetti. Negli RDBMS invece non abbiamo nulla che possa essere paragonato al concetto di ereditarietà. User Inheritance Student Teacher
  10. 10. 1) Granularity 2) Inheritance 3) Identity
  11. 11. Un RDBMS definisce esattamente una ed una sola nozione di «identità» Teacher_id = 2233 Thread 1 Teacher Thread 2 Teacher
  12. 12. 1) Granularity 2) Inheritance 3) Identity 4) Associations
  13. 13. Le associazioni sono rappresentate come un riferimento unidirezionale nei linguaggi orientanti agli oggetti. Infatti se si necessita di una relazione “bidirezionale”, è necessario definire due volte l’associazione. Gli RDBMS invece utilizzano il concetto delle Foreign Keys che è intrinsecamente bi-direzionale. Class user_main { Teacher teacher; } Class Teacher { }
  14. 14. 1) Granularity 2) Inheritance 3) Identity 4) Associations 5) Data Types
  15. 15. Una delle maggiori "differenze" tra i database relazionali e i linguaggi OO risiede nella tipologia dei Tipi utilizzati. Il modello relazionale infatti proibisce in maniera "stretta" attributi (o puntatori) per referenza, al contrario di ciò che fanno invece i linguaggi OO. String Varchar(150) Date DateTime Decimal Money Caso emblematico è caratterizzato dal tipo Stringa. Molti sistemi SQL costringono a definire per le stringhe una lunghezza massima, mentre la maggior parte dei linguaggi OO dimensiona automaticamente le stringhe con la memoria disponibile.
  16. 16. Object Relational Mapping, è una tecnica che consente ai linguaggi di programmazione orientati agli oggetti di lavorare “bene” con i database relazionali. Object world Relational world User Stu Mapping A… B..
  17. 17.  Esistono molti ORMs sul mercato  LLBLGen Pro http://www.llblgen.com/  Nhibernate http://www.hibernate.org/343.html  EntitySpaces http://www.entityspaces.net/Portal/Default.aspx  Open Access http://www.telerik.com/products/orm.aspx  DevForce http://www.ideablade.com/  XPO http://www.devexpress.com/Products/NET/ORM/  Lightspeed http://www.mindscape.co.nz/products/LightSpeed/default .aspx  e molti altri ancora…  Non c’è un “vincitore” assoluto = gli ORM sono di “recente” utilizzo ◦ Nel 2003 erano presenti 31 .NET ORMs. ◦ Oggi ce ne sono alcuni cardine su cui si estendono gli altri….
  18. 18.  Typed Datasets (cough) – rilasciato nel 2002   ObjectSpaces “v1” – MAI rilasciato   ObjectSpaces “v2” – MAI rilasciato   Microsoft Business Framework – MAI rilasciato   WinFS – MAI rilasciato   Entity Framework 1 ◦ LINQ to SQL – rilasciato nel Novembre del 2007   Visual Studio 2008 & .NET Framework 3.5 ◦ LINQ to Entities – rilasciato nell’Agosto del 2008   Visual Studio 2008 SP1 & .NET Framework 3.5 SP1  Entity Framework 4 – rilasciato nel Aprile del 2010  ◦ Visual Studio 2010 & .NET Framework 4.0  Entity Framework 5 RC ◦ Visual Studio 2011 & .NET Framework 4.5 Beta
  19. 19. Demo – Orm … cosa avevate capito?
  20. 20. ◦ Velocità di Sviluppo.  Una su tutte…Elimina la scrittura di codice ripetitivo come il mapping dei campi di una query result sulle proprietà di un oggetto e viceversa. ◦ Supporto OO per l’incapsulamento delle business rules all’interno del proprio DAL (meglio BL ).  Si scrivono (e si debuggano) le regole di business nel linguaggio di preferenza, invece di utilizzare “milioni” di trigger e “miliardi” di stored procedures.
  21. 21. ◦ Rende l’accesso ai dati più astratto e portabile.  Le classi di implementazione dell’ORM conoscono come scrivere vendor-specific SQL, così addio “traduzione”. ◦ Generazione di codice “standard” per le operazioni CRUD (Create, Read, Update, Delete).  Alcuni ORM frameworks ispezionano direttamente I metadata dei database, leggono i metadata mapping files, e generano classi e metodi...
  22. 22.  Database con 300 tabelle… • 1 tabella = 4 operazioni CRUD = 4 Sprocs
  23. 23.  300 tabella = 1200 operazioni CRUD = 1200 Sprocs  Sapete cosa significa? • Fate voi … 
  24. 24.  Svantaggi di un ORM ◦ Bassa capacità di Interrogazione  Genera un wrap di SQL (poco ottimizzabile) ◦ Riduzione del codice SQL  Finché parliamo di CRUD è ok. Ma su query complesse l’SQL è più semplice. ◦ Lazy loading approach  La tecnica è interessante di per sé…  Invece l’esecuzione di SQL addizionale per recuperare le referenze a colonne di tabelle correlate è usualmente poco efficiente.
  25. 25. Agenda della giornata: o ORMs o OR Impedance Mismatch o DAL
  26. 26. “A data access layer (DAL) in computer software, is a layer of a computer program which provides simplified access to data stored in persistent storage of some kind, such as an entity-relational database”
  27. 27.  Cos’è? ◦ E’ un tool (con annesso servizi) per creare un Entity Data Model  EDM funziona su SQL Server, Oracle, DB2… DB Indipendent ◦ E’ un tool (con annesso servizi) per consumare un Entity Data Model ◦ Gestione centralizzata tramite l’Object Context  Perché usarlo? ◦ Aumenta la produttività ◦ Genera mapping complessi tra entità e tabelle del database ◦ Integrato con il Microsoft .NET Technology Stack  Note ◦ E’ “strategico”
  28. 28.  Composto da 3 layers: Entity Data Model ◦ Conceptual (CSDL) ◦ Mapping (MSL) Conceptual ◦ Storage (SSDL)  Database agnostic  Comprende: Mapping ◦ Entità ◦ Associazioni ◦ Funzioni Storage
  29. 29. 20 Minuti…Non ti concediamo di più!
  30. 30.  Abbiamo visto cos’è un ORM con annessi pros e cons.  Abbiamo visto cos’è un DAL e perché un ORM è importante per la generazione dello stesso.  Abbiamo visto EF come strumento di ORM.  Quindi da oggi potete usare un ORM…
  31. 31. Cosa ci riserva il futuro?
  32. 32. (Status : I’m Away… not connected) Domandine...?
  33. 33. ASP.Net C# HTML5 JAVA IPHONE ANDROID JOOMLA WORDPRESS VOIP ADOBE SUITE
  34. 34. La vostra opinione per noi è fondamentale: compilate il modulo di feedback …uhm… potete anche dirmelo a voce o per email! GRAZIE PER L’ATTENZIONE

×