• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
ORM - Introduzione
 

ORM - Introduzione

on

  • 962 views

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. ...

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.

Statistics

Views

Total Views
962
Views on SlideShare
960
Embed Views
2

Actions

Likes
1
Downloads
0
Comments
0

2 Embeds 2

https://si0.twimg.com 1
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    ORM - Introduzione ORM - Introduzione Presentation Transcript

    • Alessandro Forte SW Architect @ T&C Group MCP – MCTShttp://www.alessandroforte.it/blog info@alessandroforte.it
    • Alessandro Forte Software Architect @ T&C Group DotNetCampan ia Founder ContattiWebSite: 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
    • Agenda della giornata:o ORMs o OR Impedance Mismatcho DALo Entity Framework o DEMO (Creiamo un EDM) o DEMO (Consumiamo un EDM)o QAT
    • “Object-relational mapping (ORM, O/RM, and O/R mapping) incomputer software is a programming technique in which a metadatadescriptor is used to connect object code to a relational database”.Object code is written in object-oriented programming (OOP) languagessuch as Java or C#.Gli Oggetti sono GERARCHICI I Database sono RELAZIONALI
    • “Object-Relational Impedance Mismatch” è un modo elegante di dire chegli Object Models e i Relational Models non lavorano molto bene tra diloro.Gli RDBMSs rappresentano I dati in un “formato tabellare”, mentre Ilinguaggi 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 lanotazione tabellare dei database relazionali ci espone ad almeno 5problemi di “disallineamento”
    • 1) Granularity
    • 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{ }
    • 1) Granularity2) Inheritance
    • L’ereditarietà è un paradigma “naturale” nei linguaggi di programmazioneorientati agli oggetti.Negli RDBMS invece non abbiamo nulla che possa essere paragonato alconcetto di ereditarietà. User Inheritance Student Teacher
    • 1) Granularity2) Inheritance3) Identity
    • Un RDBMS definisce esattamente una ed una sola nozione di «identità» Teacher_id = 2233 Thread 1 Teacher Thread 2 Teacher
    • 1) Granularity2) Inheritance3) Identity4) Associations
    • Le associazioni sono rappresentate come un riferimento unidirezionale neilinguaggi 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 { }
    • 1) Granularity2) Inheritance3) Identity4) Associations5) Data Types
    • Una delle maggiori "differenze" tra i database relazionali e i linguaggi OO risiede nellatipologia dei Tipi utilizzati.Il modello relazionale infatti proibisce in maniera "stretta" attributi (o puntatori) perreferenza, al contrario di ciò che fanno invece i linguaggi OO. String Varchar(150) Date DateTime Decimal MoneyCaso 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 stringhecon la memoria disponibile.
    • Object Relational Mapping, è una tecnica checonsente ai linguaggi di programmazione orientati aglioggetti di lavorare “bene” con i database relazionali. Object world Relational world User Stu Mapping A… B..
    •  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….
    •  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
    • Demo – Orm … cosa avevate capito?
    • ◦ 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.
    • ◦ 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...
    •  Database con 300 tabelle…• 1 tabella = 4 operazioni CRUD = 4 Sprocs
    •  300 tabella = 1200 operazioni CRUD = 1200 Sprocs Sapete cosa significa? • Fate voi … 
    •  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.
    • Agenda della giornata:o ORMs o OR Impedance Mismatcho DAL
    • “A data access layer (DAL) incomputer software, is a layerof a computer program whichprovides simplified accessto data stored in persistentstorage of some kind, such asan entity-relational database”
    •  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”
    •  Composto da 3 layers: Entity Data Model ◦ Conceptual (CSDL) ◦ Mapping (MSL) Conceptual ◦ Storage (SSDL) Database agnostic Comprende: Mapping ◦ Entità ◦ Associazioni ◦ Funzioni Storage
    • 20 Minuti…Non ti concediamo di più!
    •  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…
    • Cosa ci riserva il futuro?
    • (Status : I’m Away… not connected) Domandine...?
    • ASP.Net C# HTML5 JAVA IPHONE ANDROID JOOMLAWORDPRESS VOIPADOBE SUITE
    • La vostra opinione per noi è fondamentale: compilate il modulo di feedback …uhm… potete anche dirmelo a voce o per email! GRAZIE PER L’ATTENZIONE