rquitectura @MVC: reutilización del mismo modelo de vista para lecturas y ediciones

Di que tenemos el siguiente escenario (demasiado simple):

Tenemos una pantalla para ver los detalles de la persona y una pantalla para editar los detalles de la persona.

Los detalles de la persona que se muestran en la pantalla tienen los siguientes campos (solo como visualización):

Primer Nombre Apellido Bio

La pantalla de edición de detalles de persona muestra los siguientes campos (en los controles de entrada):

ID (oculto) Nombre Apellido Bio

Diga que nuestro modelo de visualización se ve así:

    public class DisplayPersonViewModel
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Bio { get; set; }
    }

Y nuestro modelo de vista de edición se ve así:

public class EditPersonViewModel
{
    [Required]
    public int ID { get; set; }

    [Required]
    [StringLength(20)]
    public string FirstName { get; set; }

    [Required]
    [StringLength(20)]
    public string LastName { get; set; }

    [Required]
    public string Bio { get; set; }
}

No hay mucha diferencia entre los 2, ¿eh? El modelo de edición tiene un campo adicional (ID) y algunos de los atributos en las propiedades. Ahora, si tuviéramos que combinar los 2 de esta manera:

    public class DisplayPersonViewModel
    {
        [Required]
        [StringLength(20)]
        public string FirstName { get; set; }

        [Required]
        [StringLength(20)]
        public string LastName { get; set; }

        [Required]
        public string Bio { get; set; }
    }

    public class EditPersonViewModel : DisplayPersonViewModel
    {
        [Required]
        public int ID { get; set; }
    }

Esto ciertamente es más SECO, ya que no tenemos campos duplicados para mantener, pero ahora tenemos información (atributos) extraños en nuestro modelo de visualización. Sin embargo, me inclino más hacia el segundo enfoque, porque algunas de nuestras pantallas tienen más de 25 campos. (... y eso está fuera de mi control, así que por favor no insista en ello :) ...) Sin embargo, solo quiero escuchar opiniones para tener una mejor idea de lo que puede ser la "mejor práctica".

Respuestas a la pregunta(4)

Su respuesta a la pregunta