Formulario WPF de mantenimiento de usuarios

He creado una aplicación WPF sencilla para el mantenimiento de una lista de usuarios. Se usa el patrón de diseño Model-View-ViewModel, para mejorar la calidad del código y su mantenibilidad.

FormularioUsuarios

En la siguiente figura se puede ver a groso modo el diseño realizado:

MantenimientoUsuarios

  • Las clases Usuario, UsuarioView, UsuarioVM y UsuarioDA son específicas para el mantenimiento de usuarios.
  • Las clases Notifier, RelayCommand, BaseVm, Maintainable y la interfaz IModelBase se pueden reutilizar para realizar el mantenimiento de otros tipos de entidades, por ejemplo productos, clientes…
  • La interfaz INotifyPropertyChanged y la interfaz ICommand son parte de .NET Framework.

Descargar proyecto de Visual Studio 2010

Clases e interfaces creadas

1. Clase abstracta Notifier

Esta clase implementa la interfaz INotifyPropertyChanged, las clases que creemos a partir de esta clase base, pueden notificar fácilmente los cambios en sus propiedades con una llamada al método RaisePropertyChanged.

2. Clase RelayCommand

Esta clase implementa la interfaz ICommand y nos facilita el trabajo de crear comandos en las clases ViewModel.

3. Clase abstracta genérica BaseVM

A partir de esta clase base podemos crear viewmodels que serán usados en formularios de mantenimiento de datos.

4. Interfaz IModelBase

Interfaz que contiene la declaración de la propiedad Id, que deben tener todas las clases modelo.

5. Clase Usuario

Clase que usamos para la creación de objetos tipo Usuario. Tiene las propiedades Id, Nombre y Password. Se generan eventos tipo PropertyChanged cuando se modifica cualquiera de sus propiedades.

6. Clase abstracta genérica Maintainable

Esta clase base define métodos abstractos genéricos para realizar operaciones CRUD. Es un adaptador entre las clases viewmodel y una fuente de datos.

7. Clase UsuarioDA

Clase que implementa la clase abstracta Maintainable para el acceso a datos de Usuarios que se guardan en memoria. Se pueden crear nuevas clases que hereden de Maintainable para acceder a diferentes fuentes de datos: base de datos, fichero, servicio web…

8. Clase UsuarioVM

Viewmodel para la vista de mantenimiento de usuarios. Es una implementación de la clase abstracta BaseVM.

9. Clase UsuarioView

Código XAML del formulario de mantenimiento de Usuarios.