Estoy diseñando una pieza de software que necesita operar diferentes piezas de hardware basadas principalmente en un cronograma, pero también necesita una interfaz web para configurar ajustes, configurar el cronograma y, posiblemente, incluso controlar manualmente el hardware. No estoy seguro de cómo diseñar la arquitectura de un software como este.¿Cómo diseño un .NET (C#) para un programa que necesita ejecutarse como un servicio de Windows pero que también tiene una interfaz web?
Una idea que tuve fue crear un servicio de Windows que realiza la comunicación con el hardware así como "publicar" servicios web a través de WCF y luego tener una aplicación ASP.NET que luego controla el servicio de Windows a través de WCF. Este enfoque parece ser mucho trabajo para lo que estoy tratando de lograr.
¿Podría alguien darme alguna dirección, este es un buen enfoque o no, e incluso darme una mejor manera de hacerlo si existe?
Gracias! Joel
Por razones de seguridad, la mejor solución dependerá mucho de la configuración de su hardware. ¿Cómo acepta la maquinaria las solicitudes? ¿Dónde residirá su sitio web con respecto a su servicio de Windows? ¿Qué firewalls están involucrados? ¿Puede ejecutar un servicio de Windows que sondee un servicio web y también tenga una UI? – pdr
La maquinaria acepta solicitudes principalmente a través de uno o más puertos seriales (redes RS485). El sitio web podría estar en la misma máquina que el servicio, pero me gusta la posibilidad de dividirlos si es necesario. Probablemente el cortafuegos no sea un problema en este caso, ya que todo estará en la misma red. ¿Puedes explicar lo que quieres decir con ser un "servicio de Windows que sondea un servicio web y también tiene una UI"? No estoy seguro de cómo un servicio de Windows podría tener una IU. – hjoelr
Si desea alojar la interfaz web en una máquina diferente, no hay alternativa a su pensamiento. – SLaks