SlideShare uma empresa Scribd logo
1 de 26
Grazie a
Agenda
•   Introduzione
•   Tipi di Push Notification
•   Comunicazioni e Limitazioni
•   Ricevere ed Inviare Push Notification
•   Demo
•   Q&A
Introduzione
• Cosa sono le Push Notification?
  – Un modo per inviare
    periodicamente informazioni alle
    vostre applicazioni anche quando
    non sono attive
Introduzione
• Perché le Push Notification?




Per evitare la    Per preservare    Per migliorare
 pratica del     l’autonomia dei     l’esperienza
   polling          dispositivi    d’uso delle app
Architettura
               Custom Server




                  MPNS
Tipi di Push Notification
• Toast Notification
• Tile Notification
• Raw Notification
Toast Notification
• Composte da
  – Title
  – Content
  – Parameter
Toast Notification
• Funzionalità
  – Possono essere inviate
    immediatamente o con
    un ritardo di 450 o 900
    secondi
  – Possono essere gestite
    anche se l’app è attiva
Toast Notification
• Limiti
  – L’icona non è
    modificabile
  – La quantità di testo tra
    titolo e contenuto
    visualizzabile è pari a
    circa 40 caratteri
Toast Notification
• Messaggio XML
<?xml version="1.0" encoding="utf-8"?>
<wp:Notification xmlns:wp="WPNotification">
   <wp:Toast>
           <wp:Text1>Title</wp:Text1>
           <wp:Text2>Content</wp:Text2>
           <wp:Param>Param</wp:Param>
   </wp:Toast>
</wp:Notification>
Tile Notification
• Composta da
  –   Title
  –   Count (badge)
  –   Backgr. Image
  –   Back Title
  –   Back Content
  –   Back Backgr. Image
Tile Notification
• Funzionalità
  – Possono essere inviate
    immediatamente o con un
    ritardo di 450 o 900
    secondi
  – Possono aggiornare sia la
    tile principale dell’app, sia
    le tile secondarie
Tile Notification
•   Limiti
     – Le immagini devono essere:
             •   risoluzione 173x173
             •   formato JPG o PNG

     – Le immagini possono essere locali (nello XAP)
       o remote
     – Le immagini caricate da remoto devono
       essere:
             •   Massimo 80 KB
             •   Disponibili entro 30 secondi
             •   Su protocollo http e non https
Tile Notification
• Messaggio XML
<?xml version="1.0" encoding="utf-8"?>
<wp:Notification xmlns:wp="WPNotification">
   <wp:Tile>
               <wp:BackgroundImage>image1.jpg</wp:BackgroundImage>
               <wp:Count>1</wp:Count>
               <wp:Title>Title1</wp:Title>
               <wp:BackBackgroundImage>image2.jpg</wp:BackBackgroundI
mage>
               <wp:BackTitle>BackTitle1</wp:BackTitle>
               <wp:BackContent>Content1</wp:BackContent>
   </wp:Tile>
</wp:Notification>
Raw Notification
• Non hanno una struttura
  definita
• Consentono di inviare
  all’app informazioni in
  formato XML
• Sono ricevute dall’app solo
  se è in esecuzione
Raw Notification
• Messaggio XML
<?xml version="1.0" encoding="utf-8"?>
<root>
        <Value1>v1</Value1>
        <Value2>v2</Value2>
</root>
Comunicazioni
• E’ possibile inviare notifiche da un proprio web service
  sia in forma autenticata, che non autenticata
• Se il web service è anonimo non sarà possibile
  generare più di 500 notifiche al giorno per
  sottoscrizione
• Un web service autenticato può anche registrarsi al
  servizio di callback Microsoft che notifica il cambio di
  stato di un device
Limitazioni
• Tecniche
   – Massimo un canale di comunicazione per applicazione
   – Massimo 30 canali di comunicazione per device
   – Massimo 1 KB per l’header e 3 KB per il body
• Certificazione dell’app
   – L’app deve sempre comunicare all’utente che si sta registrando al
     servizio di Push Notification
   – L’app deve sempre fornire all’utente la possibilità di cancellare la
     registrazione dal servizio
Ricevere Push Notification
• Cosa è necessario fare?
    – Registrare l’app alla ricezione di una Push Notification
    – Inviare il Channel Uri ad un vostro server

var pushChannel = HttpNotificationChannel.Find(channelName);
pushChannel = pushChannel ?? new HttpNotificationChannel(channelName);
pushChannel.ChannelUriUpdated += (s,e) => { SendToServer(e.ChannelUri); };
pushChannel.Open();
pushChannel.BindToShellTile(); //Register to receive tile notification
pushChannel.BindToShellToast(); //Register to receive toast notification
Inviare Push Notification
• Cosa è necessario fare?
    – Creare ed eseguire una chiamata HTTP di tipo POST
      verso il channel uri
//Create Request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(device.UrlNotification);
request.Method = "POST";

//Create Message (depends on notification type)
string message = "<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"> ….

//Define request body
AddBodyToRequest(request, message);

//Send request and get response
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Inviare Push Notification
• Push Notification Server Side Helper
  – Libreria opensource che semplifica l’invio dei
    messaggi lato server
  – Incapsula la generazione dei messaggi XML in
    classi
• Disponibile su http://bit.ly/wp7pushlib
Demo

var demo = new PushNotificationDemo()
{
   OnError = ()=> { Says(‘It’s a Windows Error ’); }
,
   OnSuccess = ()=> { BackToSlides(); }
}

demo.Show(); 
Q&A
• Materiale su
     http://www.communitydays.it/
Riferimenti
• Il mio blog
  http://www.vifani.com
• DotNetSide
  http://dotnetside.org
• MSDN
  http://msdn.microsoft.com
Grazie per l’attenzione 

Mais conteúdo relacionado

Semelhante a Push Notification: come rendere vive le app su Windows Phone

Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-maxDotNetCampus
 
Lavorare con tile, badge e notification nelle applicazioni Windows 8
Lavorare con tile, badge e notification nelle applicazioni Windows 8Lavorare con tile, badge e notification nelle applicazioni Windows 8
Lavorare con tile, badge e notification nelle applicazioni Windows 8Antonio Pelleriti
 
Push Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentPush Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentDomusDotNet
 
Mulesoft milano meetup #5 florence consulting
Mulesoft milano meetup #5 florence consultingMulesoft milano meetup #5 florence consulting
Mulesoft milano meetup #5 florence consultingFlorence Consulting
 
Advanced Push Notification Service
Advanced Push Notification ServiceAdvanced Push Notification Service
Advanced Push Notification ServiceMichele Locuratolo
 
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaNotifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaGiuneco S.r.l
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana Crouzet
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Andrea Tosato
 
Transmission Error Detector per Wi-Fi su kernel Linux 4.0
Transmission Error Detector per Wi-Fi su kernel Linux 4.0Transmission Error Detector per Wi-Fi su kernel Linux 4.0
Transmission Error Detector per Wi-Fi su kernel Linux 4.0Gabriele Di Bernardo
 
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012Fabio Grasso
 
Piattaforma Accelerated Antivirus Da Freescale & Kaspersky
Piattaforma Accelerated Antivirus Da Freescale & KasperskyPiattaforma Accelerated Antivirus Da Freescale & Kaspersky
Piattaforma Accelerated Antivirus Da Freescale & KasperskyIonela
 
Piattaforma Accelerated Antivirus Da Freescale & Kaspersky
Piattaforma Accelerated Antivirus Da Freescale & KasperskyPiattaforma Accelerated Antivirus Da Freescale & Kaspersky
Piattaforma Accelerated Antivirus Da Freescale & KasperskyIonela
 
Creare una Intranet con Wordpress
Creare una Intranet con WordpressCreare una Intranet con Wordpress
Creare una Intranet con WordpressPartecipant
 

Semelhante a Push Notification: come rendere vive le app su Windows Phone (20)

Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
 
Lavorare con tile, badge e notification nelle applicazioni Windows 8
Lavorare con tile, badge e notification nelle applicazioni Windows 8Lavorare con tile, badge e notification nelle applicazioni Windows 8
Lavorare con tile, badge e notification nelle applicazioni Windows 8
 
Push Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentPush Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background Agent
 
Mulesoft milano meetup #5 florence consulting
Mulesoft milano meetup #5 florence consultingMulesoft milano meetup #5 florence consulting
Mulesoft milano meetup #5 florence consulting
 
Advanced Push Notification Service
Advanced Push Notification ServiceAdvanced Push Notification Service
Advanced Push Notification Service
 
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaNotifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
04a hupac
04a hupac04a hupac
04a hupac
 
Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana Crouzet Automation - em4 Ethernet opuscolo, versione italiana
Crouzet Automation - em4 Ethernet opuscolo, versione italiana
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018
 
Transmission Error Detector per Wi-Fi su kernel Linux 4.0
Transmission Error Detector per Wi-Fi su kernel Linux 4.0Transmission Error Detector per Wi-Fi su kernel Linux 4.0
Transmission Error Detector per Wi-Fi su kernel Linux 4.0
 
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
Monitorare Lotus Domino con Nagios e Centreon - Dominopoint Days 2012
 
Fmdp Total System Monitor
Fmdp Total System MonitorFmdp Total System Monitor
Fmdp Total System Monitor
 
Piattaforma Accelerated Antivirus Da Freescale & Kaspersky
Piattaforma Accelerated Antivirus Da Freescale & KasperskyPiattaforma Accelerated Antivirus Da Freescale & Kaspersky
Piattaforma Accelerated Antivirus Da Freescale & Kaspersky
 
Piattaforma Accelerated Antivirus Da Freescale & Kaspersky
Piattaforma Accelerated Antivirus Da Freescale & KasperskyPiattaforma Accelerated Antivirus Da Freescale & Kaspersky
Piattaforma Accelerated Antivirus Da Freescale & Kaspersky
 
Creare una Intranet con Wordpress
Creare una Intranet con WordpressCreare una Intranet con Wordpress
Creare una Intranet con Wordpress
 
TYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novitaTYPO3 CMS 7.6 - Le novita
TYPO3 CMS 7.6 - Le novita
 
The Missing Link
The Missing LinkThe Missing Link
The Missing Link
 
AAI
AAI AAI
AAI
 

Mais de Raffaele Fanizzi

Introduction to iOS development with Xamarin
Introduction to iOS development with XamarinIntroduction to iOS development with Xamarin
Introduction to iOS development with XamarinRaffaele Fanizzi
 
Web Development with Visual Studio 2012
Web Development with Visual Studio 2012Web Development with Visual Studio 2012
Web Development with Visual Studio 2012Raffaele Fanizzi
 
Async Development con Visual Studio 2012
Async Development con Visual Studio 2012Async Development con Visual Studio 2012
Async Development con Visual Studio 2012Raffaele Fanizzi
 
ADO.NET Entity Framework 4
ADO.NET Entity Framework 4ADO.NET Entity Framework 4
ADO.NET Entity Framework 4Raffaele Fanizzi
 

Mais de Raffaele Fanizzi (8)

Introduction to iOS development with Xamarin
Introduction to iOS development with XamarinIntroduction to iOS development with Xamarin
Introduction to iOS development with Xamarin
 
Mobile development .net
Mobile development .netMobile development .net
Mobile development .net
 
Web Development with Visual Studio 2012
Web Development with Visual Studio 2012Web Development with Visual Studio 2012
Web Development with Visual Studio 2012
 
Async Development con Visual Studio 2012
Async Development con Visual Studio 2012Async Development con Visual Studio 2012
Async Development con Visual Studio 2012
 
HTML5
HTML5HTML5
HTML5
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
 
ADO.NET Entity Framework 4
ADO.NET Entity Framework 4ADO.NET Entity Framework 4
ADO.NET Entity Framework 4
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 

Push Notification: come rendere vive le app su Windows Phone

  • 1.
  • 3. Agenda • Introduzione • Tipi di Push Notification • Comunicazioni e Limitazioni • Ricevere ed Inviare Push Notification • Demo • Q&A
  • 4. Introduzione • Cosa sono le Push Notification? – Un modo per inviare periodicamente informazioni alle vostre applicazioni anche quando non sono attive
  • 5. Introduzione • Perché le Push Notification? Per evitare la Per preservare Per migliorare pratica del l’autonomia dei l’esperienza polling dispositivi d’uso delle app
  • 6. Architettura Custom Server MPNS
  • 7. Tipi di Push Notification • Toast Notification • Tile Notification • Raw Notification
  • 8. Toast Notification • Composte da – Title – Content – Parameter
  • 9. Toast Notification • Funzionalità – Possono essere inviate immediatamente o con un ritardo di 450 o 900 secondi – Possono essere gestite anche se l’app è attiva
  • 10. Toast Notification • Limiti – L’icona non è modificabile – La quantità di testo tra titolo e contenuto visualizzabile è pari a circa 40 caratteri
  • 11. Toast Notification • Messaggio XML <?xml version="1.0" encoding="utf-8"?> <wp:Notification xmlns:wp="WPNotification"> <wp:Toast> <wp:Text1>Title</wp:Text1> <wp:Text2>Content</wp:Text2> <wp:Param>Param</wp:Param> </wp:Toast> </wp:Notification>
  • 12. Tile Notification • Composta da – Title – Count (badge) – Backgr. Image – Back Title – Back Content – Back Backgr. Image
  • 13. Tile Notification • Funzionalità – Possono essere inviate immediatamente o con un ritardo di 450 o 900 secondi – Possono aggiornare sia la tile principale dell’app, sia le tile secondarie
  • 14. Tile Notification • Limiti – Le immagini devono essere: • risoluzione 173x173 • formato JPG o PNG – Le immagini possono essere locali (nello XAP) o remote – Le immagini caricate da remoto devono essere: • Massimo 80 KB • Disponibili entro 30 secondi • Su protocollo http e non https
  • 15. Tile Notification • Messaggio XML <?xml version="1.0" encoding="utf-8"?> <wp:Notification xmlns:wp="WPNotification"> <wp:Tile> <wp:BackgroundImage>image1.jpg</wp:BackgroundImage> <wp:Count>1</wp:Count> <wp:Title>Title1</wp:Title> <wp:BackBackgroundImage>image2.jpg</wp:BackBackgroundI mage> <wp:BackTitle>BackTitle1</wp:BackTitle> <wp:BackContent>Content1</wp:BackContent> </wp:Tile> </wp:Notification>
  • 16. Raw Notification • Non hanno una struttura definita • Consentono di inviare all’app informazioni in formato XML • Sono ricevute dall’app solo se è in esecuzione
  • 17. Raw Notification • Messaggio XML <?xml version="1.0" encoding="utf-8"?> <root> <Value1>v1</Value1> <Value2>v2</Value2> </root>
  • 18. Comunicazioni • E’ possibile inviare notifiche da un proprio web service sia in forma autenticata, che non autenticata • Se il web service è anonimo non sarà possibile generare più di 500 notifiche al giorno per sottoscrizione • Un web service autenticato può anche registrarsi al servizio di callback Microsoft che notifica il cambio di stato di un device
  • 19. Limitazioni • Tecniche – Massimo un canale di comunicazione per applicazione – Massimo 30 canali di comunicazione per device – Massimo 1 KB per l’header e 3 KB per il body • Certificazione dell’app – L’app deve sempre comunicare all’utente che si sta registrando al servizio di Push Notification – L’app deve sempre fornire all’utente la possibilità di cancellare la registrazione dal servizio
  • 20. Ricevere Push Notification • Cosa è necessario fare? – Registrare l’app alla ricezione di una Push Notification – Inviare il Channel Uri ad un vostro server var pushChannel = HttpNotificationChannel.Find(channelName); pushChannel = pushChannel ?? new HttpNotificationChannel(channelName); pushChannel.ChannelUriUpdated += (s,e) => { SendToServer(e.ChannelUri); }; pushChannel.Open(); pushChannel.BindToShellTile(); //Register to receive tile notification pushChannel.BindToShellToast(); //Register to receive toast notification
  • 21. Inviare Push Notification • Cosa è necessario fare? – Creare ed eseguire una chiamata HTTP di tipo POST verso il channel uri //Create Request HttpWebRequest request = (HttpWebRequest)WebRequest.Create(device.UrlNotification); request.Method = "POST"; //Create Message (depends on notification type) string message = "<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"> …. //Define request body AddBodyToRequest(request, message); //Send request and get response HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  • 22. Inviare Push Notification • Push Notification Server Side Helper – Libreria opensource che semplifica l’invio dei messaggi lato server – Incapsula la generazione dei messaggi XML in classi • Disponibile su http://bit.ly/wp7pushlib
  • 23. Demo var demo = new PushNotificationDemo() { OnError = ()=> { Says(‘It’s a Windows Error ’); } , OnSuccess = ()=> { BackToSlides(); } } demo.Show(); 
  • 24. Q&A • Materiale su http://www.communitydays.it/
  • 25. Riferimenti • Il mio blog http://www.vifani.com • DotNetSide http://dotnetside.org • MSDN http://msdn.microsoft.com

Notas do Editor

  1. Inserite l’eventuale vostro logo in basso a destra
  2. Slide da mostrare prima di iniziare la sessione – non rimuovere!
  3. Ultima slide, obbligatoria
  4. Ultima slide, obbligatoria