Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
MSDN Library

Esercitazione sull'hub notifiche di Service Bus (app di Windows Store)

noteNota
Gli hub notifiche sono disponibili in Service Bus di Windows Azure come funzionalità in anteprima dal mese di gennaio 2013. Il passaggio alla fase GA (General Availability) è previsto entro la metà del 2013.

noteNota
Per effetto dei miglioramenti apportati agli hub notifiche, l'SDK scaricato prima del mese di aprile 2013 non sarà compatibile con i nuovi hub notifiche. Analogamente, l'SDK corrente non potrà essere utilizzato con hub notifiche creati prima del mese di aprile 2013. Per sfruttare al meglio le nuove funzionalità disponibili, tra cui il controllo della concorrenza ottimistica, si consiglia quindi di utilizzare i nuovi hub notifiche con il nuovo SDK. Il supporto per gli hub notifiche creati prima del mese di aprile 2013 terminerà con il passaggio alla fase GA degli hub notifiche.

Gli hub notifiche di Service Bus sono entità di Service Bus che consentono all'utente di inviare notifiche push dal dispositivo mediante piattaforme applicative di terze parti, ad esempio:

  • Servizi notifica Push Windows (WNS) per Windows 8

  • Servizio di notifiche push Apple (APNs)

  • Google Cloud Messaging (GCM)

A breve sarà disponibile anche il supporto per il Servizio notifica Push Microsoft (MPNS) per Windows Phone.

In questa esercitazione vengono illustrate le procedure per la configurazione di un'applicazione di Windows Store (scritta in C#) e un'applicazione ASP.NET MVC semplice che esegue il push di una notifica modello tramite il servizio WNS.

Sono inoltre disponibili l'argomento dettagliato Procedura: Hub notifiche di Service Bus (app di Windows Store) e la panoramica Hub notifiche di Windows Azure Service Bus. Per ulteriori informazioni su come utilizzare gli hub notifiche da app per iOS, vedere l'argomento Procedura: Hub notifiche di Service Bus (app per iOS).

Prerequisiti

Per eseguire le attività illustrate in questa esercitazione è necessario disporre di:

  • Account per sviluppatori di Windows Store.

  • Service Bus .NET Preview SDK. L'SDK è un pacchetto NuGet che contiene le funzionalità di anteprima di Service Bus e può essere scaricato direttamente da qui. Il pacchetto è denominato ServiceBus preview features e contiene la nuova libreria di Service Bus Microsoft.ServiceBus.Preview.dll. Per l'utilizzo degli hub notifiche, è necessaria questa libreria anziché la versione di produzione (Microsoft.ServiceBus.dll).

  • Service Bus WinRT Managed SDK, scaricabile direttamente da questo collegamento.

Preparazione del processo di sviluppo per Windows 8

Per iniziare a sviluppare applicazioni per Windows 8 è necessario un PC con Windows 8 e Visual Studio Express Edition, scaricabile gratuitamente, o una qualsiasi altra edizione di Visual Studio 2012. Dopo aver creato il primo progetto per Windows 8, viene richiesto di creare gratuitamente una licenza per sviluppatori, associata al proprio account sviluppatore. Questa licenza consente di caricare lateralmente app nella nuova interfaccia utente di Windows 8.

Per pubblicare un'applicazione in Windows Store e sfruttare servizi online quali l'integrazione delle identità con Account Microsoft e WNS, è inoltre necessario disporre di un account per sviluppatori di Windows Store. L'account per sviluppatori si differenzia dalla licenza per sviluppatori perché può essere integrato con il servizio WNS e costituisce uno dei requisiti necessari per seguire questa esercitazione.

Per iscriversi per un account per sviluppatori di Windows Store, visitare il sito Web all'indirizzo: https://appdev.microsoft.com/StorePortals/it-it/Account/Signup/Start/.

Creazione di un'app di Windows Store semplice

I riquadri animati e gli avvisi popup sono i due elementi che una notifica remota può attivare. La visualizzazione e gli avvisi associati a questi elementi vengono gestiti dalla shell di Windows. L'applicazione informa Windows che è prevista una notifica e che sono necessarie solo alcune righe di codice. Con Service Bus Notification Hub SDK, il numero di righe di codice necessarie è ancora inferiore.

  1. Per iniziare, creare un'applicazione di Windows Store da uno dei modelli disponibili. Creare un progetto C# Windows Store in Visual Studio con il modello Applicazione griglia. Assegnare un nome al progetto, ad esempio MyPushApp. Il modello Applicazione griglia è un ottimo punto di partenza per l'invio di notifiche push in trasmissione e in base a tag specifici, ad esempio nell'ambito di applicazioni di notizie, così come fornite dagli hub notifiche.

  2. Fare clic con il pulsante destro del mouse sul nodo del progetto e fare clic sul menu Store. Fare clic su Associa applicazione a Store. Verrà visualizzata una finestra della procedura guidata con le istruzioni necessarie per associare il progetto alla registrazione di un'app di Windows Store. È necessario immettere l'account per sviluppatori di Windows Store. Al termine della fase di accesso, viene visualizzata una pagina con le app già registrate. Se non è stata ancora registrata alcuna app, viene visualizzato un elenco vuoto, come illustrato di seguito.

    Applicazione Windows Store
  3. In entrambi i casi, nel portale per sviluppatori viene visualizzato un collegamento per la creazione di una registrazione. Se si dispone già di altre app, il collegamento viene visualizzato nella prima riga dell'elenco. Fare clic sul collegamento e accedere al dashboard dello store. Completare il primo passaggio e assegnare all'applicazione un nome univoco per Windows Store. Non utilizzare il nome MyPushApp come illustrato di seguito, perché già esistente.

    Applicazione Windows Store
  4. Una volta riservato il nome dell'app, salvare e andare al passaggio relativo ai servizi.

    Applicazione Windows Store
  5. Seguire il collegamento alle informazioni relative ai servizi Live come illustrato di seguito:

    Applicazione Windows Store
  6. Nella sezione delle notifiche push, fare clic su Autenticazione del servizio. Copiare le due seguenti informazioni importanti: il SID di pacchetto e il segreto client.

  7. Tornare a Visual Studio in cui la procedura guidata aperta viene automaticamente aggiornata in modo da visualizzare la nuova prenotazione. Selezionare la riga e fare clic su Avanti, quindi su Associa nella pagina successiva. Il progetto e la registrazione in Windows Store sono ora associate e l'app dispone delle autorizzazioni necessarie per l'utilizzo del servizio WNS.

Creazione e configurazione di hub notifiche di Service Bus

Dopo aver completato la configurazione di base dell'app per Windows e averla abbinata al profilo Windows Store, associare l'app con un nuovo hub notifiche di Service Bus.

  1. Eseguire l'accesso al portale di gestione di Windows Azure, quindi fare clic su NUOVO nell'angolo in basso a sinistra della pagina.

  2. Selezionare Servizi app, Service Bus, quindi Hub notifiche. Fare clic su Creazione rapida e digitare un nome per l'hub notifiche. Selezionare un'area geografica e lo spazio dei nomi di Service Bus in cui creare l'hub notifiche. Se non sono disponibili spazi dei nomi, ne viene fornito uno nuovo con il nome specificato.

    Creare un hub di notifica di Service Bus
  3. Per creare l'hub notifiche, fare clic sul segno di spunta. Dopo aver selezionato la scheda Service Bus nel pannello di navigazione a sinistra, fare clic sullo spazio dei nomi appena creato (o riutilizzato). Nell'elenco viene visualizzato il nuovo hub notifiche.

    Hub di notifica di Service Bus
  4. Fare clic sull'hub notifiche. Viene visualizzata la pagina di panoramica dell'hub notifiche. Fare clic sulla scheda Configura all'inizio.

    Hub di notifica di Service Bus
  5. Inserire il SID di pacchetto e il segreto client, quindi fare clic su Salva sulla barra degli strumenti nella parte inferiore della schermata.

  6. Non uscire ancora dalla pagina. In Hub notifiche, fare clic su Informazioni di connessione e annotare i valori delle due stringhe di connessione che verranno utilizzati per ottenere l'accesso all'hub notifiche in fase di esecuzione. Per completare lo scenario è necessario ottenere queste stringhe di connessione.

    Hub di notifica di Service Bus

Connessione dell'app

L'applicazione griglia è già associata al relativo profilo Windows Store, a sua volta collegato all'hub notifiche. In questo primo scenario veloce sarà necessario inviare all'applicazione un avviso popup.

In primo luogo, abilitare la funzionalità di avviso popup nel file manifesto utilizzando Visual Studio 2012.

  1. In Esplora soluzioni fare doppio clic su Package.appxmanifest.

  2. Individuare la proprietà Toast Capable e impostarla su true, quindi salvare e chiudere l'applicazione.

    <VisualElements DisplayName="MyPushApp" Logo="Assets\Logo.png"
                    SmallLogo="Assets\SmallLogo.png" Description="App1"
                    ForegroundText="light" BackgroundColor="#464646"
                    ToastCapable="true">
        <DefaultTile ShowName="allLogos" />
        <SplashScreen Image="Assets\SplashScreen.png" />
    </VisualElements>
    
  3. È necessario che l'app venga registrata con l'hub notifiche in fase di esecuzione, in modo che quella particolare istanza dell'app risulti nota al sistema. Tecnicamente, l'app viene registrata sia con il servizio WNS che con l'hub notifiche, ma l'API di Service Bus raggruppa queste due operazioni in un unico passaggio. Mantiene inoltre le impostazioni invariate ad ogni riavvio dell'applicazione. Nelle impostazioni dell'app deve essere inoltre disponibile un'opzione che consenta di disabilitare le notifiche. Vedere le linee guida di Windows Store. Queste informazioni non sono trattate nel presente scenario.

  4. Per implementare il client delle notifiche push, aggiungere dal progetto un riferimento a Microsoft.WindowsAzure.Messaging.Managed.dll per WinRT, scaricabile direttamente da qui.

  5. Nel proprio progetto di Visual Studio fare clic con il pulsante destro del mouse sul nodo Riferimenti e aggiungere il nuovo riferimento. Nella finestra di dialogo individuare la posizione dell'assembly e selezionarla.

  6. Aprire il file App.xaml.cs.

  7. Aggiungere le seguenti istruzioni using:

    using Microsoft.WindowsAzure.Messaging;
    using System.Threading.Tasks;
    using Windows.Data.Xml.Dom;
    using Windows.UI.Notifications;
    using Windows.Networking.PushNotifications; 
    
    
  8. Nella classe App aggiungere un campo in modo da mantenere un riferimento alla classe client NotificationHub per l'applicazione (dall'API di notifica di Service Bus):

    sealed partial class App : Application
    {
        NotificationHub notificationHub;
    
    
  9. Inizializzare l'notificationHub nel costruttore. Sostituire il parametro connectionstring con la stringa di connessione ottenuta nel passaggio precedente, associata alla regola DefaultListenSharedAccessSignature. In questo modo, sarà possibile sviluppare una firma di chiamata che definisce i diritti di accesso per l'aggiunta di una nuova registrazione senza conferire diritti aggiuntivi. Sostituire myhub con il nome dell'hub notifiche:

    public App()
    {
        notificationHub = new NotificationHub("myhub", "connectionstring");
    
        this.InitializeComponent();
        this.Suspending += OnSuspending;
    }
    
  10. Per inizializzare le notifiche e rinnovare la registrazione all'avvio dell'app, aggiungere i due metodi illustrati di seguito. Il primo metodo è InitializeNotificationsAsync, che riacquisisce il ChannelURI del servizio WNS e garantisce che sia registrato con l'hub notifiche.

    async Task InitializeNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        await notificationHub.RegisterNativeAsync(channel.Uri);
    }
    
  11. Per aggiungere la funzione di inizializzazione all'app, contrassegnare il metodo OnLaunched come asincrono e aggiungere la chiamata richiesta:

    protected async override void OnLaunched(LaunchActivatedEventArgs args)
    {
        await InitializeNotificationsAsync();
    
  12. Per eseguire la registrazione per altre modalità di attivazione, aggiungere la stessa chiamata all'override dell'evento OnActivated:

    protected async override void OnActivated(IActivatedEventArgs args) {
        base.OnActivated(args);
        await InitializeNotificationsAsync();
    }
    

In sintesi, con questa procedura è stato dimostrato come sia possibile aggiungere alla propria app di Windows Store la consegna di eventi di notifica altamente scalabili e personalizzabili con poche righe di codice.

Invio di notifiche con .NET

Per generare e inviare notifiche, è possibile creare un'applicazione console, un'applicazione Web, uno script oppure utilizzare un servizio mobile. In quest'ultimo caso, passare alla sezione successiva. Diversamente da servizi analoghi, non è necessario per il client comunicare con il proprio back-end.

Se si utilizza Visual Studio Express 2012 per Windows 8, eseguire Visual Studio Express 2012 per Windows Desktop per creare un'applicazione console oppure Visual Studio Express 2012 per il Web per creare un'app Web Form semplice.

Se si sceglie un'applicazione console o un'applicazione Web come back-end, aggiungere riferimenti a:

  • Microsoft.ServiceBus.Preview.dll

  • System.Runtime.Serialization.dll

In un'app Web Form ASP.NET sostituire la pagina HTML default.aspx con una casella di testo e un pulsante:

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Send" OnClick="Button1_Click" />
</div>
</asp:Content>

Nel file default.aspx.cs aggiungere il metodo Button1_Click e sostituire myhub con il nome dell'hub notifiche. Sostituire il parametro connectionstring con la stringa di connessione di DefaultFullSharedAccessSignature, ottenuta precedentemente.

protected void Button1_Click(object sender, EventArgs e)
{
    var hubClient = NotificationHubClient.CreateClientFromConnectionString("connectionstring", "myhub");
    var toast = "<toast> <visual> <binding template=\"ToastText01\"> <text id=\"1\">Hello! </text> </binding> </visual> </toast>";
    hubClient.SendWindowsNativeNotificationAsync(toast);
}

Nelle applicazioni, NotificationHubClient viene creato una sola volta e riutilizzato.

Se si è scelto di creare un'applicazione console, utilizzare i seguenti frammenti di codice come funzione Main(). Effettuare le stesse sostituzioni descritte in precedenza. È possibile inviare un determinato messaggio di notifica chiamando l'app con un argomento stringa racchiuso tra virgolette. Il messaggio predefinito è "Hello".

static void Main(string[] args)
{
    var hubClient = NotificationHubClient.CreateClientFromConnectionString("connectionstring", "myhub");
    var toast = "<toast> <visual> <binding template=\"ToastText01\"> <text id=\"1\">Hello! </text> </binding> </visual> </toast>";
    hubClient.SendWindowsNativeNotificationAsync(toast);
}

Entrambe le applicazioni possono inviare un evento di notifica. Se vengono registrate 10.000 istanze client, l'hub notifiche crea e invia 10.000 copie della notifica ed esegue la gestione delle registrazioni e degli errori, come previsto. Per informazioni sull'invio di notifiche multipiattaforma, l'identificazione di utenti e gruppi di interesse specifici e altre funzionalità avanzate, vedere l'argomento dettagliato Procedura: Hub notifiche di Service Bus (app di Windows Store) e la panoramica Hub notifiche di Windows Azure Service Bus.

Invio di notifiche con Mobile Services

Mobile Services consente di creare rapidamente un back-end per l'applicazione. È possibile utilizzare hub notifiche da Mobile Services per trasmettere notifiche a numerosi dispositivi o creare facilmente gruppi di interesse utilizzando tag.

In questa esercitazione le notifiche vengono inviate mediante un processo pianificato, ma è possibile utilizzare anche uno script sul lato server nel servizio mobile.

  1. Creare un nuovo servizio mobile oppure accedere a quello personale. Per ulteriori informazioni su Mobile Services, visitare la pagina Web dedicata.

  2. Fare clic su Utilità di pianificazione sulla barra degli strumenti nella parte superiore della schermata.

    Notifiche push
  3. Creare un nuovo processo pianificato, immettere un nome, quindi scegliere Su richiesta.

    Notifiche push
  4. Una volta creato il processo, fare clic sul relativo nome, quindi su Script sulla barra degli strumenti nella parte superiore della schermata.

  5. Immettere lo script riportato di seguito. Assicurarsi di sostituire i segnaposto con il nome dell'hub notifiche e la stringa di connessione associata a DefaultFullSharedAccessSignature ottenuti nel passaggio precedente. Fare clic su Salva.

    function PushToHub() {
        var azure = require('azure');
        
        var notificationHubService = azure.createNotificationHubService('<hub name>',
        '<connection string>');
    
        notificationHubService.wns.sendToastText01(
            null,
            {
                text1: 'Hello from Mobile Services!!!'
            },
            function (error) {
                if (!error) {
                    console.warn("Notification successful");
                }
        });
    }
    
  6. Fare clic su Esegui una volta sulla barra degli strumenti nella parte inferiore della schermata.

noteNota
In Mobile Services viene utilizzato Windows Azure SDK per l'accesso di Node.js agli hub notifiche. Per ulteriori informazioni su Windows Azure SDK per Node.js con gli hub notifiche, visitare la pagina Web dedicata.

In modo analogo al caso precedente, se vengono registrate 10.000 istanze client, l'hub notifiche crea e invia 10.000 copie della notifica ed esegue la gestione delle registrazioni e degli errori, come previsto. Per informazioni sull'invio di notifiche multipiattaforma, l'identificazione di utenti e gruppi di interesse specifici e altre funzionalità avanzate, vedere l'argomento dettagliato Procedura: Hub notifiche di Service Bus (app di Windows Store) e la panoramica Hub notifiche di Windows Azure Service Bus.

Aggiunte alla community

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft