2011-09-04 18 views
6

Tengo una aplicación de formulario C# que se conecta a un dispositivo electrónico utilizando el puerto serie. La clase "SerialCommunicationManager" se conecta al puerto serie al iniciar la aplicación y maneja el sucio negocio de hablar con el dispositivo.¿Cómo exponer mejor los métodos en WinForm?

Lo que me gustaría es exponer los siguientes métodos.

  • Write()
  • caso SerialDataReceived
  • SerialDataTransmitted caso

En primer lugar una página web local que se ejecuta en la misma máquina es el que yo quiero exponer los métodos para, pero en el futuro me imagine la necesidad de aplicaciones externas también.

¿Cuál es la forma más fácil de exponer la funcionalidad?

  • TCPIP client server?
  • ¿Servicio web? (¿Puedo crear un servicio web dentro de un WinForm?)
  • other?

Muchas gracias

// David

enter image description here

+0

No entiendo el contexto; comienzas con Windows Forms y finalizas con sitios web. No entiendo esto. –

+0

La aplicación Formulario está conectada a un dispositivo electrónico. Quiero que otras aplicaciones (como un sitio web) puedan ver el estado del dispositivo y enviar comandos a él. La gran pregunta es: ¿cómo permitir que otras aplicaciones hablen con el dispositivo? – David

Respuesta

4

recomendaría self-hosting a WCF Service. Esto le proporciona una gran cantidad de flexibilidad en términos de cómo sirve y expone esta información, incluida la posibilidad de cambiar el método mediante el cual se sirve a través de la configuración.

1

Me parece, que si quisiera hacerlo correctamente, se debe romper sus formularios de aplicaciones, y crear:

  • un servicio que se encarga de comunicación en serie y tiene una API expuesta a través de la interacción remota
  • una aplicación de formularios que utiliza la API y abre un camino con el servicio

Luego, dependiendo de la localidad de su sitio web, si va a seguir siendo local (o zona de Local - LAN):

  • sitio web debe utilizar la comunicación remota para llamar al servicio

otra cosa, si usted planea tener múltiples sitios web:

  • servicio web alojado dentro del IIS, que envolverá de comunicación remota de API
  • sitio web que utilizará el servicio web

Sin embargo, si es demasiado trabajo para hacer, simplemente use la comunicación remota y exponer los métodos necesarios para la web sitio.

1

En un proyecto reciente que hizo lo siguiente:

  • escribir una aplicación de consola (o servicio de Windows, dependiendo de sus necesidades) que se comunica con el dispositivo electrónico.
  • Haga que la aplicación de consola aloje un servicio .NET 4 WCF.
  • Escriba una aplicación .NET 2 de Windows Forms para comunicarse a través de los servicios web con la aplicación de la consola.

En este contexto, me imagino que el sitio web que menciona también utiliza los servicios web (WSDL) para comunicarse con la aplicación de la consola.

Cuestiones relacionadas