Wp storage (online) - tiziano cacioppolini
-
Upload
mokapp -
Category
Technology
-
view
85 -
download
4
Transcript of Wp storage (online) - tiziano cacioppolini
Storage in Windows Phone 8
Tiziano Cacioppolini
.Net Developer @
@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à