Pregunta

Estoy aquí muy escéptico sobre el diseño de mi aplicación.....

Aquí está el diagrama de mi aplicación.

Diagram of my Application

es esto correcto ??No necesito cambiar algo...

Elaboraré el diagrama....:

Biblioteca común:Contiene clases de códigos de error, clases de utilidad, etc.
Registrador:Marco de registro
Manejo de excepciones :Marco para el manejo de excepciones.

Vista:Contiene :Todos los diferentes XAML para vistas como controles de usuario, Windows y ventanas emergentes

Ver modelo:Contiene ViewModels para las diferentes vistas.

Modelo :Contiene contiene las diferentes capas como...Capa empresarial, capa de acceso a datos, etc.

Capa de entidad:Contiene los objetos de entidad como empleado, empresa, etc.

Caja de archivo :Especifica lectura/escritura desde un archivo/base de datos...

¿Fue útil?

Solución

Es difícil saber qué intentas hacer con tu pregunta, pero en mi opinión, las capas MVVM deberían verse así:

  • Modelo:Datos sin procesar y validación de datos sin procesar.tal vez un INotifyPropertyChanged tambien pero nada mas

  • Ver modelo:Lógica de Negocio, acceso a datos, validación avanzada basada en reglas de negocio, etc.

  • Puntos de vista:Bonita capa de interfaz de usuario que permite a los usuarios interactuar con ViewModels.Nada más.

Por ejemplo, un modelo podría tener un File propiedad, pero no debe ser responsable de mostrar el cuadro de diálogo del archivo, guardar el archivo en la base de datos o verificar que el archivo tenga una extensión .pdf.Ese tipo de cosas es el trabajo de ViewModel.

Editar

Veo la actualización que hiciste a tu pregunta.Es un buen comienzo, pero estos son los problemas que tengo:

  • Tus modelos deben ser objetos de datos sin procesar.No deberían contener nada más avanzado que algo como validar la longitud de una propiedad.

  • Sinceramente, no recomendaría separar las Vistas, los Modelos y los Modelos de Vista en 3 capas separadas.Lo hice una vez y resultó ser una pesadilla de mantenimiento.Ahora pongo todos los objetos relacionados juntos.Por ejemplo yo pondría FileModel, FileViewModel, y FileView juntos, y SearchModel,SearchViewModel, y SearchView juntos

  • Crearía una capa de acceso a datos que sería responsable de realizar toda la lectura/escritura de datos hacia/desde la base de datos (supongo que esta podría ser su "Capa de entidad").

  • Para proyectos pequeños, tiendo a usar mis Objetos de Entidad como mis Modelos, por lo que los Modelos pasan a formar parte de mi capa DAL, aunque sé que esto no es recomendable.

  • No lo olvide, con MVVM sus ViewModels son su aplicación, no sus Vistas.La Vista debe reflejar lo que hay en el Modelo de Vista y no al revés.

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