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

Preview:

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

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

Nokia Developer Champion

Microsoft MVP – Windows Phone Development

Software Engineer @ Funambol

ITALIAN WEBINAR #6

AGENDA

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

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

STORAGE

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

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

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

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

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

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

STORAGE Demo

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

SERIALIZZAZIONE

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

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

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

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

SERIALIZZAZIONE Demo

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

DATABASE

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

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

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

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

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

SQL CE Demo

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

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

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

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

SQLITE Demo

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

NOKIA WORLD

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

LUMIA 1320 & LUMIA 1520

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

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

LUMIA 2520

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

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

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

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

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: info@qmatteoq.com

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

Recommended