Wp storage (online) - tiziano cacioppolini

Post on 05-Jul-2015

85 views 4 download

Transcript of Wp storage (online) - tiziano cacioppolini

Storage in Windows Phone 8

Tiziano Cacioppolini

.Net Developer @

tiziano.cacioppolini@gmail.com

@diabloxx83

http://tiziano.cacioppolini.it

Agenda

• IsolatedStorage

• Serializzazione

• Database

• I vantaggi per gli sviluppatori

IsolatedStorage

•Windows Phone memorizza i dati in una parte del file system: IsolatedStorage

• “Isolata”: le altre applicazioni non possono accedervi

• Lo spazio disponibile coincide con quello del dispositivo

• Viene eliminato con la disinstallazione dell’applicazione

• Non viene modificato con gli update dell’applicazione

IsolatedStorage

• ApplicationData contiene i metodi di uso comune

• Utilizza le API di Windows Runtime con approccio asincrono

• API di Windows 8 tranne per RoamingFolder, TemporaryFolder e IsolatedStorageSettings

• StorageFile e StorageFolder sono le classi per file e cartelle

• ApplicationData.LocalFolder è la root dello storage

I file di progetto

• Potremmo aver bisogno di accedere ai file inclusi nel progetto di Visual Studio

• La Build Action dei file deve essere impostata su “Content”

• Package.Current.InstalledLocation è la classe utilizzata per accedere alle risorse del progetto ma in sola lettura

IsolatedStorageSettings

• E’ un Dictionary<string, object> con cui salvare le impostazioni della nostra app

• E’ rimasta la stessa di Windows Phone 7

• Accetta oggetti serializzabili

• Il metodo Save() persiste i dati inseriti, modificati o eliminati. In ogni caso sarà chiamato automaticamente alla chiusura dell’applicazione

Windows Phone Power Tools

• http://wptools.codeplex.com/

•Tool per esplorare lo storage delle applicazioni

• Sia su device sia su emulatore

• Si possono simulare gli update dell’applicazione

Storage

Demo

Serializzazione

• Lavoriamo con oggetti complessi che non possono essere salvati nello storage

• Serializzazione: convertire gli oggetti in una forma semplice memorizzabile in un file XML o JSON

• Deserializzazione: conversione di dati XML o JSON in oggetti complessi

Serializzazione

• Il framework ha due classi principali:

• DataContractSerializer

• DataContractJsonSerializer

• Json.NET è molto più performante ed è open source

http://json.codeplex.com/

Serializzazione

Vantaggi:

• Facilità d’uso

Svantaggi:

• Tutti i dati sono caricati in memoria

• Non c’è indicizzazione

• Ad ogni piccola modifica è necessario salvare l’intera struttura

Serializzazione

Demo

Database: SQL CE

• Database disconnesso su file singolo

• Integrato nel core con l’arrivo di Windows Phone 7.5

• Versione 3.5

• Utilizza LINQ to SQL per manipolare i dati

• Supporta le relazioni

• Code first: la struttura viene definita a codice

• SQL CE TOOLBOX facilità la creazione di strutture complesse http://sqlcetoolbox.codeplex.com/

Database: SQL CE

Vantaggi:

• Offre tante funzionalità con massima semplicità d’uso

• Supporta le relazioni

Svantaggi:

• Le performance sono inversamente proporzionali alla quantità di dati

• Non è compatibile su altre piattaforme

SQL CE

Demo

Database: SQLite

• Database disconnesso su singolo file

• Open source

• Multipiattaforma

• Non è supportato in modo nativo da Windows Phone, quindi necessita di librerie di librerie esterne

Database: SQLite

• Necessità di un’estensione per Visual Studio per il runtime di SQLite

• Esistono due librerie:

• Sqlite-net: è un ORM basato su LINQ

https://github.com/peterhuene/sqlite-net

• Sqlite wrapper: è basato sull’esecuzione di query

http://sqlwinrt.codeplex.com/

Database: SQLite

• Vantaggi:

• Performance

• Cross platform

• Codice condivisibile con le Windows Store apps

• Contro:

• Sqlite-net non supporta le relazioni

• Sqlite wrapper lavora solo con query

• Sqlite wrapper dovete gestire le conversioni dei tipi primitivi

SQLite

Demo

Vantaggi per gli sviluppatori

• Solo 14 euro

• Unificazione degli Store

• DVLUP (www.dvlup.com)

• Promozioni per controlli di terze parti

• Visibilità