Da Windows Phone a Windows 8: andata e ritorno

33
MOBILE DEVELOPER CONFERENCE 24 – 25 MAGGIO 2012 Nome - Twitter Azienda DA WINDOWS PHONE A WINDOWS 8: ANDATA E RITORNO. UN ESEMPIO REALE DI PORTING. Matteo Pagani Microsoft MVP – Windows Phone Development Mail: [email protected] Web: www.qmatteoq.com Twitter: @qmatteoq

Transcript of Da Windows Phone a Windows 8: andata e ritorno

Page 1: Da Windows Phone a Windows 8: andata e ritorno

MOBILE DEVELOPER CONFERENCE 24 – 25 MAGGIO 2012

Nome - TwitterAzienda

DA WINDOWS PHONE A WINDOWS 8: ANDATA E RITORNO. UN ESEMPIO REALE DI PORTING.Matteo PaganiMicrosoft MVP – Windows Phone Development

Mail: [email protected]: www.qmatteoq.comTwitter: @qmatteoq

Page 2: Da Windows Phone a Windows 8: andata e ritorno

Agenda

• Un caso reale: Ricette Toscane• L’architettura• Adattare la UI• Lo storage• I contracts: Search • Le tile multiple

Page 3: Da Windows Phone a Windows 8: andata e ritorno

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

Page 4: Da Windows Phone a Windows 8: andata e ritorno

Da così...

Page 5: Da Windows Phone a Windows 8: andata e ritorno

A così...

Page 6: Da Windows Phone a Windows 8: andata e ritorno

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

Page 7: Da Windows Phone a Windows 8: andata e ritorno

Differenze

• Silverlight (.NET) vs WinRT• Diverse risoluzioni e dimensioni dello

schermo• Diversi stati visivi: filled, snapped,

portrait, ecc.

Page 8: Da Windows Phone a Windows 8: andata e ritorno

Quali soluzioni architetturali?

Page 9: Da Windows Phone a Windows 8: andata e ritorno

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

Page 10: Da Windows Phone a Windows 8: andata e ritorno

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

Page 11: Da Windows Phone a Windows 8: andata e ritorno

View

• E’ la UI dell’applicazione• In Windows Phone è composta dai

file XAML che definiscono il layout• Non contiene logica nel code-behind

Page 12: Da Windows Phone a Windows 8: andata e ritorno

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

Page 13: Da Windows Phone a Windows 8: andata e ritorno

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

Page 14: Da Windows Phone a Windows 8: andata e ritorno

L’INTERFACCIA

Page 15: Da Windows Phone a Windows 8: andata e ritorno

Panorama

• Nasce per mostrare elementi differenti tra di loro

• Utilizzato nel menu principale per accedere alle ricette

Page 16: Da Windows Phone a Windows 8: andata e ritorno

Pivot• Nasce per mostrare

elementi differenti ma legati allo stesso contesto

• Utilizzato per mostrare le varie caratteristiche di una ricetta

Page 17: Da Windows Phone a Windows 8: andata e ritorno

Application Bar• Nasce per dare

accesso alle funzioni più importanti legate al contesto

• Utilizzata per dare accesso alle tile multiple

Page 18: Da Windows Phone a Windows 8: andata e ritorno

GridView e ListView

Page 19: Da Windows Phone a Windows 8: andata e ritorno

Application Bar

Page 20: Da Windows Phone a Windows 8: andata e ritorno

Snapped

Page 21: Da Windows Phone a Windows 8: andata e ritorno

DEMO

Page 22: Da Windows Phone a Windows 8: andata e ritorno

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

Page 23: Da Windows Phone a Windows 8: andata e ritorno

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

Page 24: Da Windows Phone a Windows 8: andata e ritorno

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

Page 25: Da Windows Phone a Windows 8: andata e ritorno

DEMO

Page 26: Da Windows Phone a Windows 8: andata e ritorno

I contratti

• Un modo per fare interagire applicazioni con il sistema operativo o altre applicazioni

• Esempi di contratto: Search, Share, Print, Play To (DNLA)

Page 27: Da Windows Phone a Windows 8: andata e ritorno

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

Page 28: Da Windows Phone a Windows 8: andata e ritorno

DEMO

Page 29: Da Windows Phone a Windows 8: andata e ritorno

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

Page 30: Da Windows Phone a Windows 8: andata e ritorno

DEMO

Page 31: Da Windows Phone a Windows 8: andata e ritorno

Q & A

Page 32: Da Windows Phone a Windows 8: andata e ritorno

Laboratori su Windows 8

• Lab per i testing• Lab per la precertificazione• Contattare Lorenzo Barbieri (

[email protected])

Page 33: Da Windows Phone a Windows 8: andata e ritorno

MOBILE DEVELOPER CONFERENCE 24 – 25 MAGGIO 2012

Nome - TwitterAzienda

GRAZIE!

Matteo PaganiMicrosoft MVP – Windows Phone Development

Mail: [email protected]: www.qmatteoq.comTwitter: @qmatteoq