Exporter (0) Imprimer
Développer tout

Didacticiel relatif aux concentrateurs de notification Service Bus (applications Windows Store)

noteRemarque
Les concentrateurs de notification sont uniquement disponibles dans Windows Azure Service Bus sous la forme d’une fonctionnalité préliminaire depuis janvier 2013. Sa disponibilité devrait être généralisée en milieu d’année 2013.

noteRemarque
Compte tenu des améliorations apportées aux concentrateurs de notification, le SDK que vous téléchargez avant le mois d'avril 2013 ne sera pas compatible avec les nouveaux concentrateurs de notification. Inversement, le SDK actuel n'est pas compatible avec les concentrateurs de notification créés avant avril 2013. Utilisez les nouveaux concentrateurs avec le nouveau SDK pour tirer parti des nouvelles fonctionnalités, notamment le modèle de concurrence optimiste. La prise en charge des concentrateurs de notification créés avant avril 2013 s'achève lors des transitions des concentrateurs vers GA (General Availability).

Les concentrateurs de notification Service Bus sont des entités Service Bus qui permettent à un utilisateur d’envoyer des notifications Push d’appareils via des plateformes d’applications tierces, notamment :

  • les Services de notifications Push Windows (WNS) pour Windows 8 ;

  • le service de notifications Push Apple (APN).

  • Google Cloud Messaging (GCM).

La prise en charge des Services de notification Push Microsoft (MPNS) pour Windows Phone sera bientôt disponible.

Ce didacticiel décrit la configuration d’une application Windows Store (écrite en C#) et d’une application MVC ASP.NET simple qui envoie une notification avec modèle via WNS.

Une rubrique Procédure relative aux concentrateurs de notification Service Bus (applications Windows Store) détaillée et une présentation des Concentrateurs de notification Windows Azure Service Bus sont également disponibles. Pour plus d'informations sur le sujet suivant, à savoir l’utilisation des concentrateurs de notification à partir d’applications iOS, voir la rubrique Procédure relative aux concentrateurs de notification Service Bus (applications iOS).

Conditions préalables

Pour réaliser les tâches décrites dans ce didacticiel, les éléments suivants sont requis :

  • un compte de développement Windows Store ;

  • la version préliminaire du Kit de développement logiciel (SDK) Service Bus .NET. Le Kit de développement logiciel (SDK) est un package NuGet contenant la version préliminaire des fonctionnalités de Service Bus que vous pouvez télécharger ici. Le package est ServiceBus preview features, et il contient une nouvelle bibliothèque Service Bus intitulée Microsoft.ServiceBus.Preview.dll. Pour utiliser les concentrateurs de notification, veuillez utiliser cette bibliothèque au lieu de la version de production (Microsoft.ServiceBus.dll) ;

  • le Kit de développement logiciel (SDK) géré Service Bus WinRT. Vous pouvez télécharger ce Kit de développement logiciel (SDK) ici.

Préparation au développement pour Windows 8

Pour commencer à développer des applications pour Windows 8, vous avez besoin d’un PC Windows 8 et de l’édition Express de Visual Studio téléchargeable gratuitement, ou de toute autre édition de Visual Studio 2012. Lorsque vous créez votre premier projet Windows 8, vous êtes invité à créer une licence de développeur, laquelle est gratuite et liée à votre compte de développeur. Cette licence vous permet de charger en parallèle des applications dans l’interface utilisateur moderne de Windows 8.

Pour publier une application Windows Store dans Windows Store et tirer parti des services en ligne tels que l’intégration d’identité avec des comptes Microsoft et WNS, vous devez également disposer d’un compte de développeur Windows Store. Le compte de développeur est différent de la licence de développeur. Vous devez disposer d’un compte de développeur pour suivre ce didacticiel, car il s’intègre à WNS.

Pour s’inscrire à un compte de développeur Windows Store, démarrez ici : https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start/.

Création d’une application Windows Store simple

Les toasts et les vignettes dynamiques sont les deux éléments qu’une notification à distance peut animer. L’environnement Windows gère l’affichage et les alertes pour ces éléments. L’application informe Windows qu’elle attend une notification, et cela nécessite seulement quelques lignes de code. Avec le Kit de développement logiciel (SDK) de concentrateur de notification Service Bus, la tâche est encore plus simple.

  1. Pour commencer, créez une application Windows Store à partir de l’un des modèles disponibles. Créez un projet Windows Store en C# dans Visual Studio avec le modèle Application grille. Donnez-lui un nom comme MyPushApp. Le modèle Application grille est un bon point de départ pour la diffusion et les notifications Push ciblées avec mots-clés, telles que les applications d’actualités, comme celles que fournissent les concentrateurs de notification.

  2. Cliquez avec le bouton droit sur le nœud de projet, puis cliquez sur le menu Store. Cliquez sur Associer l’application au Windows Store, et une fenêtre d’Assistant vous guide lors de l’association de ce projet avec une inscription d’application Windows Store. Le compte de développeur Windows Store est requis. Après vous être connecté, une page affiche vos inscriptions d’applications existantes. Si vous ne disposez d’aucune application inscrite, la page suivante affiche une liste vide, comme illustré ici.

    Application du Windows Store
  3. Dans les deux cas, un lien permettant de créer une inscription sur le Portail des développeurs apparaît. Si vous disposez d’applications, le lien est représenté par la ligne tout en haut de la liste. Cliquez sur le lien, puis accédez au Tableau de bord de Windows Store. Réalisez la première étape, et donnez un nom unique à l’application pour Windows Store. N’utilisez pas MyPushApp, comme illustré ci-dessous, car ce nom est déjà utilisé.

    Application du Windows Store
  4. Une fois le nom d’application réservé, enregistrez, puis passez à l’étape Services.

    Application du Windows Store
  5. Cliquez sur le lien renvoyant aux informations relatives à Windows Live Services, comme illustré :

    Application du Windows Store
  6. Dans la section relative aux notifications Push, cliquez sur Authentification de votre service. Copiez deux informations importantes : l’identificateur de sécurité (SID) du package et la clé secrète client.

  7. Revenez à Visual Studio, où l’Assistant ouvert est automatiquement actualisé et indique la nouvelle réservation. Sélectionnez la ligne, puis cliquez sur Suivant et Associer dans la page suivante. Votre projet et l’inscription dans Windows Store sont liés, et votre application est autorisée à utiliser WNS.

Création et configuration d’un concentrateur de notification Service Bus

Après la configuration de base de l’application Windows et de son profil Windows Store correspondant, associez l’application à un nouveau concentrateur de notification Service Bus.

  1. Connectez-vous au Portail de gestion Windows Azure. Cliquez ensuite sur NOUVEAU dans le coin inférieur gauche de la page.

  2. Sélectionnez Services d’application, Service Bus, puis Concentrateur de notification. Cliquez sur Création rapide et tapez un nom pour le concentrateur de notification. Sélectionnez une région géographique et l’espace de noms Service Bus dans lequel le concentrateur notification va être créé. Si aucun espace de noms n’est disponible, un nouveau est créé avec le nom spécifié.

    Créer un hub de notification Service Bus
  3. Pour créer le concentrateur de notification, cliquez sur la coche. Après avoir sélectionné l’onglet Service Bus dans le volet de navigation gauche, cliquez sur l’espace de noms créé (ou réutilisé). Le nouveau concentrateur de notification apparaît dans la liste.

    Hub de notification Service Bus
  4. Cliquez sur le concentrateur de notification. La page de présentation du concentrateur de notification s’affiche. Cliquez ensuite sur l’onglet Configurer situé en haut.

    Hub de notification Service Bus
  5. Insérez le SID du package et la clé secrète client. Cliquez sur Enregistrer dans la barre d’outils inférieure.

  6. Ne quittez pas cette page. Dans le concentrateur de notification, cliquez sur Informations de connexion et notez les deux chaînes de connexion. Ces valeurs permettent d’obtenir l’accès au concentrateur de notification au moment de l’exécution. Vous devez obtenir ces chaînes de connexion pendant la réalisation de ce scénario.

    Hub de notification Service Bus

Connexion à l’application

Votre Application grille est déjà liée à son profil Windows Store, et ce dernier est lié au concentrateur de notification. Au cours de cette première démonstration rapide, vous allez envoyer une alerte « toast » à l’application.

Tout d’abord, dans Visual Studio 2012, activez la fonctionnalité toast dans le manifeste.

  1. Dans l'Explorateur de solutions, double-cliquez sur Package.appxmanifest.

  2. Paramétrez la propriété Toast Capable sur true, enregistrez les modifications, puis fermez l'application.

    <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. L’application doit s’inscrire avec le concentrateur de notification au moment de l’exécution de manière à ce que le système connaisse cette instance d’application particulière. Techniquement, l’application s’inscrit avec le WNS et le concentrateur de notification, mais l’API Service Bus regroupe ces étapes distinctes en une seule. Elle mémorise également les paramètres lors des redémarrages de l’application. Dans les paramètres de l’application, vous devez offrir aux utilisateurs une manière de désactiver les notifications. Voir Recommandations Windows Store. Ces informations ne sont pas abordées dans le cadre de cette démonstration.

  4. Pour implémenter le client de notification Push, ajoutez une référence à Microsoft.WindowsAzure.Messaging.Managed.dll pour WinRT dans votre projet. Vous pouvez la télécharger ici.

  5. Cliquez avec le bouton droit sur le nœud Références dans votre projet Visual Studio et ajoutez la nouvelle référence. Dans la boîte de dialogue, accédez à l’emplacement de l’assembly, puis sélectionnez-le.

  6. Ouvrez le fichier App.xaml.cs.

  7. Ajoutez les instructions using suivantes :

    using Microsoft.WindowsAzure.Messaging;
    using System.Threading.Tasks;
    using Windows.Data.Xml.Dom;
    using Windows.UI.Notifications;
    using Windows.Networking.PushNotifications; 
    
    
  8. À partir de l’API de notification Service Bus, dans la classe App, ajoutez un champ pour contenir une référence à la classe de client NotificationHub pour l’application :

    sealed partial class App : Application
    {
        NotificationHub notificationHub;
    
    
  9. Initialisez le notificationHub dans le constructeur. Remplacez connectionstring par la chaîne de connexion obtenue précédemment, associée à la règle DefaultListenSharedAccessSignature. Cela vous permet de créer une signature d’appel qui exprime des droits d’accès pour l’ajout d’une nouvelle inscription. Cela ne confère aucun droit supplémentaire. Remplacez myhub par le nom de votre concentrateur de notification.

    public App()
    {
        notificationHub = new NotificationHub("myhub", "connectionstring");
    
        this.InitializeComponent();
        this.Suspending += OnSuspending;
    }
    
  10. Pour initialiser les notifications et renouveler l’inscription au démarrage de l’application, ajoutez deux méthodes. La première est InitializeNotificationsAsync. Cette méthode réacquiert le paramètre WNS channelURI et s'assure qu'il est enregistré avec le concentrateur de notification.

    async Task InitializeNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        await notificationHub.RegisterNativeAsync(channel.Uri);
    }
    
  11. Pour ajouter la fonctionnalité d’initialisation à l’application, marquez la méthode OnLaunched comme asynchrone et ajoutez l’appel requis :

    protected async override void OnLaunched(LaunchActivatedEventArgs args)
    {
        await InitializeNotificationsAsync();
    
  12. Pour effectuer l’inscription pour d’autres modes d’activation, ajoutez le même appel au remplacement d’événement OnActivated :

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

Pour résumer, cette procédure décrit l’ajout, en quelques lignes de code, de la remise d’événements de notification hautement évolutifs et personnalisables à votre application Windows Store.

Envoi d’une notification avec .NET

Pour créer et envoyer des notifications, vous pouvez créer une application console ou une application Web, un script ou un service mobile. Si vous souhaitez faire appel à ce dernier, passez à la section suivante. Contrairement aux services similaires, le client ne doit pas forcément communiquer avec votre serveur principal.

Si vous utilisez Visual Studio Express 2012 pour Windows 8, accédez à la page Visual Studio Express 2012 pour Windows Desktop pour créer une application console. Consultez également la page Visual Studio Express 2012 pour le Web pour créer une application de formulaires Web simple.

Si vous choisissez une application console ou une application Web comme serveur principal, ajoutez des références à :

  • Microsoft.ServiceBus.Preview.dll

  • System.Runtime.Serialization.dll

Dans une application de formulaires Web ASP.NET, remplacez la page HTML default.aspx par une zone de texte et un bouton :

<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>

Dans le fichier default.aspx.cs, ajoutez la méthode Button1_Click et remplacez myhub par le nom de votre concentrateur de notification. Remplacez connectionstring par la chaîne de connexion de DefaultFullSharedAccessSignature, obtenue précédemment.

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);
}

Dans les applications, vous créez le NotificationHubClient une fois, que vous réutilisez ensuite.

Si vous créez une application console, utilisez l’extrait de code suivant en tant que fonction Main(). Procédez aux mêmes remplacements que ceux indiqués précédemment. Vous pouvez envoyer un message de notification particulier en appelant l’application avec un argument de chaîne entre guillemets. Le message par défaut est « 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);
}

N’importe quelle application peut envoyer un événement de notification. Si 10 000 instances de client sont inscrites, le concentrateur de notification crée et envoie les 10 000 copies de la notification, et procède à la gestion des erreurs et des inscriptions nécessaires. Pour apprendre à envoyer des notifications multi-plateformes, à cibler des utilisateurs et des groupes d'intérêts spécifiques, et découvrir d'autres fonctionnalités avancées, reportez-vous à la rubrique approfondie Procédure relative aux concentrateurs de notification Service Bus (applications Windows Store) et à la rubrique de présentation Concentrateurs de notification Windows Azure Service Bus.

Envoi d'une notification à l'aide d'un service mobile

Les services mobiles permettent de créer rapidement un serveur principal pour votre application. Vous pouvez utiliser les concentrateurs de notification à partir des services mobiles pour diffuser des notifications à des millions d'appareils ou pour créer facilement des groupes d'intérêts à l'aide de mots-clés.

Ce didacticiel fait appel à une tâche planifiée, mais vous pouvez envoyer des notifications à partir d'un script côté serveur dans votre service mobile.

  1. Créez un service mobile ou connectez-vous au vôtre. Pour plus d'informations sur le sujet suivant les services mobiles, consultez cette page.

  2. Dans la barre supérieure, cliquez sur Planificateur.

    Notifications push
  3. Créez une tâche planifiée, insérez un nom, puis cliquez sur À la demande.

    Notifications push
  4. Une fois la tâche créée, cliquez sur son nom. Dans la barre supérieure, cliquez sur Script.

  5. Insérez le script suivant. Veillez à remplacer les espaces réservés par le nom de votre concentrateur de notification et la chaîne de connexion pour DefaultFullSharedAccessSignature obtenue précédemment. Cliquez sur Enregistrer.

    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. Dans la barre inférieure, cliquez sur Exécuter une fois.

noteRemarque
Les services mobiles font appel au Kit de développement logiciel (SDK) pour Node.js afin d'accéder aux concentrateurs de notification. Pour plus d'informations sur le sujet suivant le Kit de développement logiciel (SDK) de Windows Azure pour Node.js avec les concentrateurs de notification, consultez cette page.

Comme ci-dessus, si 10 000 instances de client sont inscrites, le concentrateur de notification crée et envoie les 10 000 copies de la notification, et procède à la gestion des erreurs et des inscriptions nécessaires. Pour apprendre à envoyer des notifications multi-plateformes, à cibler des utilisateurs et des groupes d'intérêts spécifiques, et découvrir d'autres fonctionnalités avancées, reportez-vous à la rubrique approfondie Procédure relative aux concentrateurs de notification Service Bus (applications Windows Store) et à la rubrique de présentation Concentrateurs de notification Windows Azure Service Bus.

Ajouts de la communauté

Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft