1. DA WINDOWS PHONE A
WINDOWS 8: ANDATA E
RITORNO.
UN ESEMPIO REALE DI
PORTING.
Matteo Pagani
Microsoft MVP – Windows Phone Development
Mail: info@qmatteoq.com
Web: www.qmatteoq.com
Twitter: @qmatteoq
2. Agenda
• Un caso reale: Ricette Toscane
• L’architettura
• Adattare la UI
• Lo storage
• I contracts: Search
• Le tile multiple
3. Un caso reale: Ricette Toscane
• Un’applicazione per Windows Phone
7.5
• Sviluppata con il pattern MVVM
• Supporto alle tile multiple
• Utilizzo di un database locale SQL CE
6. Punti in comune
• Esperienza d’uso simile: sono
applicazioni touch based
• Stesso paradigma di interfaccia
grafica (Metro)
• Architettura e ciclo di vita delle
applicazioni simile
7. Differenze
• Silverlight (.NET) vs WinRT
• Diverse risoluzioni e dimensioni dello
schermo
• Diversi stati visivi: filled, snapped,
portrait, ecc.
9. Il pattern MVVM
• Separazione tra logica e UI
• Testabilità: è più semplice scrivere
unit test
• Manutenibilità: è più facile
identificare i problemi
• Blendability: è più semplice per un
designer lavorare sulla UI
10. Model
• Sono i servizi che si occupano di
recuperare i dati dell’applicazione
• Servizi asincroni che interagiscono
con il database SQL CE
• Espongono le operazioni per
recuperare le ricette
11. View
• E’ la UI dell’applicazione
• In Windows Phone è composta dai
file XAML che definiscono il layout
• Non contiene logica nel code-behind
12. ViewModel
• Funge da punto di incontro tra la
View e il Model
• Elabora i dati ricevuti dal Model e li
adatta per essere presentati dalla
View
13. MVVM Light
• Libreria open source per
l’implementazione del pattern MVVM
• Sviluppata da Laurent Bugnion,
Microsoft MVP
• Disponibile sia per Windows Phone
che per WinRT
22. Lo storage in Windows Phone
• Isolated Storage: ogni applicazione
ha un suo spazio isolato e dedicato
• Utilizzo di un database relazionale
basato su SQL CE
• Interazione con il database tramite
LINQ to SQL
23. Lo storage in Windows 8
• Tre tipologie di storage:
– Local: equiparabile a quello di WP
– Roaming: sincronizzato tramite account
Live
– Temporary: per la cache
• InstalledLocation, per accedere ai file
inclusi nel progetto
24. Lo storage in Windows 8
• Serializzazione con XML / JSON
• SQL Lite con progetti open source
come Callisto
(http://s.qmatteoq.com/SqlLite)
• Cloud e servizi
26. I contratti
• Un modo per fare interagire
applicazioni con il sistema operativo
o altre applicazioni
• Esempi di contratto: Search, Share,
Print, Play To (DNLA)
27. Il search contract
• Evento OnSearchActivated dichiarato
nell’App.xaml.cs
• Punto di accesso dell’applicazione
quando viene attivata una ricerca
• Definizione di una pagina per
mostrare i risultati
• Dichiarazione nel manifest
29. Tile multiple
• Concettualmente identica alla
controparte Windows Phone
• Possibilità di creare tile secondare
con un deep link verso una pagina
specifica con eventuali parametri
• Occorre gestire un ciclo di vita
differente da quello standard