wp storage (online) - tiziano cacioppolini
TRANSCRIPT
![Page 1: Wp storage (online) - tiziano cacioppolini](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/1.jpg)
![Page 2: Wp storage (online) - tiziano cacioppolini](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/2.jpg)
Storage in Windows Phone 8
Tiziano Cacioppolini
.Net Developer @
@diabloxx83
http://tiziano.cacioppolini.it
![Page 3: Wp storage (online) - tiziano cacioppolini](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/3.jpg)
Agenda
• IsolatedStorage
• Serializzazione
• Database
• I vantaggi per gli sviluppatori
![Page 4: Wp storage (online) - tiziano cacioppolini](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/9.jpg)
Storage
Demo
![Page 10: Wp storage (online) - tiziano cacioppolini](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/13.jpg)
Serializzazione
Demo
![Page 14: Wp storage (online) - tiziano cacioppolini](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/16.jpg)
SQL CE
Demo
![Page 17: Wp storage (online) - tiziano cacioppolini](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/20.jpg)
SQLite
Demo
![Page 21: Wp storage (online) - tiziano cacioppolini](https://reader033.vdocuments.pub/reader033/viewer/2022052909/5598f4541a28ab5e5e8b47bf/html5/thumbnails/21.jpg)
Vantaggi per gli sviluppatori
• Solo 14 euro
• Unificazione degli Store
• DVLUP (www.dvlup.com)
• Promozioni per controlli di terze parti
• Visibilità