rquitetura @MVC - reutilização do mesmo modelo de visualização para leituras e edições

Diga que temos o seguinte cenário (excessivamente simples):

Temos uma tela para visualizar os detalhes da pessoa e uma tela para editar os detalhes da pesso

Os detalhes da pessoa que exibe a tela possuem os seguintes campos (apenas como exibição):

Primeiro nome Sobrenome Bio

A tela editar detalhes da pessoa mostra os seguintes campos (nos controles de entrada):

ID (oculto) Nome Sobrenome Bio

Diga que o nosso modelo de exibição é assim:

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

E o nosso modelo de visualização de edição é assim:

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; }
}

Não há muita diferença entre os 2, eh? O modelo de edição possui um campo extra (ID) e alguns dos atributos nas propriedades. Agora, se combinarmos os 2 assim:

    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; }
    }

Isso certamente é mais SECO, pois não temos campos duplicados para manter, mas agora temos informações estranhas (atributos) em nosso modelo de exibição. Estou me inclinando mais para a segunda abordagem, independentemente, porque algumas de nossas telas têm mais de 25 campos! (... e isso está fora de meu controle, por favor, não se preocupe com isso :) ...) No entanto, eu só quero ouvir opiniões para ter uma noção melhor do que pode ser a "melhor prática".

questionAnswers(4)

yourAnswerToTheQuestion