Fórum Qual o nome de arquitetura correta para esse projeto? #597642
04/10/2018
0
Cesar Murilo
Curtir tópico
+ 1Post mais votado
04/10/2018
Os ViewModels fazem parte dao MVC tanto quanto os Models. Apenas definem modelos que são exclusivos para renderização de Views. Nesse caso apenas funcionam como um "helper" para a View acessar facilmente dados agregados necessários a mesma.
É um conceito comum de se encontrar em MVP, MVC e MVVM (talvez em muitas outros padrões de design), mas ele não descaracteriza nenhum deles, apenas complementa.
Lembrando que existe a eterna discussão sobre MVC ser arquitetura ou padrão de design (acredito ser ambos, dependendo a implementação geral, onde pode ser apenas um padrão de design se usado em combinação com DDD, por exemplo).
Vinicius Cavagnolli
Gostei + 2
Mais Posts
04/10/2018
Cesar Murilo
https://drive.google.com/file/d/1UlQcDe3Yv-idkxuesM7H7iE0CxBxB96G/view?usp=sharing
Mesmo que o diagrama seja assim e funcione assim, então continua sendo MVC, correto?
Gostei + 0
04/10/2018
Vinicius Cavagnolli
Tentando explicar de forma simples, a diferença entre o ViewModel no MVC e no MVVM é:
-> No MVC ele contém todos os dados necessários para a renderização da View, sendo criado com base em um Model.O fluxo é: dados entram através da View (usuário enviando uma resposta num fórum, por exemplo), esse dado vai para o Controller, que por sua vez manipula o Model (insere a pergunta no banco de dados), e constrói um ViewModel novo (conténdo a resposta já inserida) e renderiza a View.
-> No MVVM ele funciona do mesmo modo que no MVC, mas adiciona possibilidades da View manipular o Model (databinding), refletindo diretamente alterações da View para o Model, sem intermédio do controle.
É um assunto bem complicado, mas em resumo, você pode analisar se o seu ViewModel não faz nada mais do que conter propriedades que existem no Model e nunca altera nada, apenas são para leitura. Nesse caso é MVC. Já se alterar algum dado através do ViewModel, é MVVM.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)