Buenos días foreros !!!
Verán, estoy haciendo una aplicación de mensajeria tipo MSN. Pues bien, estoy realizando una clase, ClsSocket, para manejar más facilmente el tema de los sockets.
Dicha clase tendrá eventos como: MensajeRecibido, AltaUsuario, BajaUsuario, y métodos como EnviarMensaje, Conectar, Desconectar.
Muy bien, hasta aqui todo perfecto, ningún problema, escuchas asincrónas que cuando finalizan llaman al evento correspondiente y demás. Todo perfect.
Sin embargo... tengo un dilema. Mi aplicación va a tener un formulario principal, donde verá sus usuarios conectados y demás. Y desde donde podrá abrir una ventana con un usuario para hablar con él.
Bien, este formulario principal será donde haya una instancia de ClsSocket y donde estén escuchando los Eventos MensajeRecibido, AltaUsuario, BajaUsuario. De tal forma que cuando recibia un MensajeRecibido, abriré(Sino existe) una ventana nueva para el usuario en cuestión. Todo perfecto.
Sin embargo... esta nueva ventana abierta, tendrá que usar el Metodo EnviarMensaje, cuya instancia está solo en el formulario principal. Entonces... ¿Qué será lo mejor y más profesional para la aplicación?, ¿Hacer que la clase ClsSocket sea estática para usarse donde se quiera?, ¿O al abrir cada formulario hijo, pasar la instancia ClsSocket del formulario principal como referencia a cada formulario?
En fin, espero haberme explicado con la duda que se me presenta y puedan ayudarme por favor.
Un abrazo para todos.