Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing
-
Upload
microsoft-mobile-developer -
Category
Documents
-
view
1.061 -
download
0
description
Transcript of Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing
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: [email protected]
Materiale su http://sdrv.ms/17VccT8