SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
ITALIAN WEBINAR #6

ACCESSO AI DATI:
STORAGE, DATABASE,
DATA SHARING
Matteo Pagani
Nokia Developer Champion
Microsoft MVP – Windows Phone Development
Software Engineer @ Funambol
AGENDA
• Salvare e leggere file nello storage
• Serializzazione
• Database: SQL CE e SQL Lite

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
STORAGE
© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
STORAGE
•
•
•
•

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

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.

10/22/2013
STORAGE
•
•
•

•
•
•

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
© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
IL PROGETTO
•
•

•
•

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

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
LE IMPOSTAZIONI
•
•
•
•

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.
© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
WINDOWS PHONE POWER TOOLS
•
•
•
•
•

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/

© 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.
SERIALIZZAZIONE
•
•

•

•

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
© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SERIALIZZAZIONE
•

•

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/

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SERIALIZZAZIONE
•

•

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

© 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.
SQL CE
•
•

•
•
•

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
© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SQL CE
•
•
•
•
•

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)
© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SQL CE TOOLBOX
•
•
•

•

•

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
© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SQL CE
•

•

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

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SQL CE
Demo

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SQLITE
•
•
•

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

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SQLITE
•
•

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

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
SQLITE
•

•

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
© 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.
LUMIA 1320 & LUMIA 1520
•
•
•
•
•
•

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

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
LUMIA 2520

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
LUMIA 2520
•
•
•
•
•

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

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
NOKIA DEVELOPER OFFERS
•
•

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

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
NOKIA DEVELOPER OFFERS
•
•

•
•
•

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
© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.
Grazie!
Blog:
http://www.qmatteoq.com
http://wp.qmatteoq.com
Twitter: @qmatteoq
Mail: info@qmatteoq.com
Materiale su http://sdrv.ms/17VccT8

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.

10/22/2013

Contenu connexe

Similaire à Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoMicrosoft Mobile Developer
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld DevicesGWTcon
 
Da Windows Phone a Windows 8: andata e ritorno
Da Windows Phone a Windows 8: andata e ritornoDa Windows Phone a Windows 8: andata e ritorno
Da Windows Phone a Windows 8: andata e ritornoMatteo Pagani
 
Docker Workshop - Coretech Summit 2018
Docker Workshop - Coretech Summit 2018Docker Workshop - Coretech Summit 2018
Docker Workshop - Coretech Summit 2018Yefry Figueroa
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Enterprise Mobility: Challenge or opportunity
Enterprise Mobility: Challenge or opportunityEnterprise Mobility: Challenge or opportunity
Enterprise Mobility: Challenge or opportunityfestival ICT 2016
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Romualdo Gobbo
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoWireless
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 
MobileDevCamp2012 - Android
MobileDevCamp2012 - AndroidMobileDevCamp2012 - Android
MobileDevCamp2012 - Androidmobiledevcamp
 
Androidsdk appinventor
Androidsdk appinventorAndroidsdk appinventor
Androidsdk appinventorfdizazzo
 
Alibabyte presentazione seminario - parte II
Alibabyte   presentazione seminario - parte IIAlibabyte   presentazione seminario - parte II
Alibabyte presentazione seminario - parte IIalibabyte
 

Similaire à Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing (20)

Il pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progettoIl pattern mvvm come strutturare al meglio il vostro progetto
Il pattern mvvm come strutturare al meglio il vostro progetto
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
Da Windows Phone a Windows 8: andata e ritorno
Da Windows Phone a Windows 8: andata e ritornoDa Windows Phone a Windows 8: andata e ritorno
Da Windows Phone a Windows 8: andata e ritorno
 
Docker Workshop - Coretech Summit 2018
Docker Workshop - Coretech Summit 2018Docker Workshop - Coretech Summit 2018
Docker Workshop - Coretech Summit 2018
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Android
AndroidAndroid
Android
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
Enterprise Mobility: Challenge or opportunity
Enterprise Mobility: Challenge or opportunityEnterprise Mobility: Challenge or opportunity
Enterprise Mobility: Challenge or opportunity
 
Soluzioni server microsoft
Soluzioni server   microsoftSoluzioni server   microsoft
Soluzioni server microsoft
 
Introduzione A Docker
Introduzione A DockerIntroduzione A Docker
Introduzione A Docker
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobili
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
MobileDevCamp2012 - Android
MobileDevCamp2012 - AndroidMobileDevCamp2012 - Android
MobileDevCamp2012 - Android
 
Androidsdk appinventor
Androidsdk appinventorAndroidsdk appinventor
Androidsdk appinventor
 
Mobile e Smart Client
Mobile e Smart ClientMobile e Smart Client
Mobile e Smart Client
 
Alibabyte presentazione seminario - parte II
Alibabyte   presentazione seminario - parte IIAlibabyte   presentazione seminario - parte II
Alibabyte presentazione seminario - parte II
 
Dominopoint meet the experts 2015 - XPages
Dominopoint   meet the experts 2015 - XPagesDominopoint   meet the experts 2015 - XPages
Dominopoint meet the experts 2015 - XPages
 

Plus de Microsoft Mobile Developer

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsMicrosoft Mobile Developer
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagMicrosoft Mobile Developer
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsMicrosoft Mobile Developer
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appMicrosoft Mobile Developer
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeMicrosoft Mobile Developer
 
Lens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraLens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraMicrosoft Mobile Developer
 

Plus de Microsoft Mobile Developer (20)

Intro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and toolsIntro to Nokia X software platform 2.0 and tools
Intro to Nokia X software platform 2.0 and tools
 
Lumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK betaLumia App Labs: Lumia SensorCore SDK beta
Lumia App Labs: Lumia SensorCore SDK beta
 
Nokia Asha from idea to app - Imaging
Nokia Asha from idea to app - ImagingNokia Asha from idea to app - Imaging
Nokia Asha from idea to app - Imaging
 
Healthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia AshaHealthcare apps for Nokia X and Nokia Asha
Healthcare apps for Nokia X and Nokia Asha
 
Push notifications on Nokia X
Push notifications on Nokia XPush notifications on Nokia X
Push notifications on Nokia X
 
DIY Nokia Asha app usability studies
DIY Nokia Asha app usability studiesDIY Nokia Asha app usability studies
DIY Nokia Asha app usability studies
 
Lessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviewsLessons learned from Nokia X UI reviews
Lessons learned from Nokia X UI reviews
 
Location based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tagLocation based services for Nokia X and Nokia Asha using Geo2tag
Location based services for Nokia X and Nokia Asha using Geo2tag
 
HERE Maps for the Nokia X platform
HERE Maps for the Nokia X platformHERE Maps for the Nokia X platform
HERE Maps for the Nokia X platform
 
Nokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerationsNokia In-App Payment - UX considerations
Nokia In-App Payment - UX considerations
 
Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)Introduction to Nokia Asha SDK 1.2 (beta)
Introduction to Nokia Asha SDK 1.2 (beta)
 
UX considerations when porting to Nokia X
UX considerations when porting to Nokia XUX considerations when porting to Nokia X
UX considerations when porting to Nokia X
 
Kids' games and educational app design
Kids' games and educational app designKids' games and educational app design
Kids' games and educational app design
 
Nokia X: opportunities for developers
Nokia X: opportunities for developersNokia X: opportunities for developers
Nokia X: opportunities for developers
 
Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1Lumia App Labs: Nokia Imaging SDK 1.1
Lumia App Labs: Nokia Imaging SDK 1.1
 
Intro to Nokia X software platform and tools
Intro to Nokia X software platform and toolsIntro to Nokia X software platform and tools
Intro to Nokia X software platform and tools
 
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultationsLumia App Labs: Lessons learned from 50 windows phone 8 design consultations
Lumia App Labs: Lessons learned from 50 windows phone 8 design consultations
 
Windows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra appWindows Phone 8 speech: parliamo con la nostra app
Windows Phone 8 speech: parliamo con la nostra app
 
La pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo storeLa pubblicazione di un'applicazione sullo store
La pubblicazione di un'applicazione sullo store
 
Lens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocameraLens app trasformare il telefono in una fotocamera
Lens app trasformare il telefono in una fotocamera
 

Accesso ai Dati in Windows Phone: Isolated Storage, Database e Data Sharing

  • 1. ITALIAN WEBINAR #6 ACCESSO AI DATI: STORAGE, DATABASE, DATA SHARING Matteo Pagani Nokia Developer Champion Microsoft MVP – Windows Phone Development Software Engineer @ Funambol
  • 2. AGENDA • Salvare e leggere file nello storage • Serializzazione • Database: SQL CE e SQL Lite © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 3. STORAGE © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 4. STORAGE • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved. 10/22/2013
  • 5. STORAGE • • • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 6. IL PROGETTO • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 7. LE IMPOSTAZIONI • • • • 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. © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 8. WINDOWS PHONE POWER TOOLS • • • • • 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/ © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 9. STORAGE Demo © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 10. SERIALIZZAZIONE © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 11. SERIALIZZAZIONE • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 12. SERIALIZZAZIONE • • 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/ © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 13. SERIALIZZAZIONE • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 14. SERIALIZZAZIONE Demo © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 15. DATABASE © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 16. SQL CE • • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 17. SQL CE • • • • • 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) © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 18. SQL CE TOOLBOX • • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 19. SQL CE • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 20. SQL CE Demo © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 21. SQLITE • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 22. SQLITE • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 23. SQLITE • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 24. SQLITE Demo © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 25. NOKIA WORLD © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 26. LUMIA 1320 & LUMIA 1520 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 27. LUMIA 1320 & LUMIA 1520 • • • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 28. LUMIA 2520 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 29. LUMIA 2520 • • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 30. NOKIA DEVELOPER OFFERS • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 31. NOKIA DEVELOPER OFFERS • • • • • 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 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved.
  • 32. Grazie! Blog: http://www.qmatteoq.com http://wp.qmatteoq.com Twitter: @qmatteoq Mail: info@qmatteoq.com Materiale su http://sdrv.ms/17VccT8 © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved. 10/22/2013