wp storage (online) - tiziano cacioppolini

21

Upload: mokapp

Post on 05-Jul-2015

84 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Wp   storage (online) - tiziano cacioppolini
Page 2: Wp   storage (online) - tiziano cacioppolini

Storage in Windows Phone 8

Tiziano Cacioppolini

.Net Developer @

[email protected]

@diabloxx83

http://tiziano.cacioppolini.it

Page 3: Wp   storage (online) - tiziano cacioppolini

Agenda

• IsolatedStorage

• Serializzazione

• Database

• I vantaggi per gli sviluppatori

Page 4: Wp   storage (online) - tiziano cacioppolini

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

Page 5: Wp   storage (online) - tiziano cacioppolini

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

Page 6: Wp   storage (online) - tiziano cacioppolini

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

Page 7: Wp   storage (online) - tiziano cacioppolini

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

Page 8: Wp   storage (online) - tiziano cacioppolini

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

Page 9: Wp   storage (online) - tiziano cacioppolini

Storage

Demo

Page 10: Wp   storage (online) - tiziano cacioppolini

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

Page 11: Wp   storage (online) - tiziano cacioppolini

Serializzazione

• Il framework ha due classi principali:

• DataContractSerializer

• DataContractJsonSerializer

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

http://json.codeplex.com/

Page 12: Wp   storage (online) - tiziano cacioppolini

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

Page 13: Wp   storage (online) - tiziano cacioppolini

Serializzazione

Demo

Page 14: Wp   storage (online) - tiziano cacioppolini

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/

Page 15: Wp   storage (online) - tiziano cacioppolini

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

Page 16: Wp   storage (online) - tiziano cacioppolini

SQL CE

Demo

Page 17: Wp   storage (online) - tiziano cacioppolini

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

Page 18: Wp   storage (online) - tiziano cacioppolini

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/

Page 19: Wp   storage (online) - tiziano cacioppolini

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

Page 20: Wp   storage (online) - tiziano cacioppolini

SQLite

Demo

Page 21: Wp   storage (online) - tiziano cacioppolini

Vantaggi per gli sviluppatori

• Solo 14 euro

• Unificazione degli Store

• DVLUP (www.dvlup.com)

• Promozioni per controlli di terze parti

• Visibilità