SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Template designed by
BING e Windows Store App
Massimo Bonanni
massimo.bonanni@tiscali.it
@massimobonanni
codetailor.blogspot.com
Template designed by
Template designed by
brought to you by
Template designed by
Mi occupo di progettazione e sviluppo applicazioni con
tecnologie Microsoft da sempre.
Fondatore e presidente della community DomusDotNet
(www.domusdotnet.org)
Microsoft Certified Professional
Microsoft MVP dal 2011 nella categoria VB.NET
Ambassador Intel per Perceptual Computing
chi sono
Template designed by
BING Developer Center e i servizi offerti da BING
Speech Recognition
App Linking
Recap
agenda
Template designed by
http://www.bing.com/dev
BING Developer Center
Template designed by
Le funzionalità di Speech Recognition offerte dalla piattaforma BING sono disponibili sia
per Windows 8 che per Windows 8.1.
L’indirizzo di riferimento è :
http://www.bing.com/dev/en-us/speech
Per utilizzare le funzionalità di Speech
Recognitionè necessario:
1. Sottoscrivere un “abbonamento” al servizio
BING
2. Utilizzare le API contenute negli assembly
forniti da BING
BING Speech Recognition
Template designed by
Per poter utilizzare le API client di Speech Recognition è necessario
sottoscrivere un abbonamento all’indirizzo:
https://datamarket.azure.com/dataset/bing/speechcontrol
Attualmente è disponibile un
abbonamento gratuito con 500.000
transazioni (cioè operazioni di
riconoscimento vocale con il server)
per mese.
Non è disponibile per i live id italiani.
Il servizio BING
Template designed by
Per utilizzare i servizi BING sono necessari i parametri ClientID e SecretClient
per l'autenticazione.
Per ottenere questi parametri è sufficiente registrare la nostra App nel portale:
https://datamarket.azure.com/developer/applications
ClientID e SecretClient
Template designed by
Il controllo XAML per Windows 8.x è disponibile nella Visual
Studio Gallery all’indirizzo
http://visualstudiogallery.msdn.microsoft.com/521cf616-
a9a8-4d99-b5d9-92b539d9df82
Non è disponibile all’interno della
funzionalità “Extensions and Updates…”
di Visual Studio 2013 per il solo fatto di
essere marcato per Visual Studio 2012
pur essendo per Windows 8.1 
BING Speech Recognition Control
Template designed by
Per utilizzare le API è necessario:
• Referenziare la dll Bing.Speech (la quale referenzia, a sua volta, l’assembly
“Microsoft Visual C++ 2013 Runtime Package”);
• Modificare il file di manifest per
abilitare le capability “Internet Client”
e “Microphone”;
• Aprire il file di manifest utilizzando un
editor XML (basta utilizzare l’opzione
contestuale “Open with…” di
Visual Studio) e aggiungere 
Abilitare il progetto
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>Microsoft.Speech.VoiceService.MSSRAudio.dll</Path>
<ActivatableClass ActivatableClassId="Microsoft.Speech.VoiceService.MSSRAudio.Encoder"
ThreadingModel="both" />
</InProcessServer>
</Extension>
<Extension Category="windows.activatableClass.proxyStub">
<ProxyStub ClassId="5807FC3A-A0AB-48B4-BBA1-BA00BE56C3BD">
<Path>Microsoft.Speech.VoiceService.MSSRAudio.dll</Path>
<Interface Name="IEncodingSettings" InterfaceId="C97C75EE-A76A-480E-9817-D57D3655231E" />
</ProxyStub>
</Extension>
<Extension Category="windows.activatableClass.proxyStub">
<ProxyStub ClassId="F1D258E4-9D97-4BA4-AEEA-50A8B74049DF">
<Path>Microsoft.Speech.VoiceService.Audio.dll</Path>
<Interface Name="ISpeechVolumeEvent" InterfaceId="946379E8-A397-46B6-B9C4-FBB253EFF6AE" />
<Interface Name="ISpeechStatusEvent" InterfaceId="FB0767C6-7FAA-4E5E-AC95-A3C0C4D72720" />
</ProxyStub>
</Extension>
</Extensions>
Template designed by
La classe SpeechRecognizer è lo strumento essenziale per
le funzionalità di Speech Recognition.
Il metodo RecognizeSpeechToTextAsync() prende in carico
lo stream proveniente dal microfono, interagisce con il
servizio BING e restituisce l’eventuale risultato analizzato.
La classe SpeechRecognizer
Dim result = Await speechRecognizer.RecognizeSpeechToTextAsync()
If result.TextConfidence <> SpeechRecognitionConfidence.Rejected Then
Me.ResultText.Text = result.Text
Else
Me.ErrorText.Text = "Rejected"
End If
Template designed by
La classe SpeechRecognitionResult contiene il risultato di un’analisi da
parte del servizio di Speech Recognition di BING.
Abbiamo a disposizione:
• TextConfidence : indica l’accuratezza (stimata) del risultato. Se non è
stato riconosciuto nulla si ha il valore Rejected;
• Text : contiene il testo riconosciuto
Possiamo ottenere anche le interpretazioni alternative grazie al metodo
GetAlternates().
Gestire il risultato
Template designed by
Uno dei dogma delle NUI recita che l’utente deve essere avvertito del
fatto che una funzionalità Natural (come lo Speech Recognition) è
attiva.
L’SDK dello Speech Recognition di BING mette a disposizione la classe
SpeechRecognizerUx (controllo XAML) che fornisce un’interfaccia
standard per avvisare l’utente che il microfono è aperto e l’app è in
ascolto.
Interfaccia standard
Template designed by
Utilizzare il controllo SpeechRecognizerUx (contenuto nell’assembly
Bing.Speech.Xaml.SpeechRecognizerUx) è molto semplice:
• Aggiungere il controllo nello XAML;
• Impostare la proprietà SpeechRecognizer con un’istanza della classe
SpeechRecognizer:
Nel momento in cui viene richiamato il metodo
RecognizeSpeechToTextAsync(), l’interfaccia verrà automaticamente
visualizzata.
Interfaccia standard
SpeechControl.SpeechRecognizer = speechRecognizer
Template designed by
La classe SpeechRecognizer mette a disposizione gli eventi:
• AudioCaptureStateChanged: viene sollevato quando cambia lo stato della sessione di
riconoscimento vocale. L’enumerazione SpeechRecognizerAudioCaptureState
dell’argomento dell’evento fornisce informazioni sullo stato della sessione (ad esempio
Thinking quando la piattaforma sta elaborando un audio);
• AudioLevelChanged: viene sollevato quando l’utente varia il volume dell’audio catturato dal
microfono;
• RecognizerResultRecieved: viene sollevato ogni volta che la piattaforma fornisce un
risultato preliminare di riconoscimento vocale nello stato di Thinking. Tramite la proprietà
IsHypothesis possiamo sapere se si tratta di un risultato preliminare o finale.
Usando opportunamente questi eventi possiamo implementare la nostra interfaccia utente.
Interfaccia Custom
demo
Speech Recognition
Template designed by
App Linking è, in una frase,
Link your app to search results
BING App Linking
Template designed by
• More discoverable: permette ad un maggior numero di
persone di conoscere la nostra app semplicemente inserendo
il link all’interno delle ricerche di Windows 8.1 e Windows
Phone 7.x/8;
• Deeper engagement: l’utente può “navigare” dai risultati di
ricerca direttamente all’interno della nostra app rendendo
l’esperienza utente più ricca e complete;
• Easy and free: seguite la sessione e vedrete 
BING App Linking
Template designed by
Due possibili scenari:
• App Linking: il link all’interno dello
Smart Seach di Windows 8.1 apre
semplicemente la nostra app;
• Deep Linking: il link apre la nostra
app ad una precisa pagina o
mostrando un particolare
contenuto.
App Linking – Come funziona
Esempio di App Linking –
Wikipedia
Template designed by
Per attivare la modalità più “semplice”:
• La nostra app deve essere già pubblicata nello store;
• E’ necessario connettersi al BING Webmaster Portal
(https://ssl.bing.com/webmaster/configure/app/linking) e
aggiungere la nostra app come se fosse una “Connected
Page”
App Linking – Website to App
http://msdn.microsoft.com/en-us/library/dn614167.aspx
Template designed by
App Linking – Website to App
Template designed by
Per abilitare il Deep Linking è necessario:
• Aggiungere del markup nelle pagine web;
• Implementare il deep linking nell’app (e, quindi,
pubblicarla);
• Registrare l’app per il deep linking all’interno del BING
Webmaster Portal
App Linking – Deep Linking
Template designed by
Se vogliamo utilizzare il <body> dell’HTML:
App Linking – Deep Linking
applicationId e
packageFamilyName
dell’app che vogliamo
abilitare per il deep linking
Parametri da passare all’app
nel momento in cui viene
lanciata a seguito del click
all’interno dello Smart
Search
http://msdn.microsoft.com/en-us/library/dn614166.aspx
Template designed by
Se vogliamo, invece, utilizzare l’<head> della pagina:
App Linking – Deep Linking
applicationId e
packageFamilyName
dell’app che vogliamo
abilitare per il deep linking
Parametri da passare all’app
nel momento in cui viene
lanciata a seguito del click
all’interno dello Smart
Search
http://msdn.microsoft.com/en-us/library/dn614166.aspx
Template designed by
La nostra app deve essere in grado di elaborare l’attivazione
con i parametri:
App Linking – Deep Linking
http://msdn.microsoft.com/en-us/library/dn614164.aspx
Template designed by
Per completare la procedura e’ necessario abilitare, a livello
di BING Webmaster Portal, il deep linking
App Linking – Deep Linking
http://msdn.microsoft.com/en-us/library/dn614161.aspx
Template designed by
Per testare la correttezza dei metatag aggiunti al nostro sito,
possiamo utilizzare il BING AppLinking Verification Tool
App Linking – Deep Linking
http://bingdevcenter.blob.core.windows.net/download/AppLinkingTestTool/setup.exe
Template designed by
BING Developer Center
http://www.bing.com/dev
Bing Speech Recognition Control for Windows 8.1
http://visualstudiogallery.msdn.microsoft.com/521cf616-a9a8-4d99-b5d9-92b539d9df82
Bing Speech Recognition Control for Windows 8
http://visualstudiogallery.msdn.microsoft.com/7a054b83-f890-41b5-909b-5d849e1a32b6
MSDN - The Bing Speech Recognition Control
http://msdn.microsoft.com/en-us/library/dn434583.aspx
Guest Post: BING Speech Recognition nelle Windows Store app
http://blogs.msdn.com/b/italy/archive/2013/11/21/guest-post-bing-speech-recognition-nelle-windows-store-app.aspx
BING App Linking
http://www.bing.com/dev/en-us/applink
MSDN – Bing App Linking
http://msdn.microsoft.com/en-us/library/dn614167.aspx
Recap
Template designed by
Q&A
Template designed by
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
prossimi giorni
Per contattarmi
massimo.bonanni@tiscali.it
Grazie

Weitere ähnliche Inhalte

Was ist angesagt?

Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the WebClaudio Gandelli
 
Modi innovativi per costruire App
Modi innovativi per costruire AppModi innovativi per costruire App
Modi innovativi per costruire AppCommit University
 
What's New in ASP.NET 4.5 and Visual Studio 2012
What's New in ASP.NET 4.5 and Visual Studio 2012What's New in ASP.NET 4.5 and Visual Studio 2012
What's New in ASP.NET 4.5 and Visual Studio 2012Andrea Dottor
 
EtnaDev 2015 - Windows Bridge
EtnaDev 2015 - Windows BridgeEtnaDev 2015 - Windows Bridge
EtnaDev 2015 - Windows BridgeGaetano Paternò
 
Acadevmy - Angular Overview
Acadevmy - Angular OverviewAcadevmy - Angular Overview
Acadevmy - Angular OverviewFrancesco Sciuti
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Fabrizio Bernabei
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal WebtrendsStefano Iaboni
 

Was ist angesagt? (8)

Hands on MVC - Mastering the Web
Hands on MVC - Mastering the WebHands on MVC - Mastering the Web
Hands on MVC - Mastering the Web
 
Modi innovativi per costruire App
Modi innovativi per costruire AppModi innovativi per costruire App
Modi innovativi per costruire App
 
Novità di Asp.Net 4.0
Novità di Asp.Net 4.0Novità di Asp.Net 4.0
Novità di Asp.Net 4.0
 
What's New in ASP.NET 4.5 and Visual Studio 2012
What's New in ASP.NET 4.5 and Visual Studio 2012What's New in ASP.NET 4.5 and Visual Studio 2012
What's New in ASP.NET 4.5 and Visual Studio 2012
 
EtnaDev 2015 - Windows Bridge
EtnaDev 2015 - Windows BridgeEtnaDev 2015 - Windows Bridge
EtnaDev 2015 - Windows Bridge
 
Acadevmy - Angular Overview
Acadevmy - Angular OverviewAcadevmy - Angular Overview
Acadevmy - Angular Overview
 
Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010Asp.net 4 Community Tour VS2010
Asp.net 4 Community Tour VS2010
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 

Andere mochten auch

Design Dell'Interazione - Tom Tom GO LIVE 1000 + Augmented Reality Navigatio...
Design Dell'Interazione - Tom Tom GO LIVE 1000  + Augmented Reality Navigatio...Design Dell'Interazione - Tom Tom GO LIVE 1000  + Augmented Reality Navigatio...
Design Dell'Interazione - Tom Tom GO LIVE 1000 + Augmented Reality Navigatio...Diego Rovelli
 
Analisi web Customer Care con Social Intelligence | BEWE
Analisi web Customer Care con Social Intelligence | BEWEAnalisi web Customer Care con Social Intelligence | BEWE
Analisi web Customer Care con Social Intelligence | BEWEROIALTY
 
MSc Thesis - Loop Closing, Place Recognition
MSc Thesis - Loop Closing, Place RecognitionMSc Thesis - Loop Closing, Place Recognition
MSc Thesis - Loop Closing, Place RecognitionGiacomo Picchiarelli
 
Mettiamoci la faccia: face detection, recognition e landmark per applicazioni...
Mettiamoci la faccia: face detection, recognition e landmark per applicazioni...Mettiamoci la faccia: face detection, recognition e landmark per applicazioni...
Mettiamoci la faccia: face detection, recognition e landmark per applicazioni...Massimo Bonanni
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

Andere mochten auch (8)

Design Dell'Interazione - Tom Tom GO LIVE 1000 + Augmented Reality Navigatio...
Design Dell'Interazione - Tom Tom GO LIVE 1000  + Augmented Reality Navigatio...Design Dell'Interazione - Tom Tom GO LIVE 1000  + Augmented Reality Navigatio...
Design Dell'Interazione - Tom Tom GO LIVE 1000 + Augmented Reality Navigatio...
 
Analisi web Customer Care con Social Intelligence | BEWE
Analisi web Customer Care con Social Intelligence | BEWEAnalisi web Customer Care con Social Intelligence | BEWE
Analisi web Customer Care con Social Intelligence | BEWE
 
MSc Thesis - Loop Closing, Place Recognition
MSc Thesis - Loop Closing, Place RecognitionMSc Thesis - Loop Closing, Place Recognition
MSc Thesis - Loop Closing, Place Recognition
 
SLAM
SLAMSLAM
SLAM
 
Mettiamoci la faccia: face detection, recognition e landmark per applicazioni...
Mettiamoci la faccia: face detection, recognition e landmark per applicazioni...Mettiamoci la faccia: face detection, recognition e landmark per applicazioni...
Mettiamoci la faccia: face detection, recognition e landmark per applicazioni...
 
Slam elevator pitch
Slam elevator pitchSlam elevator pitch
Slam elevator pitch
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Ähnlich wie DotNetCampus 2014 - BING e Windows Store App

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
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Paradisi63
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS BuildGian Maria Ricci
 
Progressive Web App per presentazione Skills&More
Progressive Web App per presentazione Skills&MoreProgressive Web App per presentazione Skills&More
Progressive Web App per presentazione Skills&MoreFrancescoGiammanco1
 
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
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfFlorence Consulting
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1dotnetcode
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS DevicesAndrea Picchi
 
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
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...DotNetCampus
 
Il PaaS di Google
Il PaaS di GoogleIl PaaS di Google
Il PaaS di GoogleMssiStf
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
Designing Flex and AIR applications
Designing Flex and AIR applicationsDesigning Flex and AIR applications
Designing Flex and AIR applicationsmarcocasario
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...DrupalDay
 

Ähnlich wie DotNetCampus 2014 - BING e Windows Store App (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
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
 
Progressive Web App per presentazione Skills&More
Progressive Web App per presentazione Skills&MoreProgressive Web App per presentazione Skills&More
Progressive Web App per presentazione Skills&More
 
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
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Creare PWA con Angular
Creare PWA con AngularCreare PWA con Angular
Creare PWA con Angular
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 
Swagger per tutti
Swagger per tuttiSwagger per tutti
Swagger per tutti
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
 
Dnn Evoq per le aziende
Dnn Evoq per le aziendeDnn Evoq per le aziende
Dnn Evoq per le aziende
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
 
Il PaaS di Google
Il PaaS di GoogleIl PaaS di Google
Il PaaS di Google
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Designing Flex and AIR applications
Designing Flex and AIR applicationsDesigning Flex and AIR applications
Designing Flex and AIR applications
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
 

Mehr von Massimo Bonanni

Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Massimo Bonanni
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Massimo Bonanni
 
Stateful pattern con Azure Functions
Stateful pattern con Azure FunctionsStateful pattern con Azure Functions
Stateful pattern con Azure FunctionsMassimo Bonanni
 
Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsMassimo Bonanni
 
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Massimo Bonanni
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure FunctionsMassimo Bonanni
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
 
Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Massimo Bonanni
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
 
Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Massimo Bonanni
 
Workflow as code with Azure Durable Functions
Workflow as code with Azure Durable FunctionsWorkflow as code with Azure Durable Functions
Workflow as code with Azure Durable FunctionsMassimo Bonanni
 
Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Massimo Bonanni
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Massimo Bonanni
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelMassimo Bonanni
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Massimo Bonanni
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelMassimo Bonanni
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftMassimo Bonanni
 
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Massimo Bonanni
 

Mehr von Massimo Bonanni (20)

Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!
 
Stateful pattern con Azure Functions
Stateful pattern con Azure FunctionsStateful pattern con Azure Functions
Stateful pattern con Azure Functions
 
Architetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure FunctionsArchitetture Serverless con SQL Server e Azure Functions
Architetture Serverless con SQL Server e Azure Functions
 
IoT in salsa serverless
IoT in salsa serverlessIoT in salsa serverless
IoT in salsa serverless
 
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
Tutto quello che avreste voluto sapere sull'API Management (e non avete mai o...
 
Stateful patterns in Azure Functions
Stateful patterns in Azure FunctionsStateful patterns in Azure Functions
Stateful patterns in Azure Functions
 
IoT in salsa Serverless
IoT in salsa ServerlessIoT in salsa Serverless
IoT in salsa Serverless
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoring
 
Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!Empower every Azure Function to achieve more!!
Empower every Azure Function to achieve more!!
 
The art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoringThe art of Azure Functions (unit) testing and monitoring
The art of Azure Functions (unit) testing and monitoring
 
Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...Everything you always wanted to know about API Management (but were afraid to...
Everything you always wanted to know about API Management (but were afraid to...
 
Workflow as code with Azure Durable Functions
Workflow as code with Azure Durable FunctionsWorkflow as code with Azure Durable Functions
Workflow as code with Azure Durable Functions
 
Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!Xmas Serverless Transformation: when the elf doesn’t scale!
Xmas Serverless Transformation: when the elf doesn’t scale!
 
Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0Welcome Azure Functions 2. 0
Welcome Azure Functions 2. 0
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
 
Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!Testing a Service Fabric solution and live happy!!
Testing a Service Fabric solution and live happy!!
 
Discovering the Service Fabric's actor model
Discovering the Service Fabric's actor modelDiscovering the Service Fabric's actor model
Discovering the Service Fabric's actor model
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!Project Gesture & Real Sense: il potere nelle mani!!
Project Gesture & Real Sense: il potere nelle mani!!
 

DotNetCampus 2014 - BING e Windows Store App

  • 1. Template designed by BING e Windows Store App Massimo Bonanni massimo.bonanni@tiscali.it @massimobonanni codetailor.blogspot.com Template designed by
  • 3. Template designed by Mi occupo di progettazione e sviluppo applicazioni con tecnologie Microsoft da sempre. Fondatore e presidente della community DomusDotNet (www.domusdotnet.org) Microsoft Certified Professional Microsoft MVP dal 2011 nella categoria VB.NET Ambassador Intel per Perceptual Computing chi sono
  • 4. Template designed by BING Developer Center e i servizi offerti da BING Speech Recognition App Linking Recap agenda
  • 6. Template designed by Le funzionalità di Speech Recognition offerte dalla piattaforma BING sono disponibili sia per Windows 8 che per Windows 8.1. L’indirizzo di riferimento è : http://www.bing.com/dev/en-us/speech Per utilizzare le funzionalità di Speech Recognitionè necessario: 1. Sottoscrivere un “abbonamento” al servizio BING 2. Utilizzare le API contenute negli assembly forniti da BING BING Speech Recognition
  • 7. Template designed by Per poter utilizzare le API client di Speech Recognition è necessario sottoscrivere un abbonamento all’indirizzo: https://datamarket.azure.com/dataset/bing/speechcontrol Attualmente è disponibile un abbonamento gratuito con 500.000 transazioni (cioè operazioni di riconoscimento vocale con il server) per mese. Non è disponibile per i live id italiani. Il servizio BING
  • 8. Template designed by Per utilizzare i servizi BING sono necessari i parametri ClientID e SecretClient per l'autenticazione. Per ottenere questi parametri è sufficiente registrare la nostra App nel portale: https://datamarket.azure.com/developer/applications ClientID e SecretClient
  • 9. Template designed by Il controllo XAML per Windows 8.x è disponibile nella Visual Studio Gallery all’indirizzo http://visualstudiogallery.msdn.microsoft.com/521cf616- a9a8-4d99-b5d9-92b539d9df82 Non è disponibile all’interno della funzionalità “Extensions and Updates…” di Visual Studio 2013 per il solo fatto di essere marcato per Visual Studio 2012 pur essendo per Windows 8.1  BING Speech Recognition Control
  • 10. Template designed by Per utilizzare le API è necessario: • Referenziare la dll Bing.Speech (la quale referenzia, a sua volta, l’assembly “Microsoft Visual C++ 2013 Runtime Package”); • Modificare il file di manifest per abilitare le capability “Internet Client” e “Microphone”; • Aprire il file di manifest utilizzando un editor XML (basta utilizzare l’opzione contestuale “Open with…” di Visual Studio) e aggiungere  Abilitare il progetto <Extensions> <Extension Category="windows.activatableClass.inProcessServer"> <InProcessServer> <Path>Microsoft.Speech.VoiceService.MSSRAudio.dll</Path> <ActivatableClass ActivatableClassId="Microsoft.Speech.VoiceService.MSSRAudio.Encoder" ThreadingModel="both" /> </InProcessServer> </Extension> <Extension Category="windows.activatableClass.proxyStub"> <ProxyStub ClassId="5807FC3A-A0AB-48B4-BBA1-BA00BE56C3BD"> <Path>Microsoft.Speech.VoiceService.MSSRAudio.dll</Path> <Interface Name="IEncodingSettings" InterfaceId="C97C75EE-A76A-480E-9817-D57D3655231E" /> </ProxyStub> </Extension> <Extension Category="windows.activatableClass.proxyStub"> <ProxyStub ClassId="F1D258E4-9D97-4BA4-AEEA-50A8B74049DF"> <Path>Microsoft.Speech.VoiceService.Audio.dll</Path> <Interface Name="ISpeechVolumeEvent" InterfaceId="946379E8-A397-46B6-B9C4-FBB253EFF6AE" /> <Interface Name="ISpeechStatusEvent" InterfaceId="FB0767C6-7FAA-4E5E-AC95-A3C0C4D72720" /> </ProxyStub> </Extension> </Extensions>
  • 11. Template designed by La classe SpeechRecognizer è lo strumento essenziale per le funzionalità di Speech Recognition. Il metodo RecognizeSpeechToTextAsync() prende in carico lo stream proveniente dal microfono, interagisce con il servizio BING e restituisce l’eventuale risultato analizzato. La classe SpeechRecognizer Dim result = Await speechRecognizer.RecognizeSpeechToTextAsync() If result.TextConfidence <> SpeechRecognitionConfidence.Rejected Then Me.ResultText.Text = result.Text Else Me.ErrorText.Text = "Rejected" End If
  • 12. Template designed by La classe SpeechRecognitionResult contiene il risultato di un’analisi da parte del servizio di Speech Recognition di BING. Abbiamo a disposizione: • TextConfidence : indica l’accuratezza (stimata) del risultato. Se non è stato riconosciuto nulla si ha il valore Rejected; • Text : contiene il testo riconosciuto Possiamo ottenere anche le interpretazioni alternative grazie al metodo GetAlternates(). Gestire il risultato
  • 13. Template designed by Uno dei dogma delle NUI recita che l’utente deve essere avvertito del fatto che una funzionalità Natural (come lo Speech Recognition) è attiva. L’SDK dello Speech Recognition di BING mette a disposizione la classe SpeechRecognizerUx (controllo XAML) che fornisce un’interfaccia standard per avvisare l’utente che il microfono è aperto e l’app è in ascolto. Interfaccia standard
  • 14. Template designed by Utilizzare il controllo SpeechRecognizerUx (contenuto nell’assembly Bing.Speech.Xaml.SpeechRecognizerUx) è molto semplice: • Aggiungere il controllo nello XAML; • Impostare la proprietà SpeechRecognizer con un’istanza della classe SpeechRecognizer: Nel momento in cui viene richiamato il metodo RecognizeSpeechToTextAsync(), l’interfaccia verrà automaticamente visualizzata. Interfaccia standard SpeechControl.SpeechRecognizer = speechRecognizer
  • 15. Template designed by La classe SpeechRecognizer mette a disposizione gli eventi: • AudioCaptureStateChanged: viene sollevato quando cambia lo stato della sessione di riconoscimento vocale. L’enumerazione SpeechRecognizerAudioCaptureState dell’argomento dell’evento fornisce informazioni sullo stato della sessione (ad esempio Thinking quando la piattaforma sta elaborando un audio); • AudioLevelChanged: viene sollevato quando l’utente varia il volume dell’audio catturato dal microfono; • RecognizerResultRecieved: viene sollevato ogni volta che la piattaforma fornisce un risultato preliminare di riconoscimento vocale nello stato di Thinking. Tramite la proprietà IsHypothesis possiamo sapere se si tratta di un risultato preliminare o finale. Usando opportunamente questi eventi possiamo implementare la nostra interfaccia utente. Interfaccia Custom
  • 17. Template designed by App Linking è, in una frase, Link your app to search results BING App Linking
  • 18. Template designed by • More discoverable: permette ad un maggior numero di persone di conoscere la nostra app semplicemente inserendo il link all’interno delle ricerche di Windows 8.1 e Windows Phone 7.x/8; • Deeper engagement: l’utente può “navigare” dai risultati di ricerca direttamente all’interno della nostra app rendendo l’esperienza utente più ricca e complete; • Easy and free: seguite la sessione e vedrete  BING App Linking
  • 19. Template designed by Due possibili scenari: • App Linking: il link all’interno dello Smart Seach di Windows 8.1 apre semplicemente la nostra app; • Deep Linking: il link apre la nostra app ad una precisa pagina o mostrando un particolare contenuto. App Linking – Come funziona
  • 20. Esempio di App Linking – Wikipedia
  • 21. Template designed by Per attivare la modalità più “semplice”: • La nostra app deve essere già pubblicata nello store; • E’ necessario connettersi al BING Webmaster Portal (https://ssl.bing.com/webmaster/configure/app/linking) e aggiungere la nostra app come se fosse una “Connected Page” App Linking – Website to App http://msdn.microsoft.com/en-us/library/dn614167.aspx
  • 22. Template designed by App Linking – Website to App
  • 23. Template designed by Per abilitare il Deep Linking è necessario: • Aggiungere del markup nelle pagine web; • Implementare il deep linking nell’app (e, quindi, pubblicarla); • Registrare l’app per il deep linking all’interno del BING Webmaster Portal App Linking – Deep Linking
  • 24. Template designed by Se vogliamo utilizzare il <body> dell’HTML: App Linking – Deep Linking applicationId e packageFamilyName dell’app che vogliamo abilitare per il deep linking Parametri da passare all’app nel momento in cui viene lanciata a seguito del click all’interno dello Smart Search http://msdn.microsoft.com/en-us/library/dn614166.aspx
  • 25. Template designed by Se vogliamo, invece, utilizzare l’<head> della pagina: App Linking – Deep Linking applicationId e packageFamilyName dell’app che vogliamo abilitare per il deep linking Parametri da passare all’app nel momento in cui viene lanciata a seguito del click all’interno dello Smart Search http://msdn.microsoft.com/en-us/library/dn614166.aspx
  • 26. Template designed by La nostra app deve essere in grado di elaborare l’attivazione con i parametri: App Linking – Deep Linking http://msdn.microsoft.com/en-us/library/dn614164.aspx
  • 27. Template designed by Per completare la procedura e’ necessario abilitare, a livello di BING Webmaster Portal, il deep linking App Linking – Deep Linking http://msdn.microsoft.com/en-us/library/dn614161.aspx
  • 28. Template designed by Per testare la correttezza dei metatag aggiunti al nostro sito, possiamo utilizzare il BING AppLinking Verification Tool App Linking – Deep Linking http://bingdevcenter.blob.core.windows.net/download/AppLinkingTestTool/setup.exe
  • 29. Template designed by BING Developer Center http://www.bing.com/dev Bing Speech Recognition Control for Windows 8.1 http://visualstudiogallery.msdn.microsoft.com/521cf616-a9a8-4d99-b5d9-92b539d9df82 Bing Speech Recognition Control for Windows 8 http://visualstudiogallery.msdn.microsoft.com/7a054b83-f890-41b5-909b-5d849e1a32b6 MSDN - The Bing Speech Recognition Control http://msdn.microsoft.com/en-us/library/dn434583.aspx Guest Post: BING Speech Recognition nelle Windows Store app http://blogs.msdn.com/b/italy/archive/2013/11/21/guest-post-bing-speech-recognition-nelle-windows-store-app.aspx BING App Linking http://www.bing.com/dev/en-us/applink MSDN – Bing App Linking http://msdn.microsoft.com/en-us/library/dn614167.aspx Recap
  • 31. Template designed by Grazie a tutti per la partecipazione Riceverete il link per il download a slide e demo via email nei prossimi giorni Per contattarmi massimo.bonanni@tiscali.it Grazie