32
ACCESSO AI DATI: STORAGE, DATABASE, DATA SHARING Matteo Pagani Nokia Developer Champion Microsoft MVP – Windows Phone Development Software Engineer @ Funambol ITALIAN WEBINAR #6

Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

Embed Size (px)

DESCRIPTION

Anche se una delle peculiarità degli smartphone è la connettività ad Internet, questa non sempre si può dare per scontata: l'utente potrebbe trovarsi in una zona non coperta dal segnale oppure essere all'estero. Per questo motivo è importante imparare ad utilizzare le API messe a disposizione per la memorizzazione locale dei dati. Nel corso del webinar impareremo a lavorare con i file e con le cartelle, a gestire i dati all'interno di un database e a condividerli tramite una delle novità di Microsoft Windows Phone 8, il data sharing. // While smartphones offer internet connectivity, this capability can’t be taken for granted: A user may be located in an area not covered by the signal or may be abroad. For this reason, it is important to learn how to use the APIs made available for local data storage. During this webinar, you’ll learn to work with files and folders, manage the data within a database, and share data using Microsoft Windows Phone 8 APIs.

Citation preview

Page 1: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

ACCESSO AI DATI: STORAGE, DATABASE, DATA SHARING Matteo Pagani

Nokia Developer Champion

Microsoft MVP – Windows Phone Development

Software Engineer @ Funambol

ITALIAN WEBINAR #6

Page 2: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

AGENDA

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

• Salvare e leggere file nello storage • Serializzazione • Database: SQL CE e SQL Lite

Page 3: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

STORAGE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 4: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Le applicazioni Windows Phone possono memorizzare i dati in un’area di memoria chiamata «isolated storage»

• Si comporta come un file system tradizionale, ma è isolato: le altre applicazioni non possono accedervi

• Il limite di spazio utilizzabile coincide con la memoria libera del telefono

• Viene eliminato quando l’applicazione viene disinstallata

STORAGE

10/22/2013 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 5: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• API incluse nel namespace Windows.Storage

• Nuove API del Windows Runtime con approccio asincrono, differenti da quelle di Windows Phone 7

• ApplicationData.LocalFolder rappresenta la root dello storage

• I file sono rappresentati dalla classe StorageFile

• Le cartelle sono rappresentate dalla classe StorageFolder

• Sono allineate con le API di Windows 8, eccetto per:

• RoamingFolder

• TemporaryFolder

STORAGE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 6: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• In alcuni casi, può essere necessario accedere ai file inclusi nel progetto di Visual Studio

• La Build Action dei file deve essere impostata su Content

• La classe Windows.ApplicationModel.Package.Current.InstalledLocation permette di accedere in sola lettura alle risorse del progetto

• I dati sono rappresentati come StorageFolder e StorageFile, analogamente allo storage

IL PROGETTO

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 7: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• La classe IsolatedStorageSettings consente di memorizzare facilmente le impostazioni della nostra applicazioni

• E’ di tipo Dictionary<string, object>: ogni impostazione viene automaticamente serializzata e deserializzata

• Una volta aggiunte / modificate / eliminate le impostazioni occorre sempre chiamare il metodo Save().

• Non allineata con il Windows Runtime: sono le stesse API di Windows Phone 7. Le API del Windows Runtime non sono supportate.

LE IMPOSTAZIONI

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 8: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• L’SDK include un tool per accedere allo storage di un’applicazione, ma a riga di comando

• WP Power Tools è un tool di terze parti per esplorare lo storage delle applicazioni dotato di interfaccia grafica

• Funziona sia con l’emulatore che con i device

• Permette di simulare l’aggiornamento delle applicazioni

• http://wptools.codeplex.com/

WINDOWS PHONE POWER TOOLS

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 9: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

STORAGE Demo

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 10: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

SERIALIZZAZIONE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 11: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Nello sviluppo di un’applicazione si lavora con classi ed oggetti

• Tali oggetti complessi non possono essere memorizzati così come sono nello storage

• Serializzazione = conversione di oggetti complessi in una struttura dati piatta, memorizzabile in un file XML o JSON -> Si applica quando i dati vengono modificati

• Deserializzazione = conversione di dati XML o JSON in oggetti complessi -> Si applica al caricamento dell’applicazione

SERIALIZZAZIONE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 12: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Il framework include due classi per la serializzazione e deserializzazione in formato XML e JSON:

• DataContractSerializer per XML

• DataContractJsonSerializer per JSON

• In caso di utilizzo del formato JSON, è più efficiente affidarsi a JSON.NET: http://json.codeplex.com/

SERIALIZZAZIONE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 13: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Vantaggi

• Semplice da implementare

• Velocità nell’accesso e nella manipolazione dei dati

• Svantaggi

• L’intera struttura dati deve essere mantenuta in memoria

• Nessuna indicizzazione dei dati

• Ad ogni aggiornamento dei dati, occorre salvare l’intera struttura

SERIALIZZAZIONE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 14: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

SERIALIZZAZIONE Demo

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 15: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

DATABASE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 16: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Introdotto a partire da Windows Phone 7.5

• Engine proprietario di Microsoft per la gestione di database disconnessi e memorizzati su singolo file

• Viene utilizzata la versione 3.5 di SQL CE

• LINQ to SQL come ORM per la manipolazione dei dati

• Approccio code first: si definisce la struttura del database da codice:

• Le entità rappresentano le tabelle

• Le proprietà rappresentano le colonne

SQL CE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 17: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Supporta la possibilità di gestire l’aggiornamento dello schema del database

• Supporta indici e relazioni

• Supporta il lazy loading nelle relazioni (i dati della relazione vengono caricati solo quando effettivamente richiesti)

• Non è possibile eseguire query SQL in maniera tradizionale

• Due modalità di accesso:

• Lettura e scrittura (database nello storage)

• Sola lettura (database nel progetto di Visual Studio)

SQL CE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 18: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Tool di terze parti che semplifica la gestione del database SQL CE

• Disponibile sia come add-in di Visual Studio che come applicazione a sé

• Feature principali:

• Generazione automatica delle classi per Windows Phone partendo da un DB già esistente

• Possibilità di includere un database pre popolato nel progetto e copiarlo nello storage

• Editor visuale del database (VS2012 supporta solo SQL CE 4.0)

• http://sqlcetoolbox.codeplex.com

• http://www.microsoft.com/en-us/download/confirmation.aspx?id=5783

SQL CE TOOLBOX

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 19: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Vantaggi:

• E’ il più versatile e completo disponibile su Windows Phone, in termini di potenzialità e semplicità d’uso

• Svantaggi:

• Performance non eccellenti in presenza di grandi quantità di dati

• E’ compatibile solamente con Windows Phone 7 e 8, non è portabile su altre piattaforme

SQL CE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 20: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

SQL CE Demo

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 21: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Introdotto in Windows Phone 8, grazie al supporto al codice nativo del Windows Runtime

• Simile a SQL CE (database disconnesso memorizzato su singolo file), ma open source e multi piattaforma

• Al contrario di SQL CE, non è supportato nativamente dal sistema operativo: sono necessarie librerie esterne, dato che l’engine di SQLite è mantenuto da terze parti

SQLITE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 22: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Estensione per Visual Studio per installare l’engine: http://s.qmatteoq.com/SQLiteWP

• Due librerie disponibili:

• Sqlite-net, che offre un approccio ORM basato su LINQ: http://s.qmatteoq.com/sqlite-net-wp8

• Sqlite wrapper, che supporta solamente l’esecuzione di query SQL: http://s.qmatteoq.com/sqlite-net-wp8

SQLITE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 23: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Vantaggi:

• Performance molto buone

• Engine cross platform

• Lo strato di accesso ai dati è condivisibile con le Windows Store app di Windows 8

• Svantaggi:

• Sqlite-net semplice da usare, ma limitato (no supporto relazioni)

• Sqlite Wrapper potente, ma complesso (solo query SQL)

• Non compatibile con Windows Phone 7, a meno di non utilizzare un porting dell’engine di terze parti

SQLITE

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 24: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

SQLITE Demo

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 25: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

NOKIA WORLD

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 26: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

LUMIA 1320 & LUMIA 1520

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 27: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Tre colonne di tile, rispetto agli altri device

• Lumia 1520: risoluzione 1080p (1080x1920)

• Lumia 1320: risoluzione 720p (720x1280)

• Entrambi hanno un aspect ratio di 16:9, contro i 15:9 delle altre risoluzioni

• Supportata pienamente solo da Windows Phone 8

• A breve update dell’SDK con un nuovo emulatore per testare la nuova risoluzione

LUMIA 1320 & LUMIA 1520

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 28: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

LUMIA 2520

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 29: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Tablet con Windows 8.1 RT

• Display 10.1 da 1080p (1920x1080)

• Processore Quad Core Qualcomm Snapdragon 800 a 2.2 GHz

• Windows Runtime, condiviso in parte con il runtime di Windows Phone

• Nuova opportunità per gli sviluppatori Nokia: porting delle applicazioni Windows Phone su Windows 8 per offrire agli utenti un’esperienza completa

LUMIA 2520

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 30: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Nuovo programma di Nokia per gli sviluppatori iscritti a DVLUP

• Include:

• Iscrizione o rinnovo per lo store di Windows Phone

• BugSense Performance Monitoring Solution

• Telerik Rad Controls

• Infragistics NetAdvantage controls

NOKIA DEVELOPER OFFERS

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 31: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

• Gratuito

• Occorre aver sviluppato e pubblicato almeno 2 applicazioni per qualsiasi piattaforma mobile

• Se siete già iscritti al Nokia Developer Premium program, è richiesto aver pubblicato almeno 1 app successivamente all’iscrizione

• Per continuare a far parte del programma e accedere ai nuovi bonus futuri, è necessario pubblicare o aggiornare un’app entro 6 mesi dall’iscrizione

• http://developer.nokia.com/Developer_Programs/nokia_developer_offers.xhtml

NOKIA DEVELOPER OFFERS

© 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Page 32: Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

10/22/2013 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.

Grazie!

Blog:

http://www.qmatteoq.com

http://wp.qmatteoq.com

Twitter: @qmatteoq

Mail: [email protected]

Materiale su http://sdrv.ms/17VccT8