¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
MSDN Library

Tutorial del centro de notificaciones de Service Bus (aplicaciones de la Tienda Windows)

noteNota
Los centros de notificaciones están disponibles en Service Bus de Windows Azure como característica preliminar en enero de 2013. Se espera que la transición hacia la disponibilidad general se realice a mediados de 2013.

noteNota
Como resultado de las mejoras realizadas en los centros de notificaciones, el SDK que descargó antes de abril de 2013 no funcionará con los nuevos centros de notificaciones. A la inversa, el SDK actual no funcionará con los centros de notificaciones creados antes de abril de 2013. Comience a utilizar los nuevos centros de notificaciones con el nuevo SDK para aprovechar todas las características nuevas, como el control de simultaneidad optimista. El soporte técnico para los centros de notificaciones creados antes de abril de 2013 finalizará cuando los centros de notificaciones estén disponibles de forma general.

Los centros de notificaciones de Service Bus son entidades de Service Bus que permiten a los usuarios enviar notificaciones de inserción a través de plataformas de aplicación de terceros, entre las que se incluye:

  • Servicios de notificaciones de inserción de Windows (WNS) para Windows 8.

  • Servicio de notificaciones de inserción de Apple (APNs).

  • Google Cloud Messaging (GCM).

Próximamente se agregará compatibilidad para el Servicio de notificaciones de inserción de Microsoft (MPNS) para Windows Phone.

En este tutorial se describe cómo configurar una aplicación de la Tienda Windows (escrita en C#) y una aplicación ASP.NET MVC sencilla que inserta una notificación de plantilla a través de WNS.

También hay disponibles un tema que trata Procedimiento: centros de notificaciones de Service Bus (aplicaciones de la Tienda Windows) en profundidad e información general sobre Centros de notificaciones de Windows Azure Service Bus. Para obtener más información sobre cómo utilizar el Centro de notificaciones de las aplicaciones de iOS, consulteProcedimiento: centros de notificaciones de Service Bus (aplicaciones de iOS),

Requisitos previos

Para realizar las tareas que se explican en este tutorial, se requiere lo siguiente:

  • Una cuenta de desarrollo de la Tienda Windows.

  • SDK de Service Bus .NET Preview. El SDK es un paquete NuGet que contiene características preliminares de Service Bus. Se puede descargar desde aquí. Es paquete incluye características preliminares de Service Bus y una nueva biblioteca de Service Bus llamada Microsoft.ServiceBus.Preview.dll. Para usar los centros de notificaciones, use esta biblioteca en lugar de la biblioteca de la versión de producción (Microsoft.ServiceBus.dll).

  • SDK administrado de Service Bus WinRT. Puede descargarlo desde aquí.

Preparación para el desarrollo de Windows 8

Para iniciar el desarrollo de aplicaciones para Windows 8 se requiere un equipo con Windows 8 PC y la versión Express de Visual Studio descargable de forma gratuita o cualquier edición de Visual Studio 2012. Al crear el primer proyecto de Windows 8, se le solicita que cree una licencia de desarrollador, que es gratuita y está vinculada a su cuenta de desarrollador. Esta licencia le permite cargar aplicaciones de forma paralela en la moderna interfaz de usuario de Windows 8.

Para publicar una aplicación de la Tienda Windows a esta y para sacar partido de los servicios en línea, tal como la integración de identidades con cuentas Microsoft y WNS, también debe disponer de una cuenta de desarrollador de la Tienda Windows. La cuenta de desarrollador es distinta de la licencia de desarrollador. Necesita una cuenta de desarrollador para realizar este tutorial porque se integra con WNS.

Para obtener una cuenta de desarrollador de la Tienda Windows, comience aquí: https://appdev.microsoft.com/StorePortals/es-es/Account/Signup/Start/.

Crear una aplicación sencilla de la Tienda Windows

Los iconos dinámicos y las notificaciones del sistema son dos elementos que una notificación remota puede animar. El shell de Windows controla la visualización y las alertas de estos elementos. La aplicación notifica a Windows que espera una notificación y eso solo requiere unas pocas líneas de código. Con el SDK del centro de notificaciones de Service Bus, requiere incluso menos líneas de código.

  1. Para comenzar, cree una aplicación de la Tienda Windows a partir de una de las plantillas disponibles. Cree un proyecto de Tienda Windows de C# en Visual Studio mediante la plantilla Aplicación de cuadrícula. Asígnele un nombre, por ejemplo, MyPushApp. La plantilla Aplicación de cuadrícula es un buen punto de partida para las notificaciones de inserción de difusión y dirigidas a etiquetas, tales como aplicaciones de noticias, tal como proporcionan los centros de notificaciones.

  2. Haga clic con el botón secundario en el nodo del proyecto y haga clic en Tienda. Haga clic en Asociar aplicación con la Tienda. Un asistente le guiará por el proceso de asociar este proyecto con un registro de aplicación de la Tienda Windows. Se necesitará una cuenta de desarrollador de la Tienda Windows. Tras iniciar sesión, aparecerá una página con los registros de aplicación existentes. Si no hay aplicaciones registradas, la página siguiente muestra una lista vacía, tal como se muestra aquí.

    Aplicación de la Tienda Windows
  3. En cualquiera de los casos, aparece un vínculo para crear un registro en el portal de desarrolladores. Si tiene aplicaciones, el vínculo es la primera línea de la lista. Haga clic en él y vaya al panel de la tienda. Realice el primer paso y asigne un nombre exclusivo a la aplicación para la Tienda Windows. No use MyPushApp tal como se muestra a continuación porque ya está en uso.

    Aplicación de la Tienda Windows
  4. Cuando haya reservado el nombre de aplicación, guarde y vaya al paso Servicios.

    Aplicación de la Tienda Windows
  5. Siga el vínculo a la información de Servicios Live, como se muestra a continuación:

    Aplicación de la Tienda Windows
  6. En la sección de notificaciones de inserción, haga clic en Autenticación del servicio. Copie dos elementos importantes de información: el identificador de seguridad del paquete (SID) y el secreto de cliente.

  7. Vuelva a Visual Studio. El asistente abierto se actualiza automáticamente y muestra la nueva reserva. Seleccione la línea y haga clic en Siguiente y en Asociar en la página siguiente. El proyecto y el registro en la Tienda Windows se vinculan y la aplicación tiene permiso para usar WNS.

Crear y configurar un centro de notificaciones de Service Bus

Después de realizar la configuración básica de la aplicación de Windows y su perfil de la Tienda Windows correspondiente, asocie la aplicación con el nuevo centro de notificaciones de Service Bus.

  1. Inicie sesión en el Portal de administración de Windows Azure. Haga clic en NEW en la esquina inferior izquierda de la página.

  2. Vaya a App Services, Service Bus y, a continuación, al Centro de notificaciones. Haga clic en Quick Create y escriba un nombre para el centro de notificaciones. Seleccione una región geográfica y el espacio de nombres de Service Bus en el que se creará el centro de notificaciones. Si no hay espacios de nombres disponibles, se creará uno nuevo con el nombre especificado.

    Crear un concentrador de notificaciones de Service Bus
  3. Para crear el centro de notificaciones, haga clic en la marca de verificación. Tras seleccionar la pestaña de Service Bus en el panel de navegación izquierda, haga clic en el espacio de nombres nuevo o reutilizado. El nuevo centro de notificaciones aparece en la lista.

    Concentrador de notificaciones de Service Bus
  4. Haga clic en el centro de notificaciones. Aparece la página de información general del centro de notificaciones. A continuación, haga clic en la pestaña Configure de la parte superior.

    Concentrador de notificaciones de Service Bus
  5. Inserte el SID del paquete y el secreto de cliente. Luego haga clic en Save en la barra de herramientas inferior.

  6. Todavía no se desplace de la página. En el Centro de notificaciones, haga clic en Información de conexión y tome nota de las dos cadenas de conexión. Los valores se usan para obtener acceso al Centro de notificaciones en el tiempo de ejecución. Debe obtener estas cadenas de conexión al completar este escenario.

    Concentrador de notificaciones de Service Bus

Conectar la aplicación

La aplicación de cuadrícula ya está vinculada a su perfil de la Tienda Windows y al centro de notificaciones. Ahora puede enviar a la aplicación una alerta de notificación del sistema en este primer tutorial rápido.

En primer lugar, en Visual Studio 2012, habilite la capacidad de notificación del sistema en el manifiesto.

  1. En el Explorador de soluciones, haga doble clic en Package.appxmanifest.

  2. Ubique la propiedad Capacidad de aviso y defínala como verdadera. A continuación, guarde y cierre la aplicación.

    <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. La aplicación debe registrarse en el centro de notificaciones en tiempo de ejecución de modo que el sistema pueda conocer la instancia de la aplicación concreta. Técnicamente, la aplicación se registra tanto en WNS como en el centro de notificaciones, pero la API de Service Bus unifica estos pasos en uno solo. También recuerda la configuración entre todos los reinicios de aplicación. En la configuración de la aplicación, debe proporcionar una manera para que los usuarios deshabiliten las notificaciones. Consulte las Directrices de la Tienda Windows. Esta información no se cubre en este tutorial.

  4. Para implementar el cliente de notificación de inserción, agregue una referencia a Microsoft.WindowsAzure.Messaging.Managed.dll para WinRT en el proyecto. Descárguelo desde aquí.

  5. Haga clic con el botón secundario del mouse en el nodo Referencias del proyecto de Visual Studio y agregue la nueva referencia. En el cuadro de diálogo, desplácese hasta la ubicación del ensamblado y selecciónelo.

  6. Abra el archivo App.xaml.cs.

  7. Agregue las instrucciones using siguientes:

    using Microsoft.WindowsAzure.Messaging;
    using System.Threading.Tasks;
    using Windows.Data.Xml.Dom;
    using Windows.UI.Notifications;
    using Windows.Networking.PushNotifications; 
    
    
  8. En la clase App, agregue un campo para retener una referencia a la clase de cliente NotificationHub para la aplicación, desde la API de notificación de Service Bus:

    sealed partial class App : Application
    {
        NotificationHub notificationHub;
    
    
  9. Inicialice el notificationHub en el constructor. Sustituya connectionstring por la cadena de conexión obtenida anteriormente, asociada con la regla DefaultListenSharedAccessSignature. Esto le permite crear una firma de llamada que expresa los derechos de acceso para agregar un registro nuevo. No concede derechos adicionales. Sustituya myhub por el nombre del Centro de notificaciones.

    public App()
    {
        notificationHub = new NotificationHub("myhub", "connectionstring");
    
        this.InitializeComponent();
        this.Suspending += OnSuspending;
    }
    
  10. Para inicializar notificaciones y renovar el registro al iniciarse la aplicación, agregue dos métodos. El primero es InitializeNotificationsAsync. Este método vuelve a adquirir el channelURI de WNS y comprueba que está registrado en el centro de notificaciones.

    async Task InitializeNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        await notificationHub.RegisterNativeAsync(channel.Uri);
    }
    
  11. Para agregar la función de inicialización a la aplicación, marque el método OnLaunched como asíncrono y agregue la llamada necesaria:

    protected async override void OnLaunched(LaunchActivatedEventArgs args)
    {
        await InitializeNotificationsAsync();
    
  12. Para realizar el registro de otros modos de activación, agregue la misma llamada a la invalidación de evento OnActivated:

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

En resumen, en este procedimiento se mostró cómo agregar la entrega altamente escalable y personalizable de eventos de notificación a una aplicación de la Tienda Windows con tan solo unas pocas líneas de código.

Enviar una notificación mediante .NET

Para crear y enviar notificaciones, puede crear una aplicación de consola, una aplicación web o un script o usar Mobile Services. Si desea usar Mobile Services para enviar notificaciones, vaya a la sección siguiente. A diferencia de servicios similares, no hace falta que el cliente se comunique con el servidor back-end.

Si usa Visual Studio Express 2012 for Windows 8, vaya a Visual Studio Express 2012 para escritorio de Windows para crear una aplicación de consola. O bien, use Visual Studio Express 2012 para Web para crear una aplicación Web Forms sencilla.

Ya sea que elija una aplicación de consola o una aplicación web como servidor back-end, agregue referencias a lo siguiente:

  • Microsoft.ServiceBus.Preview.dll

  • System.Runtime.Serialization.dll

En una aplicación de ASP.NET Web Forms, reemplace la página HTML default.aspx con un cuadro de texto y un botón:

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

En el archivo default.aspx.cs, agregue el método Button1_Click y sustituya myhub por el nombre del Centro de notificaciones. Sustituya connectionstring por la cadena de conexión para DefaultFullSharedAccessSignature obtenida anteriormente.

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

En las aplicaciones, NotificationHubClient se crea una vez y se vuelve a usar.

Si se crea una aplicación de consola, use el fragmento siguiente como función Main(). Realice los mismos reemplazos que los mencionados anteriormente. Para enviar un mensaje de notificación concreto, llame a la aplicación con un argumento de cadena entre comillas. El mensaje predeterminado es “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);
}

Cualquiera de las aplicaciones puede enviar un evento de notificación. Si se registran 10.000 instancias de cliente, el centro de notificaciones crea y envía las 10.000 copias de la notificación y realiza el control de errores y la administración de registros necesarios. Para obtener más información sobre cómo enviar notificaciones multiplataforma, dirigirse a usuarios y grupos de interés específicos y otras características avanzadas, consulte el tema detallado Procedimiento: centros de notificaciones de Service Bus (aplicaciones de la Tienda Windows) y la información general de Centros de notificaciones de Windows Azure Service Bus.

Enviar una notificación mediante Mobile Services

Mobile Services le permite crear rápidamente un back-end para su aplicación. Puede usar los centros de notificaciones de Mobile Services para difundir notificaciones en millones de dispositivos o crear fácilmente grupos de interés mediante etiquetas.

En este tutorial se usa un trabajo programado, pero puede enviar notificaciones desde cualquier script de servidor de su servicio móvil.

  1. Crear servicios móviles o iniciar sesión en uno propio. Para obtener más información sobre Mobile Services, vaya aquí.

  2. En la barra superior, haga clic en Programador.

    Notificaciones de inserción
  3. Cree un trabajo programado nuevo, inserte un nombre y haga clic en A petición.

    Notificaciones de inserción
  4. Después de crear el trabajo, haga clic en el nombre correspondiente. A continuación, en la barra superior, haga clic en Script.

  5. Inserte el script siguiente. Asegúrese de sustituir los marcadores de posición con el nombre del centro de notificaciones y la cadena de conexión de DefaultFullSharedAccessSignature que obtuvo previamente. Haga clic en Guardar.

    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. En la barra inferior, haga clic en Ejecutar una vez.

noteNota
Mobile Services usa el SDK de Windows Azure para que Node.js pueda acceder a los centros de notificaciones. Para obtener más información sobre el SDK de Windows Azure para Node.js con centros de notificaciones, vaya aquí.

Igual que el anterior, si se registran 10.000 instancias de cliente, el centro de notificaciones crea y envía las 10.000 copias de la notificación y realiza el control de errores y la administración de registros necesarios. Para obtener más información sobre cómo enviar notificaciones multiplataforma, dirigirse a usuarios y grupos de interés específicos y otras características avanzadas, consulte el tema detallado Procedimiento: centros de notificaciones de Service Bus (aplicaciones de la Tienda Windows) y la información general de Centros de notificaciones de Windows Azure Service Bus.

Adiciones de comunidad

Mostrar:
© 2015 Microsoft