Pergunta

Estou usando o ASP.NET MVC com as classes POCO da Entity Framework e a estrutura de validação fluent. Está funcionando bem, e a validação está acontecendo como deveria (como se eu estivesse usando o DataNoTações). Até consegui validação do lado do cliente funcionando. E estou muito satisfeito com isso.

Como este é um aplicativo de teste, estou escrevendo apenas para ver se consigo novas tecnologias trabalhando juntas (e aprendendo -as ao longo do caminho), agora estou pronto para experimentar o uso do ViewModels em vez de apenas passar o modelo real para a exibição. Estou planejando usar algo como o AutomApper no meu serviço para fazer o mapeamento de um modelo para o Model to ViewModel, mas tenho uma pergunta primeiro.

Como isso vai afetar minha validação? Minhas classes de validação (escritas usando FluentValidation) devem ser escritas contra o viewmodel em vez do modelo? Ou isso precisa acontecer nos dois lugares? Um dos grandes negócios sobre o DataNoTations (e a FluentValidation) foi que você poderia ter validação em um local que funcionaria "em todos os lugares". E cumpre essa promessa (principalmente), mas se eu começar a usar o ViewModels, não perco essa habilidade e tenho que voltar a colocar a validação em dois lugares?

Ou estou apenas pensando nisso?

Foi útil?

Solução

Ou estou apenas pensando nisso?

Provavelmente ;)

Se você adicionar todo o código de validação aos seus modelos ViewModels, você estaria validando -os em vez de seus modelos reais. Toda a sua mudança realmente é quais objetos podem entrar em um estado inválido.

No momento, estou feliz, pois a torta validando apenas o ViewModels e depois transmitindo essas informações para os modelos reais e as camadas DAO. Se o seu domínio pode ou não entrar em um estado inválido é um tópico controverso, mas até agora essa técnica está funcionando muito bem para mim. Validação em um só lugar e sem objetos inválidos em minha loja de persistência.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top