DDD e validação do lado do cliente

Suponha que você tenha um aplicativo que utilize o padrão de modelo de domínio, DDD e muitos outros padrões de design. suponha que temos várias soluções, conforme listado abaixo:

Solution.Model Solution.Repository Solution.Services Solution.Presentation Solution.UI.Web

A camada de experiência do usuário será Solution.UI.Web e assumiremos que será um aplicativo ASP.NET WebForms. como você aplica a validação do lado do cliente?

Há várias coisas a serem consideradas:

Em primeiro lugar, não devemos ter que acessar o (s) servidor (es) de aplicativos / banco de dados para retornar quaisquer erros de validação para o cliente. No entanto, também podemos implementar a validação no lado do servidor, mas precisaremos da validação no lado do cliente. bem

egundo, não queremos implementar as regras de validação na camada de experiência do usuário. isso porque se seu aplicativo é um WebApp e você decide criar um cliente WinApp também, precisará implementar as regras de validação novamente -> pesadelo de manutenção.

ma abordagem simples seria implementar sua lógica de validação nos objetos do ViewModel (visualizações planas de suas entidades de domínio que serão enviadas ao cliente) e depois validar esses objetos antes de acessar o (s) servidor (es) de aplicativos / banco de dado

Outra abordagem, que eu já vi usada várias vezes em aplicativos diferentes, é apenas gerar uma coleção de mensagens de erro de validação e enviar essa coleção para o cliente. tudo bem, mas há um problema. apenas uma mensagem resumida simples de erros de validação não funcionará, especialmente se você tiver um formulário de entrada de big data.

gora, a estrutura do ASP.NET MVC facilita muito a vida. você pode usar o EF + DataAnnotations, e a estrutura do MVC Scaffolding pode fazer a maior parte do trabalho para você. mas é esse o caso se você deseja criar um aplicativo MVC e implementar sua lógica de validação com jQuery e JavaScrip

Mas e se você precisar de uma abordagem mais genérica para implementar uma estrutura de validação que possa ser utilizada e usada em diferentes aplicativos, como WinForms e WebForm

Apenas para esclarecer, o que estou procurando é um conjunto de padrões / princípios de design e / ou técnicas / estruturas para implementar uma estrutura de validação que possa ser implementada no modelo do seu domínio e depois aplicada nos aplicativos clientes. E não quero apenas retornar uma coleção de mensagens de erro de seqüência de caracteres sobre regras quebradas ou algo assim, quero poder atualizar meus controles vinculados a dados (TextBox, ComboBox, DateTimePicker, etc) após falha na validação, para que o camada de experiência do usuário seria mais intuitiva (se você preferir).

Vi algumas implementações e estruturas aqui e ali, e utilizo a validação do lado do cliente do ASP.NET MVC há algum tempo, então minha resposta não tem nada a ver com a validação do MVC ou do JavaScrip

questionAnswers(3)

yourAnswerToTheQuestion