¿Dónde poner el código en (principalmente) la aplicación WPF sin ventanas?

StackOverflow https://stackoverflow.com/questions/1029131

  •  06-07-2019
  •  | 
  •  

Pregunta

Así que estoy planeando escribir una aplicación que sea en gran medida una aplicación sin ventanas. Habrá ventanas para la interacción del usuario, pero solo a petición del usuario. De lo contrario, la aplicación se encuentra en la bandeja del sistema y ejecuta un temporizador, ejecutando algo de lógica cada minuto más o menos. Mi pregunta es esta: por lo que puedo decir, pondría toda la lógica relacionada en App.xaml.cs (iniciar el temporizador, ejecutar la lógica en cada intervalo), pero por alguna razón esto me parece incorrecto.

La aplicación tendrá un icono de la bandeja del sistema con el que los usuarios pueden interactuar para obtener detalles, ajustar la configuración, etc., pero de lo contrario la aplicación simplemente se queda allí y hace lo que hace. ¿Es apropiado poner todo el código en el código subyacente para la clase App.xaml? No sé por qué, pero parece que no debería, y debería haber otro lugar, pero realmente no puedo pensar en nada.

Nunca antes había escrito una aplicación como esta, de ahí mi ignorancia. Cualquier consejo sería muy apreciado. Gracias.

James

¿Fue útil?

Solución

Incluso con aplicaciones donde la mayor parte de la interacción se realiza a través de Windows, generalmente es una mala idea poner todo el código en el código. Con frecuencia, las interacciones son controladores de eventos iniciados en el código que se encuentra detrás, pero puede colocar su código en las clases que cree usted mismo.

Lo mismo ocurre con las aplicaciones que no muestran una interfaz de usuario la mayor parte del tiempo. La mayoría de las acciones se iniciarán desde App.xaml.cs, pero eso no significa que todo el código tenga que vivir allí. Puede encapsular temporizadores en sus propias clases que pueden iniciar otro código para hacer el trabajo, por ejemplo. Divida su código en líneas de responsabilidades, una clase de ventana hace cosas de interfaz de usuario, la lógica de dominio va a otros archivos, etc. Eso le permitirá crear aplicaciones más mantenibles.

Otros consejos

No parece que el código pertenezca allí, y como mucho solo una llamada para iniciar los temporizadores. Lo que suena perfecto para sus problemas es el MV-VM (Modelo - Vista - Modelo de vista) patrón. Como notó, también se sentirá más correcto que adjuntar la lógica a su código. Con MVVM, puede separar su IU dispersa en una vista, y su código puede existir por separado en el modelo y el modelo de vista.

Recomendaría usar el kit de herramientas aquí , como También contiene buenos documentos de resumen y una muestra que puede digerir a medida que crea su propia solución. Laurent Bugnion también ha lanzado un kit de herramientas de inicio MVVM que puede usar para comenzar.

Además, aquí es un buen material para comenzar a configurar realmente sus controles en la bandeja del sistema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top