(0) exportieren Drucken
Alle erweitern

Lernprogramm zu Service Bus-Benachrichtigungshubs (Windows Store-Apps)

noteHinweis
Benachrichtigungshubs sind in Windows Azure Service Bus als Vorschaufunktion seit Januar 2012 verfügbar. Die allgemeine Verfügbarkeit wird Mitte 2013 erwartet.

noteHinweis
Aufgrund der an Benachrichtigungshubs vorgenommenen Verbesserungen funktioniert das vor April 2013 heruntergeladene SDK nicht mit den neuen Benachrichtigungshubs. Ebenso funktioniert das aktuelle SDK nicht mit Benachrichtigungshubs, die vor April 2013 erstellt wurden. Bitte verwenden Sie die neuen Benachrichtigungshubs mit dem neuen SDK, um alle Vorteile der neuen Funktionen nutzen zu können, z. B. optimistische Parallelitätssteuerung. Die Unterstützung für Benachrichtigungshubs, die vor April 2013 erstellt wurden, wird beendet, wenn Benachrichtigungshubs in die allgemeine Verfügbarkeit übergehen.

Service Bus Benachrichtigungshubs sind Service Bus-Entitäten, die es einem Benutzer ermöglichen, Gerätepushbenachrichtigungen über Anwendungsplattformen von Drittanbietern wie z. B. den folgenden zu senden:

  • Windows Push Notification Services (WNS) für Windows 8.

  • Apple Push Notification Service (APNs).

  • Google Cloud Messaging (GCM).

Unterstützung für Microsoft Push Notification Service (MPNS) für Windows Phone wird ebenfalls bald verfügbar sein.

In diesem Lernprogramm wird das Einrichten einer Windows Store-Anwendung (in C# geschrieben) und einer einfachen ASP.NET MVC-Anwendung beschrieben, die eine Vorlagenbenachrichtigung mittels Push über WNS sendet.

Ein Thema mit einer ausführlichen Beschreibung So wird es gemacht: Service Bus-Benachrichtigungshubs (Windows Store-Apps) sowie eine Übersicht Windows Azure Service Bus-Benachrichtigungshubs ist ebenfalls verfügbar. Den Themenbereich zum Verwenden von Benachrichtigungshubs aus iOS-Apps finden Sie unter So wird es gemacht: Service Bus-Benachrichtigungshubs (iOS-Apps).

Voraussetzungen

Folgendes ist erforderlich, um die in diesem Lernprogramm beschriebenen Aufgaben auszuführen:

  • Ein Windows Store-Entwicklerkonto.

  • Service Bus .NET Preview SDK. Das SDK ist ein NuGet-Paket, das Funktionen von Service Bus Preview enthält. Sie können es hier herunterladen. Das Paket heißt ServiceBus Preview-Funktionen und enthält eine neue Service Bus-Bibliothek namens Microsoft.ServiceBus.Preview.dll. Damit Benachrichtigungshubs verwendet werden können, verwenden Sie diese Bibliothek anstelle der Produktionsversion (Microsoft.ServiceBus.dll).

  • Service Bus WinRT Managed SDK. Sie können dieses SDK hier herunterladen.

Vorbereiten der Windows 8-Entwicklung

Für den Einstieg in die Anwendungsentwicklung für Windows 8 ist ein Computer mit Windows 8 und die kostenlos herunterladbare Express Edition von Visual Studio oder eine andere Edition von Visual Studio 2012 erforderlich. Sobald Sie Ihr erstes Windows 8-Projekt erstellen, werden Sie aufgefordert, eine Entwicklerlizenz zu erstellen. Diese ist kostenlos und an Ihr Entwicklerkonto gebunden. Diese Lizenz ermöglicht den Sideloadvorgang von Apps in die moderne Benutzeroberfläche von Windows 8.

Damit Sie eine Windows Store-Anwendung in Windows Store veröffentlichen und Onlinedienst wie etwa die Identitätsintegration in Microsoft-Konten und WNS nutzen können, müssen Sie außerdem über ein Windows Store-Entwicklerkonto verfügen. Das Entwicklerkonto unterscheidet sich von der Entwicklerlizenz. Sie müssen über ein Entwicklerkonto verfügen, damit Sie dieses Lernprogramm ausführen können, da es in WNS integriert ist.

Registrieren Sie sich hier für ein Windows Store-Entwicklerkonto: https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start/.

Erstellen einer einfachen Windows Store-App

Live-Kacheln und Popups sind die zwei Elemente, die einer Remotebenachrichtigung Leben verleihen können. Die Windows-Shell übernimmt die Anzeige und Benachrichtigungen für diese Elemente. Die Anwendung informiert Windows, dass sie eine Benachrichtigung erwartet. Zu diesem Zweck sind nur wenige Codezeilen erforderlich. Mit dem Service Bus-Benachrichtigungshub SDK sind sogar noch weniger Codezeilen erforderlich.

  1. Erstellen Sie im ersten Schritt eine Windows Store-Anwendung aus einer der verfügbaren Vorlagen. Erstellen Sie ein C# Windows Store-Projekt in Visual Studio mit der Vorlage Raster-App. Weisen Sie dem Projekt einen Namen zu, etwa MyPushApp. Die Vorlage Raster-App ist ein guter Ausgangspunkt für Übertragungs- und tagorientierte Pushbenachrichtigungen (z. B. neue Anwendungen), die von Benachrichtigungshubs bereitgestellt werden.

  2. Klicken Sie mit der rechten Maustaste auf den Projektknoten, und klicken Sie dann auf das Menü Store. Klicken Sie auf App mit Store verknüpfen. Ein Assistenten-Fenster führt Sie dann schrittweise durch das Verknüpfen dieses Projekts mit einer Windows Store-App-Registrierung. Das Windows Store-Entwicklerkonto ist erforderlich. Nach dem Anmeldeschritt zeigt eine Seite Ihre vorhandenen App-Registrierungen an. Wenn Sie keine Apps registriert haben, wird auf der nächsten Seite eine leere Liste wie im folgenden Beispiel angezeigt.

    Windows Store-Anwendung
  3. In beiden Fällen wird ein Link zum Erstellen einer Registrierung im Entwicklerportal angezeigt. Wenn Sie über Apps verfügen, ist dieser Link die oberste Zeile in der Liste. Klicken Sie auf den Link, und navigieren Sie dann zum Dashboard des Stores. Führen Sie den ersten Schritt aus, und weisen Sie der Anwendung einen eindeutigen Namen für Windows Store zu. Verwenden Sie nicht MyPushApp wie unten gezeigt, weil dieser Name bereits verwendet wird.

    Windows Store-Anwendung
  4. Nachdem Sie den App-Namen reserviert haben, speichern Sie, und überspringen Sie dann den Schritt Services.

    Windows Store-Anwendung
  5. Folgen Sie dem Link zu den Informationen zu Live Services, wie hier gezeigt:

    Windows Store-Anwendung
  6. Klicken Sie im Abschnitt zu den Pushbenachrichtigungen auf Authentifizieren des Diensts. Kopieren Sie zwei wichtige Informationen: Die SID (Sicherheits-ID) des Pakets und den geheimen Clientschlüssel.

  7. Wechseln Sie zurück zu Visual Studio. Der geöffnete Assistent wird automatisch aktualisiert und zeigt die neue Reservierung an. Wählen Sie die Zeile aus, und klicken Sie dann auf Weiter und auf der folgenden Seite auf Zuordnen. Ihr Projekt und die Registrierung in Windows Store werden verknüpft, und Ihre App verfügt über Berechtigungen für die Verwendung von WNS.

Erstellen und Konfigurieren eines Service Bus-Benachrichtigungshubs

Ordnen Sie die App nach der grundlegenden Einrichtung der Windows-App und des zugehörigen Windows Store-Profils einem neuen Service Bus-Benachrichtigungshub zu.

  1. Melden Sie sich am Windows Azure-Verwaltungsportal an. Klicken Sie dann unten links auf der Seite auf NEU.

  2. Navigieren Sie zu App-Dienste, zu Service Bus und dann zu Benachrichtigungshub. Klicken Sie auf Schnellerfassung, und geben Sie einen Namen für den Benachrichtigungshub ein. Wählen Sie eine geografische Region und den Service Bus-Namespace aus, in dem der Benachrichtigungshub erstellt wird. Wenn keine Namespaces verfügbar sind, wird ein neuer Namespace mit dem angegebenen Namen erstellt.

    Erstellen eines Service Bus-Benachrichtigungshubs
  3. Klicken Sie zum Erstellen des Benachrichtigungshubs auf das Häkchen. Nachdem Sie die Registerkarte Service Bus im linken Navigationsbereich ausgewählt haben, klicken Sie auf den neu erstellten (oder wiederverwendeten) Namespace. Der neue Benachrichtigungshub wird in der Liste angezeigt.

    Service Bus-Benachrichtigungshub
  4. Klicken Sie auf den Benachrichtigungshub. Die Übersichtsseite des Benachrichtigungshubs wird angezeigt. Klicken Sie oben auf die Registerkarte Konfigurieren.

    Service Bus-Benachrichtigungshub
  5. Fügen Sie die Paket-SID und den geheimen Clientschlüssel ein. Klicken Sie dann auf der unteren Symbolleiste auf Speichern.

  6. Navigieren Sie noch nicht zu einem anderen Element. Klicken Sie im Benachrichtigungshub auf Verbindungsinformationen, und notieren Sie sich die beiden Verbindungszeichenfolgen. Diese Werte werden zum Abrufen des Zugriffs auf den Benachrichtigungshub zur Laufzeit verwendet. Sie müssen diese Verbindungszeichenfolgen abrufen, wenn Sie dieses Szenario abschließen.

    Service Bus-Benachrichtigungshub

Herstellen einer Verbindung mit der App

Ihre Raster-App ist bereits mit ihrem Windows Store-Profil verknüpft. Dieses ist seinerseits mit dem Benachrichtigungshub verknüpft. Jetzt senden Sie der Anwendung in dieser schnellen ersten exemplarischen Vorgehensweise eine "Popup"-Benachrichtigung.

Aktivieren Sie zuerst die Popupfunktion im Manifest. Dies geschieht in Visual Studio 2012.

  1. Doppelklicken Sie im Projektmappen-Explorer auf Package.appxmanifest.

  2. Suchen Sie nach der Eigenschaft Toastfähig, und legen Sie diese auf true fest. Speichern und schließen Sie dann die Anwendung.

    <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. Die App muss muss sich beim Benachrichtigungshub zur Laufzeit registrieren, damit die jeweilige App-Instanz dem System bekannt ist. Unter technischen Gesichtspunkten registriert sich die App bei WNS und beim Benachrichtigungshub. Die Service Bus-API verbindet diese separaten Schritte jedoch zu einem einzigen Schritt. Sie speichert außerdem die Einstellungen über Anwendungsneustarts hinweg. In den App-Einstellungen müssen Sie eine Möglichkeit für Benutzer vorsehen, Benachrichtigungen zu deaktivieren. Weitere Informationen finden Sie in den Windows Store-Richtlinien. Diese Informationen werden nicht in dieser exemplarischen Vorgehensweise behandelt.

  4. Fügen Sie zum Implementieren des Pushbenachrichtigungsclients einen Verweis auf Microsoft.WindowsAzure.Messaging.Managed.dll für WinRT aus Ihrem Projekt hinzu. Laden Sie diese DLL hier herunter.

  5. Klicken Sie in Ihrem Visual Studio-Projekt mit der rechten Maustaste auf den Knoten Verweise, und fügen Sie dann den neuen Verweis hinzu. Navigieren Sie im Dialogfeld zum Speicherort der Assembly, und wählen Sie sie aus.

  6. Öffnen Sie die Datei App.xaml.cs.

  7. Fügen Sie die folgenden using-Anweisungen hinzu:

    using Microsoft.WindowsAzure.Messaging;
    using System.Threading.Tasks;
    using Windows.Data.Xml.Dom;
    using Windows.UI.Notifications;
    using Windows.Networking.PushNotifications; 
    
    
  8. Fügen Sie in der Klasse App ein Feld zum Speichern eines Verweises auf die NotificationHub-Clientklasse für die Anwendung hinzu – aus der Service Bus-Benachrichtigungs-API:

    sealed partial class App : Application
    {
        NotificationHub notificationHub;
    
    
  9. Initialisieren Sie den notificationHub im Konstruktor. Ersetzen Sie connectionstring durch die zuvor abgerufene Verbindungszeichenfolge, die der Regel DefaultListenSharedAccessSignature zugeordnet ist. Dies ermöglicht Ihnen das Erstellen einer Aufrufsignatur, die die Zugriffsrechte zum Hinzufügen einer neuen Registrierung ausdrückt. Es werden keine weiteren Rechte erteilt. Ersetzen Sie myhub durch den Namen Ihres Benachrichtigungshubs.

    public App()
    {
        notificationHub = new NotificationHub("myhub", "connectionstring");
    
        this.InitializeComponent();
        this.Suspending += OnSuspending;
    }
    
  10. Fügen Sie zwei Methoden hinzu, um Benachrichtigungen zu initialisieren und die Registrierung beim Start der App zu erneuern. Das erste Methode ist InitializeNotificationsAsync. Diese Methode ruft erneut den WNS-channelURI ab und stellt sicher, dass er beim Benachrichtigungshub registriert wird.

    async Task InitializeNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        await notificationHub.RegisterNativeAsync(channel.Uri);
    }
    
  11. Markieren Sie zum Hinzufügen der Initialisierungsfunktion zur App die Methode OnLaunched als asynchron, und fügen Sie dann den erforderlichen Aufruf hinzu:

    protected async override void OnLaunched(LaunchActivatedEventArgs args)
    {
        await InitializeNotificationsAsync();
    
  12. Fügen Sie zum Ausführen der Registrierung für andere Aktivierungsmodi den gleichen Aufruf der Ereignisaußerkraftsetzung OnActivated hinzu:

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

Fassen wir zusammen: Dieses Verfahren hat gezeigt, wie eine hochgradig skalierbare und anpassbare Übermittlung von Benachrichtigungsereignissen Ihrer Windows Store-App mit wenigen Codezeilen hinzugefügt werden kann.

Senden einer Benachrichtigung mithilfe von .NET

Wenn Sie Benachrichtigungen erstellen und senden möchten, können Sie eine Konsolenanwendung oder eine Webanwendung oder ein Skript erstellen, oder Sie können einen mobilen Dienst verwenden. Wenn Sie einen mobilen Dienst zum Senden von Benachrichtigungen verwenden möchten, überspringen Sie den nächsten Abschnitt. Im Gegensatz zu ähnlichen Diensten ist es nicht erforderlich, dass der Client mit Ihrem Back-End kommuniziert.

Wenn Sie Visual Studio Express 2012 für Windows 8 verwenden, navigieren Sie zu Visual Studio Express 2012 für Windows Desktop, um eine Konsolenanwendung zu erstellen. Sie können auch Visual Studio Express 2012 für das Web verwenden, um eine einfache Web Forms-App zu erstellen.

Unabhängig davon, ob Sie eine Konsolenanwendung oder eine Webanwendung als Back-End auswählen, fügen Sie Verweise auf Folgendes hinzu:

  • Microsoft.ServiceBus.Preview.dll

  • System.Runtime.Serialization.dll

Ersetzen Sie in einer ASP.NET Web Forms-App die HTML-Seite default.aspx durch ein Textfeld und eine Schaltfläche:

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

Fügen Sie in der Datei default.aspx.cs die Methode Button1_Click hinzu, und ersetzen Sie myhub durch den Namen Ihres Benachrichtigungshubs. Ersetzen Sie connectionstring durch die Verbindungszeichenfolge für DefaultFullSharedAccessSignature, die Sie zuvor abgerufen haben.

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

In Anwendungen erstellen Sie NotificationHubClient ein Mal und verwenden den Client dann erneut.

Wenn Sie eine Konsolenanwendung erstellen, verwenden Sie den folgenden Codeausschnitt als Main()-Funktion. Nehmen Sie die gleichen Ersetzungen wie weiter oben beschrieben vor. Sie können eine bestimmte Benachrichtigungsnachricht senden, indem Sie die App mit einem Zeichenfolgenargument in Anführungszeichen aufrufen. Die Standardnachricht lautet "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);
}

Jede Anwendung kann ein Benachrichtigungsereignis senden. Wenn 10.000 Clientinstanzen registriert sind, erstellt und sendet der Benachrichtigungshub 10.000 Benachrichtigungskopien und führt die erforderliche Fehlerbehandlung und Registriertungsverwaltung aus. Weitere Informationen zum Senden von Benachrichtigungen für mehrere Plattformen, zur Zielgruppenadressierung von Benutzern und Interessengruppen sowie zu anderen erweiterten Funktionen finden Sie im ausführlichen Thema So wird es gemacht: Service Bus-Benachrichtigungshubs (Windows Store-Apps) und in der Übersicht Windows Azure Service Bus-Benachrichtigungshubs.

Senden einer Benachrichtigung mithilfe eines mobilen Diensts

Mit Mobile Dienste können Sie schnell ein Back-End für Ihre Anwendung erstellen. Sie können Benachrichtigungshubs aus Mobile Dienste zum Übertragen von Nachrichten an Millionen von Geräten oder zum einfachen Erstellen von Interessengruppen mithilfe von Tags verwenden.

Dieses Lernprogramm verwendet einen geplanten Auftrag. Sie können jedoch Benachrichtigungen aus einem beliebigen serverseitigen Skript in Ihrem mobilen Dienst verwenden.

  1. Erstellen Sie einen neuen mobilen Dienst, oder melden Sie sich bei Ihrem eigenen Dienst an. Den Themenbereich zu mobilen Diensten finden Sie hier.

  2. Klicken Sie auf der oberen Leiste auf Planer.

    Pushbenachrichtigungen
  3. Erstellen Sie einen neuen geplanten Auftrag, fügen Sie einen Namen ein, und klicken Sie dann auf On Demand.

    Pushbenachrichtigungen
  4. Nachdem der Auftrag erstellt wurde, klicken Sie auf den Namen des Auftrags. Klicken Sie dann auf der oberen Leiste auf Skript.

  5. Fügen Sie das folgende Skript ein. Ersetzen Sie unbedingt die Platzhalter durch den Namen Ihres Benachrichtigungshubs und die Verbindungszeichenfolge für DefaultFullSharedAccessSignature, die Sie in einem früheren Schritt abgerufen haben. Klicken Sie auf Speichern.

    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. Klicken Sie auf der unteren Leiste auf Einmal ausführen.

noteHinweis
Mobile Dienste verwenden das Windows Azure SDK für Node.js für den Zugriff auf Benachrichtigungshubs. Den Themenbereich zum Windows Azure SDK für Node.js mit Benachrichtigungshubs finden Sie hier.

Wenn 10.000 Clientinstanzen registriert sind, erstellt und sendet der Benachrichtigungshub wie oben beschrieben 10.000 Benachrichtigungskopien und führt die erforderliche Fehlerbehandlung und Registriertungsverwaltung aus. Weitere Informationen zum Senden von Benachrichtigungen für mehrere Plattformen, zur Zielgruppenadressierung von Benutzern und Interessengruppen sowie zu anderen erweiterten Funktionen finden Sie im ausführlichen Thema So wird es gemacht: Service Bus-Benachrichtigungshubs (Windows Store-Apps) und in der Übersicht Windows Azure Service Bus-Benachrichtigungshubs.

Community-Beiträge

Anzeigen:
© 2014 Microsoft