SlideShare a Scribd company logo
1 of 43
Template designed by
What's new in Windows Phone
Matteo Pagani
info@qmatteoq.com - @qmatteoq
http://www.qmatteoq.com
Template designed by
brought to you by
Software Engineer @ Funambol
Microsoft MVP – Windows Phone Development
Nokia Developer Champion
Autore dei libri «Sviluppare applicazioni per Windows Phone 8»
e «Windows Phone 8 Development Succinctly»
Membro della community DotNetLombardia e fondatore di
WPDev Fusion
chi sono
Universal app
Cosa cambia per lo sviluppatore?
• La gestione del layout
• I nuovi controlli XAML
• La navigazione
• La gestione dello storage
Quale percorso?
agenda
Windows Developer Platform in 8.1
| |
Legend
Convergenza delle API
6
Il Windows Runtime (WinRT) è la
piattaforma che consente di condividere il
runtime e le API usate dalle Store app
(telefono e tablet / pc)
Convergenza quasi totale in 8.1
• L’obiettivo è la convergenza al 100% per gli scenari di
sviluppo
• 8.0 aveva circa il 30% di API convergenti
• 8.1 ha più del 90% di API convergenti
• Due applicazioni separate per le due piattaforme
• Un progetto comune, che permette di condividere:
• Codice
• Controlli XAML
• Asset grafici
• Template basato sul meccanismo dei linked files: i file è come
se fossero presenti in entrambi i progetti, ma fisicamente
sono memorizzati in una sola posizione
Welcome Universal Windows app
demo
Universal app
Il layout
La gestione del layout – WP 8.0
1.0x 1.6x 1.5x 2.25x
480x800 480x800 480x853 480x853
La gestione del layout – WP 8.1
7”
6”
5”
4.5”
canvas virtualmente infinito
Limiti superiori di X, Y vengono
calcolati a seconda del
dispositivo utilizzando
• dimensione del display
• risoluzione dello schermo
Funziona sia per i device attuali
che per quelli futuri
Stesso approccio di Windows
8.1
y
La gestione del layout – WP 8.1
12:38
larghezza
altezza
“raw” pixels
12:38
larghezza
altezza
“view” pixels
diviso per il
fattore di
scala
Stessa dimensione, diverse risoluzioni
12:38
540
960 5.5”
12:38
5.5”
720
1280
12:38
5.5”
1080
1920
450
800
“view” pixels
Stessa risoluzione, diverse dimensioni
12:38
4.7”
1080
1920
“view” pixels 368x686
12:38
5.5”
1080
1920
450x800
12:38
6”
1080
1920
491x873
• In alcuni scenari (ad esempio, un gioco) non è possibile
mostrare più contenuto
• Il controllo ViewBox consente di applicare il vecchio approccio
di 8.0
• Il contenuto all’interno del controllo viene semplicemente
scalato
Il controllo ViewBox
demo
Gestire il layout
I controlli
Convergenza dei controlli
80% XAML condiviso 20% personalizzato
Common SignatureOptimized
DatePicker
TimePicker
CommandBar
Button
CheckBox
RadioButton ProgressBar
Slider
ToggleSwitch
Hub
Pivot
ListView
GridView
SysTray
• Il controllo Panorama è stato sostituito dal
controllo Hub
• E’ composto da HubSection per definire le
varie sezioni
• Principale differenza con il controllo
Panorama: le sezioni sono definite da un
DataTemplate
Panorama
<Hub>
<HubSection Header="Prima sezione">
<DataTemplate>
<Image Source="/Assets/small-logo.jpg" />
</DataTemplate>
</HubSection>
<HubSection Header="Seconda sezione">
<DataTemplate>
<StackPanel>
<TextBlock Text="Contenuto della seconda sezione" />
</StackPanel>
</DataTemplate>
</HubSection>
</Hub>
Il controllo Hub
Il controllo ApplicationBar è stato sostituito dal controllo
CommandBar
ApplicationBar
<Page.BottomAppBar>
<CommandBar x:Name="commandBar">
<CommandBar.PrimaryCommands>
<AppBarButton Label="edit" Icon="Edit" />
<AppBarButton Label="favorite" Icon="Favorite" />
<AppBarSeparator />
<AppBarToggleButton Label="play" Icon="Play" />
</CommandBar.PrimaryCommands>
<CommandBar.SecondaryCommands>
<AppBarButton Label="help" Icon="Question" />
</CommandBar.SecondaryCommands>
</CommandBar>
</Page.BottomAppBar>
Il controllo CommandBar
Windows Phone
Windows
• E’ stato sostituito dai controlli GridView e ListView
• Il controllo GridView è ottimizzato per una visualizzazione a
griglia
• Il controllo ListView è ottimizzato per una visualizzazione a
lista
• Entrambi non richiedono più di creare una classe ad hoc per
gestire il raggruppamento
Il controllo LongListSelector
ListView e GridView
Semantic Zoom
<SemanticZoom>
<SemanticZoom.ZoomedInView>
<!-- ListView or GridView -->
<!-- ItemsSource binds to
CollectionViewSource -->
</SemanticZoom.ZoomedInView>
<SemanticZoom.ZoomedOutView>
<!-- ListView or GridView -->
<!-- ItemsSource bound to
CollectionViewSource,
Path=CollectionGroups -->
</SemanticZoom.ZoomedOutView>
</SemanticZoom>
demo
ListView e GridView
E’ stata sostituita dal controllo StatusBar e non può essere
gestito dallo XAML
StatusBar
StatusBar
StatusBar
StatusBar
StatusBar
SystemTray
I flyout sostituiscono i controlli ContextMenu e ListPicker
Flyout
<Button Content="Show Menu Flyout" Margin="20, 20, 100, 20">
<Button.Flyout>
<MenuFlyout>
<MenuFlyoutItem Text="Option 1" />
<MenuFlyoutItem Text="Option 2" />
<MenuFlyoutSeparator />
<ToggleMenuFlyoutItem Text="Toggle Option 1"
IsChecked="True" />
<ToggleMenuFlyoutItem Text="Toggle Option 2" />
</MenuFlyout>
</Button.Flyout>
</Button>
MenuFlyout
<Button>
<Button.Flyout>
<ListPickerFlyout x:Name="ListPickerFlyout"
ItemsSource="{Binding Path=Comics}">
<ListPickerFlyout.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Title}" />
</StackPanel>
</DataTemplate>
</ListPickerFlyout.ItemTemplate>
</ListPickerFlyout>
</Button.Flyout>
</Button
ListPickerFlyout
La navigazione
Il nuovo approccio
Window
Frame
Page
Window
• Si usa il metodo Navigate() della classe Frame
• E’ richiesto il tipo della pagina e non l’url
• Ora è supportato il passaggio di oggetti complessi
private void Comics_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
Comic selectedComic = Comics.SelectedItem as Comic;
Frame.Navigate(typeof (DetailPage), selectedComic);
}
Navigazione tra le pagine
• La classe Frame sostituisce il NavigationService
• BackStack per accedere allo stack delle pagine
• GoBack() per tornare alla pagina precedente
• CanGoBack per sapere se ci sono pagine nello stack
• Di default viene sempre restituita una nuova istanza della
pagina
• E’ possibile controllarlo tramite la proprietà
NavigationCacheMode
Gestione dello stack delle pagine
Gestire lo stato della pagina
NavigationCacheMode.Disabled
NavigationCacheMode.Enabled Required
Page 1 Page 2 Page 3
new new
?
• Nuovo comportamento predefinito per allinearsi a Windows
8: il pulsante Back porta all’applicazione precedente
• Tutti i template di Visual Studio (tranne Blank App)
contengono la classe NavigationHelper che include la logica
per mantenere il comportamento tradizionale
• E’ possibile modificarlo pagina per pagina sottoscrivendosi
all’evento
Windows.Phone.UI.Input.HardwareButtons.BackPressed
Il pulsante Back
Esempio di gestione del pulsante Back
E tanto altro ancora
Attenzione!
• Alcune feature non sono ancora supportate dal Windows
Runtime
• Non esiste un processo di conversione automatico da un
progetto già esistente
• Le librerie e i toolkit per Windows Phone 7.x / 8.0 non sono
compatibili con le Windows Phone Store app
Windows Phone Store app
• Migliori performance e minor consumo di memoria
• Possibilità di condividere la maggior parte del codice con
Windows 8 e, in futuro, Xbox One
• Possibilità di sfruttare tutte le novità introdotte in Windows
Phone 8.1
Ma…
• Molte librerie hanno già una versione compatibile con il
Windows Runtime (Caliburn Micro, MVVM Light, JSON.NET,
ecc.)
• I principali produttori di toolkit sono al lavoro per supportare
le Universal Windows app:
• Telerik -> Beta disponibile su richiesta: universalwindows@telerik.com
• Syncfusion
• Infragistics
Ma…
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
prossimi giorni
Per contattarmi
info@qmatteoq.com
@qmatteoq
Grazie

More Related Content

Viewers also liked

竹山馬拉松
竹山馬拉松竹山馬拉松
竹山馬拉松Nicolas su
 
Trabajo cooperativo nrc 963 b
Trabajo cooperativo nrc 963 bTrabajo cooperativo nrc 963 b
Trabajo cooperativo nrc 963 bedwinvargassilva
 
Informe sobre la ile (alonso camarena núñez)
Informe sobre la ile (alonso camarena núñez)Informe sobre la ile (alonso camarena núñez)
Informe sobre la ile (alonso camarena núñez)alonsocr23
 
Тематические уроки
Тематические урокиТематические уроки
Тематические урокиruster_c
 
Rendicion gastos sindicato (2012)
Rendicion gastos sindicato (2012)Rendicion gastos sindicato (2012)
Rendicion gastos sindicato (2012)sindicato02sci
 
1 5公主歷險記
1 5公主歷險記1 5公主歷險記
1 5公主歷險記anniet_1214
 
Email signature in Gmail,outlook
Email signature in Gmail,outlookEmail signature in Gmail,outlook
Email signature in Gmail,outlookEra Wibowo
 

Viewers also liked (16)

竹山馬拉松
竹山馬拉松竹山馬拉松
竹山馬拉松
 
1 2長大後
1 2長大後1 2長大後
1 2長大後
 
5 5我想變---
5 5我想變---5 5我想變---
5 5我想變---
 
Trabajo cooperativo nrc 963 b
Trabajo cooperativo nrc 963 bTrabajo cooperativo nrc 963 b
Trabajo cooperativo nrc 963 b
 
Informe sobre la ile (alonso camarena núñez)
Informe sobre la ile (alonso camarena núñez)Informe sobre la ile (alonso camarena núñez)
Informe sobre la ile (alonso camarena núñez)
 
Тематические уроки
Тематические урокиТематические уроки
Тематические уроки
 
Rendicion gastos sindicato (2012)
Rendicion gastos sindicato (2012)Rendicion gastos sindicato (2012)
Rendicion gastos sindicato (2012)
 
Valores y misi¢n
Valores y misi¢nValores y misi¢n
Valores y misi¢n
 
Actividad n °5
Actividad n °5Actividad n °5
Actividad n °5
 
Oper equipo computo (1)
Oper equipo computo (1)Oper equipo computo (1)
Oper equipo computo (1)
 
1 5公主歷險記
1 5公主歷險記1 5公主歷險記
1 5公主歷險記
 
Email signature in Gmail,outlook
Email signature in Gmail,outlookEmail signature in Gmail,outlook
Email signature in Gmail,outlook
 
Los chats
Los chats Los chats
Los chats
 
Ciencias del Deporte
Ciencias del DeporteCiencias del Deporte
Ciencias del Deporte
 
Graficos
GraficosGraficos
Graficos
 
Planificación 2014
Planificación 2014Planificación 2014
Planificación 2014
 

Similar to Mob03 what's new in windows phone

Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store appsDotNetCampus
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012Crismer La Pignola
 
Niccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTNiccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTfirenze-gtug
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
Sencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codiceSencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codiceGiuseppe Toto
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoGiuneco S.r.l
 
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNukeMassimo Bonanni
 
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Simone Bussoni
 
Asp.NET MVC Framework
Asp.NET MVC FrameworkAsp.NET MVC Framework
Asp.NET MVC FrameworkDotNetMarche
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angulardotnetcode
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIAdiodorato
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)Giorgio Di Nardo
 
Gefran Gf Project Brochure
Gefran Gf Project BrochureGefran Gf Project Brochure
Gefran Gf Project BrochureMyti S.r.l.
 

Similar to Mob03 what's new in windows phone (20)

Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
Esempi pratici
Esempi praticiEsempi pratici
Esempi pratici
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
 
Powerful asp.net 4 e ie9
Powerful asp.net 4 e ie9Powerful asp.net 4 e ie9
Powerful asp.net 4 e ie9
 
Niccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWTNiccolò Becchi: Introduzione a GWT
Niccolò Becchi: Introduzione a GWT
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
Sencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codiceSencha touch: panoramica e orientamento sul codice
Sencha touch: panoramica e orientamento sul codice
 
DDive11 - xpages
DDive11 - xpagesDDive11 - xpages
DDive11 - xpages
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo Greco
 
Introduzione a DotNetNuke
Introduzione a DotNetNukeIntroduzione a DotNetNuke
Introduzione a DotNetNuke
 
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
 
Asp.NET MVC Framework
Asp.NET MVC FrameworkAsp.NET MVC Framework
Asp.NET MVC Framework
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angular
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIA
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
 
Gefran Gf Project Brochure
Gefran Gf Project BrochureGefran Gf Project Brochure
Gefran Gf Project Brochure
 
Mobile UI Design
Mobile UI DesignMobile UI Design
Mobile UI Design
 

More from DotNetCampus

ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEDotNetCampus
 
MICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTMICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTDotNetCampus
 
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONSDotNetCampus
 
70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#DotNetCampus
 
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DotNetCampus
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015DotNetCampus
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERDotNetCampus
 
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATAPREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATADotNetCampus
 
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDotNetCampus
 
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREFROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREDotNetCampus
 
SHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEWSHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEWDotNetCampus
 
COSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICECOSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICEDotNetCampus
 
SVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDSVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDDotNetCampus
 
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!DotNetCampus
 
WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++DotNetCampus
 
AZURE NOTIFICATION HUB
AZURE NOTIFICATION HUBAZURE NOTIFICATION HUB
AZURE NOTIFICATION HUBDotNetCampus
 
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSSFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSDotNetCampus
 
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTUNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTDotNetCampus
 

More from DotNetCampus (20)

ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
 
MICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOTMICROSOFT E IL MONDO IOT
MICROSOFT E IL MONDO IOT
 
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
 
70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#70-483: PROGRAMMING IN C#
70-483: PROGRAMMING IN C#
 
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVER
 
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATAPREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
 
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
 
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREFROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
 
SHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEWSHAREPOINT 2016 - WHAT'S NEW
SHAREPOINT 2016 - WHAT'S NEW
 
COSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICECOSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICE
 
SVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDSVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BAND
 
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
 
WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++WINDOWS PHONE APPS IN C++
WINDOWS PHONE APPS IN C++
 
AZURE NOTIFICATION HUB
AZURE NOTIFICATION HUBAZURE NOTIFICATION HUB
AZURE NOTIFICATION HUB
 
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSSFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
 
INTRO TO XAMARIN
INTRO TO XAMARININTRO TO XAMARIN
INTRO TO XAMARIN
 
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTUNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
 

Mob03 what's new in windows phone

  • 1. Template designed by What's new in Windows Phone Matteo Pagani info@qmatteoq.com - @qmatteoq http://www.qmatteoq.com Template designed by
  • 3. Software Engineer @ Funambol Microsoft MVP – Windows Phone Development Nokia Developer Champion Autore dei libri «Sviluppare applicazioni per Windows Phone 8» e «Windows Phone 8 Development Succinctly» Membro della community DotNetLombardia e fondatore di WPDev Fusion chi sono
  • 4. Universal app Cosa cambia per lo sviluppatore? • La gestione del layout • I nuovi controlli XAML • La navigazione • La gestione dello storage Quale percorso? agenda
  • 5. Windows Developer Platform in 8.1 | | Legend
  • 6. Convergenza delle API 6 Il Windows Runtime (WinRT) è la piattaforma che consente di condividere il runtime e le API usate dalle Store app (telefono e tablet / pc) Convergenza quasi totale in 8.1 • L’obiettivo è la convergenza al 100% per gli scenari di sviluppo • 8.0 aveva circa il 30% di API convergenti • 8.1 ha più del 90% di API convergenti
  • 7. • Due applicazioni separate per le due piattaforme • Un progetto comune, che permette di condividere: • Codice • Controlli XAML • Asset grafici • Template basato sul meccanismo dei linked files: i file è come se fossero presenti in entrambi i progetti, ma fisicamente sono memorizzati in una sola posizione Welcome Universal Windows app
  • 10. La gestione del layout – WP 8.0 1.0x 1.6x 1.5x 2.25x 480x800 480x800 480x853 480x853
  • 11. La gestione del layout – WP 8.1 7” 6” 5” 4.5” canvas virtualmente infinito Limiti superiori di X, Y vengono calcolati a seconda del dispositivo utilizzando • dimensione del display • risoluzione dello schermo Funziona sia per i device attuali che per quelli futuri Stesso approccio di Windows 8.1 y
  • 12. La gestione del layout – WP 8.1 12:38 larghezza altezza “raw” pixels 12:38 larghezza altezza “view” pixels diviso per il fattore di scala
  • 13. Stessa dimensione, diverse risoluzioni 12:38 540 960 5.5” 12:38 5.5” 720 1280 12:38 5.5” 1080 1920 450 800 “view” pixels
  • 14. Stessa risoluzione, diverse dimensioni 12:38 4.7” 1080 1920 “view” pixels 368x686 12:38 5.5” 1080 1920 450x800 12:38 6” 1080 1920 491x873
  • 15. • In alcuni scenari (ad esempio, un gioco) non è possibile mostrare più contenuto • Il controllo ViewBox consente di applicare il vecchio approccio di 8.0 • Il contenuto all’interno del controllo viene semplicemente scalato Il controllo ViewBox
  • 18. Convergenza dei controlli 80% XAML condiviso 20% personalizzato Common SignatureOptimized DatePicker TimePicker CommandBar Button CheckBox RadioButton ProgressBar Slider ToggleSwitch Hub Pivot ListView GridView SysTray
  • 19. • Il controllo Panorama è stato sostituito dal controllo Hub • E’ composto da HubSection per definire le varie sezioni • Principale differenza con il controllo Panorama: le sezioni sono definite da un DataTemplate Panorama
  • 20. <Hub> <HubSection Header="Prima sezione"> <DataTemplate> <Image Source="/Assets/small-logo.jpg" /> </DataTemplate> </HubSection> <HubSection Header="Seconda sezione"> <DataTemplate> <StackPanel> <TextBlock Text="Contenuto della seconda sezione" /> </StackPanel> </DataTemplate> </HubSection> </Hub> Il controllo Hub
  • 21. Il controllo ApplicationBar è stato sostituito dal controllo CommandBar ApplicationBar <Page.BottomAppBar> <CommandBar x:Name="commandBar"> <CommandBar.PrimaryCommands> <AppBarButton Label="edit" Icon="Edit" /> <AppBarButton Label="favorite" Icon="Favorite" /> <AppBarSeparator /> <AppBarToggleButton Label="play" Icon="Play" /> </CommandBar.PrimaryCommands> <CommandBar.SecondaryCommands> <AppBarButton Label="help" Icon="Question" /> </CommandBar.SecondaryCommands> </CommandBar> </Page.BottomAppBar>
  • 23. • E’ stato sostituito dai controlli GridView e ListView • Il controllo GridView è ottimizzato per una visualizzazione a griglia • Il controllo ListView è ottimizzato per una visualizzazione a lista • Entrambi non richiedono più di creare una classe ad hoc per gestire il raggruppamento Il controllo LongListSelector
  • 25. Semantic Zoom <SemanticZoom> <SemanticZoom.ZoomedInView> <!-- ListView or GridView --> <!-- ItemsSource binds to CollectionViewSource --> </SemanticZoom.ZoomedInView> <SemanticZoom.ZoomedOutView> <!-- ListView or GridView --> <!-- ItemsSource bound to CollectionViewSource, Path=CollectionGroups --> </SemanticZoom.ZoomedOutView> </SemanticZoom>
  • 27. E’ stata sostituita dal controllo StatusBar e non può essere gestito dallo XAML StatusBar StatusBar StatusBar StatusBar StatusBar SystemTray
  • 28. I flyout sostituiscono i controlli ContextMenu e ListPicker Flyout
  • 29. <Button Content="Show Menu Flyout" Margin="20, 20, 100, 20"> <Button.Flyout> <MenuFlyout> <MenuFlyoutItem Text="Option 1" /> <MenuFlyoutItem Text="Option 2" /> <MenuFlyoutSeparator /> <ToggleMenuFlyoutItem Text="Toggle Option 1" IsChecked="True" /> <ToggleMenuFlyoutItem Text="Toggle Option 2" /> </MenuFlyout> </Button.Flyout> </Button> MenuFlyout
  • 30. <Button> <Button.Flyout> <ListPickerFlyout x:Name="ListPickerFlyout" ItemsSource="{Binding Path=Comics}"> <ListPickerFlyout.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding Title}" /> </StackPanel> </DataTemplate> </ListPickerFlyout.ItemTemplate> </ListPickerFlyout> </Button.Flyout> </Button ListPickerFlyout
  • 33. • Si usa il metodo Navigate() della classe Frame • E’ richiesto il tipo della pagina e non l’url • Ora è supportato il passaggio di oggetti complessi private void Comics_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { Comic selectedComic = Comics.SelectedItem as Comic; Frame.Navigate(typeof (DetailPage), selectedComic); } Navigazione tra le pagine
  • 34. • La classe Frame sostituisce il NavigationService • BackStack per accedere allo stack delle pagine • GoBack() per tornare alla pagina precedente • CanGoBack per sapere se ci sono pagine nello stack • Di default viene sempre restituita una nuova istanza della pagina • E’ possibile controllarlo tramite la proprietà NavigationCacheMode Gestione dello stack delle pagine
  • 35. Gestire lo stato della pagina NavigationCacheMode.Disabled NavigationCacheMode.Enabled Required Page 1 Page 2 Page 3 new new ?
  • 36. • Nuovo comportamento predefinito per allinearsi a Windows 8: il pulsante Back porta all’applicazione precedente • Tutti i template di Visual Studio (tranne Blank App) contengono la classe NavigationHelper che include la logica per mantenere il comportamento tradizionale • E’ possibile modificarlo pagina per pagina sottoscrivendosi all’evento Windows.Phone.UI.Input.HardwareButtons.BackPressed Il pulsante Back
  • 37. Esempio di gestione del pulsante Back
  • 38. E tanto altro ancora
  • 40. • Alcune feature non sono ancora supportate dal Windows Runtime • Non esiste un processo di conversione automatico da un progetto già esistente • Le librerie e i toolkit per Windows Phone 7.x / 8.0 non sono compatibili con le Windows Phone Store app Windows Phone Store app
  • 41. • Migliori performance e minor consumo di memoria • Possibilità di condividere la maggior parte del codice con Windows 8 e, in futuro, Xbox One • Possibilità di sfruttare tutte le novità introdotte in Windows Phone 8.1 Ma…
  • 42. • Molte librerie hanno già una versione compatibile con il Windows Runtime (Caliburn Micro, MVVM Light, JSON.NET, ecc.) • I principali produttori di toolkit sono al lavoro per supportare le Universal Windows app: • Telerik -> Beta disponibile su richiesta: universalwindows@telerik.com • Syncfusion • Infragistics Ma…
  • 43. Grazie a tutti per la partecipazione Riceverete il link per il download a slide e demo via email nei prossimi giorni Per contattarmi info@qmatteoq.com @qmatteoq Grazie