Qual o nome de arquitetura correta para esse projeto?
A princípio, era MVC, mas aí dentro da pasta Models coloquei uma subpasta com classes ViewModels? O nome muda de MVC para outro nome? Qual seria o nome correto?
Cesar Murilo
Curtidas 1
Melhor post
Vinicius Cavagnolli
04/10/2018
Continua sendo MVC!
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).
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).
GOSTEI 2
Mais Respostas
Cesar Murilo
04/10/2018
Agradeço a resposta. É para um projeto da faculdade. O professor pediu que eu desenhasse o diagrama, eu fiz conforme disponível no link abaixo (desenhado no draw.io), se puder ver e me dizer se precisa corrigir:
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?
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
Vinicius Cavagnolli
04/10/2018
Os ViewModels geralmente não são detalhados a fundo em diagramas, sendo apenas um facilitador para que a View não receba dados desnecessários para seu uso, evitando que ela tenha sobrecarga de dados. Não tem problema em aparecer ou não no seu diagrama, e mesmo aparecendo continua podendo ser MVC ou MVVM/MVP.
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.
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