Compartir a través de


Este artículo proviene de un motor de traducción automática.

EL programador ocupado

Sistema de notificaciones Growl: cuanto más sencillo, mejor

Ted Neward

Ted NewardEn todo el histrionismo que conseguir despertó alrededor de IU y UX, muchas veces uno pierde de vista el hecho de que a veces el mejor interfaz de usuario no es la pantalla más elegante, más deslumbrante de HTML/CSS/JavaScript o alucinantes animaciones, pero un simple mensaje escondido en la esquina. Mucho de lo que sucede, especialmente con los sistemas empresariales, son "decapitado" clases de operaciones con ninguna interfaz de usuario.

Tienes maneras de llegar al usuario, sin embargo y pedirle que realice acciones. Podrías construir un simple pequeña utilidad de interfaz de usuario para darte eso, o usted podría aprovechar la utilidad de alguien que ya está construida y depurado y probablemente tiene muchas más características que debe incluir.

Gruñido Basics

Gruñido (disponible para su descarga para Windows en growlforwindows.com) es el puerto de Windows de la utilidad de Mac del mismo nombre y es considerado como el "último sistema de notificación". Fundamentalmente, no es difícil de entender. Reside en su máquina, escondiéndose en la bandeja de notificación en la esquina inferior derecha de la vista del escritorio de Windows y a la escucha de notificaciones.

Cuando un mensaje llega a través de, aparece un cuadro de mensaje pequeño para alertar al usuario. Entonces usted puede enviar estos mensajes a través de la red como cifrados o protegidos con contraseña, para evitar que los rastreadores de red cuidado con el tráfico. Fundamentalmente, sin embargo, trata de proporcionar al usuario con los mensajes de notificación, a la de los mensajes "Tostadora" que solía ver cuando instantánea mensajería estaba caliente y MSN Messenger era una cosa. Eso es, en su mayor parte.

Tenga en cuenta que no todas las soluciones y utilidades de desarrollo tienen que ser estas maravillas arquitectónicas grandes, de gran escala. De hecho, a veces la solución más elegante a un problema a menudo es un componente pequeño, singularmente enfocado que sigue a la torre del homenaje es simple, principio estúpido (beso). Gruñido hace una cosa y hace bien: Le permite notificar a un usuario (o varios usuarios, si empiezas a pensar acerca de esto extiende a través de la red) de Mira que de lo contrario tendría delante de él.

Cuando presenté primero Growl, por ejemplo, fue como parte del sistema de compilación de roble. Esto era esencialmente un sistema de "continua construcción". Cualquier momento que se modifica un archivo fuente, desencadenaría una reconstrucción del proyecto. El problema, por supuesto, es si la reconstrucción no es algo que arrancó por el frente-y-centro de desarrolladores mirando Visual Studio, ¿cómo sabría el desarrollador sobre problemas de compilación? El sistema envía una notificación a gruñir, y subrepticiamente muestra los resultados de la compilación al usuario, ubicado en el rincón donde no exigen atención o interfiera con lo que está haciendo.

Gruñendo no hace falta mucho para pensar en otras situaciones donde esta funcionalidad puede ser útil, tanto dentro como fuera de un desarrollador -­con vocación de contexto. Para los desarrolladores, esto puede ser útil cuando larga duración ejecución de tareas (tales como las estructuras, las cargas de datos, procesos ETL y así sucesivamente) en el fondo, dándole una mano a mano cuando están terminados. A los administradores de sistemas, esto puede ser increíblemente útil para condiciones de error crítico que requieren intervención humana casi inmediata pero no garantizan la terminación de operaciones completamente.

Para el usuario, esto puede ser una herramienta útil para un montón de cosas, entre ellas una especie de "notificación push" sistema para aplicaciones dentro de la red corporativa, como cuando registros de datos particulares al usuario le preocupa (que actualmente está trabajando en, por ejemplo) se actualizan o cuando se produzcan eventos dentro del sistema (arranque, parada, mensajes de usuarios de todo el sistema, lo que sea) necesita ser empujada delante de los ojos del usuario. Juegos en red incluso podrían usarlo, decirle a un jugador cuando sea su turno.

Gruñido también le permite "reenviar" mensajes a otros ordenadores. Si no encuentro un mensaje destinado a llegar a tus ojos porque eres el almuerzo, puede configurar Growl para enviar ese mensaje a su teléfono, tableta o un grupo de otros equipos. También pudieras tenerlo envía un mensaje de correo electrónico o tweet (pública o directo mensaje) a una cuenta. Un usuario puede configurar Growl para reproducir sonidos (o no) sobre una base por-registrado-aplicación, establecer la prioridad de esas notificaciones sobre una base por-registrado-aplicación y así sucesivamente.

Gruñido puede no ser mucho, pero es un muy útil "no mucho" tipo de herramienta. La programación que es ridículamente simple. Una vez que has instalado Growl, puede enviar notificaciones Growl (de archivos por lotes o secuencias de comandos de Windows PowerShell, por ejemplo) utilizando la herramienta de línea de comandos "growlnotify" instalada en la carpeta de Growl para Windows. Patear uno utilizando el siguiente en la línea de comandos (suponiendo que es C:\Program Files\Growl para Windows, el directorio de instalación predeterminado Growl, en el camino):

growlnotify "This is a test message"

Asumiendo Growl fue instalado con éxito, responderá en la línea de comandos con "Notificación enviado con éxito". Una pequeña ventana de mensaje azul aparecerá en la esquina de su escritorio. Abrir el gruñido icono en la bandeja de notificación del sistema para examinar las opciones de configuración, incluyendo la posibilidad de reenviar los mensajes a otras máquinas y utilizar el parámetro de línea de comandos "/?" para explorar cómo enviar notificaciones Growl en toda la red. Experimento con algunas de estas opciones antes de leer más, porque las opciones visto aquí más o menos directamente reflejan las API disponibles al escribir el código para utilizar las notificaciones de Growl.

El gruñido SDK

El SDK de Growl es una capa delgada sobre el gruñido red transporte Protocolo (GNTP), un protocolo de TCP/IP de alambre reminiscencia de HTTP. Dado que Growl ha estado alrededor por un tiempo, no es sorprendente, hay varias bibliotecas construidas para abstraer los detalles de ese protocolo. Estos se denominan "Growl Connect" bibliotecas.

El mismo sitio Web (growlforwindows.com) desde que te los pedacitos de Growl para Windows también tiene enlaces a las bibliotecas de Microsoft .NET Framework para Growl, así como enlaces para C++, COM y aun SQL Server-a-gruño bibliotecas. (Piensa en esa última por un momento. Es un paquete que permiten utilizar scripts de SQL Server llegar y enviar una notificación a las partes interesadas, tales como los DBAs).

Una vez que las bibliotecas Growl .NET se tiran hacia abajo, abra el archivo .zip. Contiene una aplicación de ejemplo C# y una aplicación de muestra .NET Visual Basic , pero específicamente lo que quieres son los dos conjuntos de .NET en la carpeta de "bibliotecas": Growl.CoreLibrary.dll y Growl.Connector.dll. (Estos son también instalados como parte del gruñido en el directorio home de Growl, si la descarga SDK se pierde en algún lugar). En cualquier proyecto de .NET, simplemente referencia estas dos como las Asambleas de la biblioteca y las cosas están bien.

Conectar y registrar un Gruñido cliente necesita registrarse con Growl antes de que puede enviar notificaciones — Growl ignorará cualquier notificaciones que recibe de las aplicaciones no registradas. Afortunadamente, no sólo es un paso sólo una vez, pero el SDK, resulta bastante trivial. Crear un objeto GrowlConnector (incluyendo Puerto y nombre de host de destino si llegar a una máquina remota, si así lo desea) y entonces incluya algunos información sencilla sobre la solicitud de registro:

var connector = new GrowlConnector();
var thisApp = new Application("GrowlCL");
thisApp.Icon = @".
\app.png";

El icono puede ser un nombre de archivo, URL o matriz de bytes. (Ambas de estas clases, por cierto, vienen desde el espacio de nombres GrowlConnector).

Gruñido cree de notificaciones como agrupados por tipo. Un navegador Web podría enviar notificaciones "comenzado de descarga de los archivos", "descarga completada de los archivos" notificaciones y así sucesivamente. Un juego puede enviar "nuevo juego ofrecido," "jugador renunció", "tu turno," "otro jugador gira completa" y otros tipos similares de notificaciones. Gruñido quiere solicitudes de registro de estos tipos de notificación para que el usuario puede configurar cómo se manejará cada tipo de notificación. Un nuevo cliente de Growl necesita definir sus tipos de notificación y luego pasarlos al método GrowlConnector.Register para completar el registro:

// Two kinds of messages: insults and compliments
var insultType = new NotificationType("INSULT", "SICK BURN!");
var compType = new NotificationType("COMPLIMENT", "Nice message");
connector.Register(thisApp, new NotificationType[] { insultType, compType });

El primer parámetro es la cadena que usará su código para indicar el tipo de notificación. La segunda es la cadena que se mostrará en el gruñido de la aplicación del usuario cuando se ve. Como el objeto Application, NotificationType también tiene una propiedad Icon. Esto permite diferentes iconos que se muestra junto con el texto del mensaje sobre una base por-notification-type. No es necesario, pero sin duda ayuda al producto final parece más pulido.

Tenga en cuenta que si se ejecuta el código anterior, Growl aparecerá un mensaje diciendo: "GrowlCL ha registrado" si esta es la primera vez que esta aplicación se ha comunicado con la aplicación de Growl en esta máquina.

Notificar a una vez que la aplicación y sus tipos de notificación están registrados con Growl, es una cuestión bastante simple para enviar una notificación. Crear un objeto de notificación, en el nombre de la aplicación, la cadena tipo de notificación, un identificador opcional para identificar esta notificación (por qué deberías que llegaré a en un momento) y el título y el cuerpo del mensaje a enviar y luego enviar el objeto de notificación a Growl utilizando el método de notificación:

var notification = new Notification("GrowlCL", "INSULT", null, 
  "YO MAMA!",  "Your mama is so fat, she dropped an apple " + 
  "and it entered orbit around her.");
connector.Notify(notification);

Cuando la aplicación Growl recibe el mensaje, podrá aparecer en la esquina inferior (por defecto) de la pantalla.

Sí, realmente es así de fácil.

**¿Me oyes ahora?**A veces te gustaría saber lo que hizo con la notificación al usuario. ¿Ella solo cerrarla sin mirar, o ¿en realidad leyó el mensaje? Esto puede ser muy importante en los call centers, donde los supervisores necesitan saber si los empleados en realidad están leyendo las diarias Ofertas especiales venta, según sea necesario.

Gruñido permite esto mediante el registro de las devoluciones de llamada, que pueden ser métodos de controlador de eventos .NET o WebHooks — URLs que gruñe a publicar una solicitud HTTP que contiene datos como el parámetro ID antes mencionado de la notificación enviada. En el caso de la biblioteca de Growl conector no puede alcanzar la instancia específica de Growl, podrá emitir un error, pero sólo si el código del cliente ha registrado un controlador de eventos (ErrorResponse) en el objeto GrowlConnector.

El método controlador de eventos recibe un código de error y una descripción del error que parece casi idéntico a los códigos de error HTTP y descripciones, haciéndolos bastante clara. Los doctores Growl conector (el "Growl para Windows Application Inte­gración guía" en el .zip descargado de SDK) tiene una tabla listado todos estos errores, pero son todos bastante sencillos ("200 - TIMED OUT," "201 - fallo en la red" y así sucesivamente).

Es tan fácil

Gruñido no va a ganar ningún premio por "arquitectura más compleja". Si puede ser descrito casi por completo en un solo artículo de la revista, entonces definitivamente es una superficie muy simple, sencillo, bajo -­tipo de área de la herramienta. Que, en pocas palabras, es probablemente su mayor fortaleza. Francamente, es el mejor cumplido que cualquier técnico puede conceder en una biblioteca o una herramienta — es tan fácil de usar. ¡Que disfrute programando!

Ted Neward es el CTO en iTrellis, una empresa consultora de servicios. Ha escrito más de 100 artículos y es autor y coautor de una docena de libros, incluido “Professional F# 2.0” (Wrox, 2010). Es un MVP de C# y orador en conferencias alrededor del mundo. Consúltanos y mentores regularmente — llegar a él en ted@tedneward.com o ted@itrellis.com si usted está interesado en tenerlo venga a trabajar con su equipo, y leer su blog en blogs.tedneward.com.

Gracias a los siguientes expertos técnicos por su ayuda en la revisión de este artículo: Brian Dunnington (Consultor independiente)