Wp7 & SQL Compact      Nicolò Carandini      nicolo.carandini@domusdotnet.org      blogs.ugidotnet.org/Nick60      twitter...
Database locale per Win Phone 7.1    •   Scenari d’uso    •   SQL CE per WP 7.1    •   Isolated Storage    •   O/R Mapping...
Scenari d’uso            Applicazioni che fanno uso di archivi di            media grandezza sui quali occorre poter      ...
SQL CE for WP7 - Intro• Con Windows Phone 7.1 (Mango) la Microsoft propone una  soluzione per la gestione di database loca...
SQL CE for WP7 – LINQ to SQL • Usa una versione ridotta di LinqToSql che non può ne   eseguire direttamente comandi Transa...
SQL CE for WP7 – Isolated storage  • Il database è contenuto nell’Isolated Storage, il che significa    che i dati non pos...
Application Isolated Storage • E’ un’area di archiviazione riservata all’applicazione • E’ identificata dall’Application G...
O/R Mapping Kindergarten• Ad ogni tabella corrisponde una classe, le cui proprietà  rappresentano le colonne della tabella...
O/R Mapping - Code First Il Mapping tra il modello ad oggetti e il database relazionale si dichiara mediante attributi che...
O/R Mapping - Code First (part 2) Per le relazioni si utilizza l’attributo Association:
Planner App – Class diagram
Planner App              Demo
Database Schema Update• In caso di modifiche non distruttive, come ad esempio per  l’aggiunta di una colonna, si può usare...
Best Practices • Usare Skip/Take per   la Data Virtualization   e Large Batch Update • Velocizzare gli   aggiornamenti con...
Best Practices (part 2) • La strategia da adottare per registrare i cambiamenti nel database   cambia di volta in volta, a...
Tools   • ISETool.exe        Command line tool per copiare dall’Isolated Storage al File        System del PC e viceversa:...
Take away•   Per operare col database si usa LINQ to SQL.    LINQ è utilizzato per le queries, T-SQL non è supportato•   I...
Entity Framework Afternoon          Sponsor
Upcoming SlideShare
Loading in...5
×

WP7 SQL Compact local database

1,224
-1

Published on

Una itroduzione all'uso di SQL Compact com database locale per Windows Phone 7

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,224
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

WP7 SQL Compact local database

  1. 1. Wp7 & SQL Compact Nicolò Carandini nicolo.carandini@domusdotnet.org blogs.ugidotnet.org/Nick60 twitter.com/TPCWare
  2. 2. Database locale per Win Phone 7.1 • Scenari d’uso • SQL CE per WP 7.1 • Isolated Storage • O/R Mapping • Planner App Model • Planner App Demo • DB Schema Update • Best Practices • Tools • Take away
  3. 3. Scenari d’uso Applicazioni che fanno uso di archivi di media grandezza sui quali occorre poter fare ricerche complesse e che devono restituire i dati con rapidità ed efficienza, senza occupare notevoli spazi di memoria. Applicazioni che consentono di operare anche in modalità disconnessa su dati ottenuti dalla rete.
  4. 4. SQL CE for WP7 - Intro• Con Windows Phone 7.1 (Mango) la Microsoft propone una soluzione per la gestione di database locale basata sulla versione di SQL Compact per Windows Phone.• E’ incluso nel S.O. quindi non c’è alcuna libreria da aggiungere al progetto e di conseguenza la nostra applicazione non viene «appesantita».
  5. 5. SQL CE for WP7 – LINQ to SQL • Usa una versione ridotta di LinqToSql che non può ne eseguire direttamente comandi Transact-SQL ne utilizzare il linguaggio DDL (Data Definition Language). • Il motivo è semplice: SQL CE per WP7 è ottimizzato per gli scenari d’uso di uno smartphone.
  6. 6. SQL CE for WP7 – Isolated storage • Il database è contenuto nell’Isolated Storage, il che significa che i dati non possono essere scambiati e utilizzati tra applicazioni differenti ma solo localmente all’applicazione che l’ha creato.
  7. 7. Application Isolated Storage • E’ un’area di archiviazione riservata all’applicazione • E’ identificata dall’Application Guid: • Esiste un tool per copiare l’Isolated Storage nell’Hard Disk del PC e viceversa (ISETool):
  8. 8. O/R Mapping Kindergarten• Ad ogni tabella corrisponde una classe, le cui proprietà rappresentano le colonne della tabella.• Le istanze della classe rappresentano le righe della tabella.
  9. 9. O/R Mapping - Code First Il Mapping tra il modello ad oggetti e il database relazionale si dichiara mediante attributi che decorano il codice delle classi:
  10. 10. O/R Mapping - Code First (part 2) Per le relazioni si utilizza l’attributo Association:
  11. 11. Planner App – Class diagram
  12. 12. Planner App Demo
  13. 13. Database Schema Update• In caso di modifiche non distruttive, come ad esempio per l’aggiunta di una colonna, si può usare la classe helper DatabaseSchemaUpdater:
  14. 14. Best Practices • Usare Skip/Take per la Data Virtualization e Large Batch Update • Velocizzare gli aggiornamenti con unaVersion Column • Minimizzare l’uso di memoria con INotifyPropertyChanging
  15. 15. Best Practices (part 2) • La strategia da adottare per registrare i cambiamenti nel database cambia di volta in volta, a seconda dello scenario d’uso. • Per fare la scelta giusta, occorre tener presente i seguenti punti:  Il metodo SubmitChanges è sincrono e mantiene il controllo finché le modifiche non sono registrate nel database.  L’applicazione ha un tempo limitato per salvare le modifiche quando viene chiusa. • In generale, è buona pratica salvare le modifiche al passaggio da una pagina all’altra dell’applicazione, e in ogni caso privilegiando la registrazione dei dati modificati dall’utente. Altre operazioni di sincronizzazione o modifica dei dati, relative ad esempio a dati presenti on the cloud, possono sempre essere ripetute in un secondo momento, perché SQL CE mantiene l’integrità dei dati grazie all’uso delle transazioni.
  16. 16. Tools • ISETool.exe Command line tool per copiare dall’Isolated Storage al File System del PC e viceversa: ts - Take snapshot rs - Restore snapshot xd - target the emulator de - target a device • SQL Server Compact Toolbox (di Erik Ejlskov Jensen) Visual Studio add-in scaricabile dalla Visual Studio Gallery: ErikEJ
  17. 17. Take away• Per operare col database si usa LINQ to SQL. LINQ è utilizzato per le queries, T-SQL non è supportato• Il file del database è contenuto nell’Isolated Storage dell’applicazione• Non è necessario distribuire assemblies che aumentano il peso della nostra applicazione perche con Windows Phone Mango il supporto per il database locale è parte del framework.• Una reference all’assembly System.Data.Linq deve essere aggiunto al progetto• La stringa di connessione ha un formato speciale, del tipo: "Data Source=isostore:/DIRECTORY/FILE.sdf";• In questa versione di Windows Phone 7.1 Mango è preferibile utilizzare la modalità code-first per definire lo schema del database, visto che al momento non c’è un Visual Designer che aiuti nel mappare e configurare le classi necessarie a lavorare col database. In alternativa si può usare il plugin di Erich EJ, che (utilizzando SqlMetal) genera le suddette classi in automatico, a partire da un database SQL CE esistente.• Requisiti minimi: Visual Studio 2010 SP1 e Windows Phone 7.1 Mango Developer Tools
  18. 18. Entity Framework Afternoon Sponsor
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×