Implementación de Colas MSMQ
Seleccionar en Control de Panel “Agregar o
Quitar Programas” y en el “Asistente para componentes de Windows” activar
“Message Queue Server”
Posteriormente en la ventana de comandos
ejecutar el Administrador de Equipo (Computer Management ) ubicándose en Mi PC
clikc derecho Administración.
Activar
el Servicios de Aplicaciones para llegar a la opción Message Queue Service,
seleccionar la carpeta Colas Privadas y con click derecho seleccionar Nuevo
Luego en Visual
Studio se agrega un proyecto de la plantilla Visual
C# seleccionar Windows, y será de tipo Aplicación Consola la cual
llamaremos AplicaciónCliente donde creará por default la clase Program.cs el cual se deberá renombrar a Cliente.cs
Dentro de Program se cra la clase Cliente
La public class Cliente {}
declara un arreglo: static
void Main(string[]
args)
declara una variable llamada rutaCola
string rutaCola = @".\private$\Pruebas";
el nombre debe coincidir con el nombre creado en el Message Queueing del
Computer Managment
y se debe generar un condicional:
if
(!MessageQueue.Exists(rutaCola))
MessageQueue.Create(rutaCola);
MessageQueue
cola = new MessageQueue(rutaCola);
Message mensaje = new Message();
mensaje.Label = "Nueva nota";
mensaje.Body = new Nota() {
Alumno = "Magdalena", PC1 = 19 };
cola.Send(mensaje);
Console.ReadLine();
Donde verifica si el mensaje existe en la carpeta del Message Queue Server del
Panel de Control, para lo cual en la carpeta References de la Clase AplicaciónCliente se agrega la referencia System.Messaging de la pestaña .Net
Si no existe el mensaje se crea con el método Message() al cual se le agrega un titulo, y el cuerpo con valores fijos
(hardcodeado).
Luego se genera la clase Nota donde se declara las variables de los valores generados en el método anterior.
public class Nota {}
y dentro de esta clase se crean las variables Alumno y PC1 Que
corresponderá a la Nota1
public
string Alumno { get;
set; }
public int PC1 {get; set;}
A continuación se ejecuta la Aplicación Consola generada en el Visual
Studio
Aparecerá una pantalla indicando que ya se está
generando el envío del mensaje desde el cliente a la cola del servidor .
Para poder ver el mensaje ir a Mi PC, click
derecho Administrar y se podrá visualizar en Administración de equipos, dentro
de Servicios y Aplicaciones, en la opción Message Queue Service.
En este
ejemplo se ha realizado un mensaje generado desde el aplicativo Visual Studio
(valores hardcodeados) - Cliente hacia Message
Queue Server del windos –Servidor.
Ahora se
realizará al revés. Se tomará el mensaje de Cliente a Servidor , (Message Queue Server) y este será
enviado a la consola cliente : Se agrega un proyecto de la plantilla Visual C# (seleccionar Windows)
y
será de tipo Aplicación Consola la
cual llamaremos AplicaciónServidor donde
creará por default la clase Program.cs el
cual se deberá renombrar a Servidor.cs
A
continuación se muestra el código de
dicha clase comparándolo con el código anterior
y viendo sus diferencias:
De igual forma en la Clase AplicaciónCliente se tiene que agregar la
referencia System.Messaging
en en la
carpeta References
desde la pestaña .Net
Se
puede observar que la lógica es la misma,
solo que después del envío del mensaje de cliente a servidor, verifica
que este exista. Si existe utiliza la misma variable de la ruta para una
segunda cola, por la cual recibirá el
segundo mensaje , el cual estará compuesto por los valores de las variables del
primer mensaje concatenadas con las del segundo mensaje.