Pergunta

Note que não estou a pedir que para escolher (MVC ou MVP), mas sim, se um dos dois deve ser usado para uma aplicação web.

Eu percebo que ele pode ser muito trabalho para converter um aplicativo mais antigo de seu projeto atual para um padrão MVC ou MVP. No entanto, o que acontece para um novo aplicativo? Parece estes são os mais padrões de arquitectura popular, por isso deve um deles ser escolhido? Se não, que outros padrões estão lá?

Se você não estiver familiarizado com MVC e / ou MVP, uma boa pergunta para verificar se " o que são MVP e MVC e qual é a diferença? ". Ele tem muitas respostas boas, incluindo links para vários sites que quebrar cada um.

Foi útil?

Solução

MVP / MVC funciona bem em aplicações web porque a combinação HTTP verbo + URL é uma boa maneira de determinar qual a acção a tomar. Há razões para não usá-lo, como se sua equipe tem muita experiência com outro enquadramento, mas eu geralmente recomendo um quadro MVP / MVC. Sua aplicação será concluída mais rápido com maior qualidade.

Outras dicas

Ambos são ótimas opções.

Eu iria para MVC, pois tem um adoções mais amplas e é mais fácil de entender e usar a interface desenvolvedores (HTML / CSS).

Além disso, dado o número de quadros que adotam o padrão MVC, chanches está falando com seus colegas de trabalho em MVC você vai falar um bem sabia linguagem.

Eu afixei a seguinte resposta para outra pergunta, embora possa ser mais apropriado aqui .

MVC é bom para servidor simples scripting lado. Em MVC desenvolvedores sempre tentar manter o controlador muito magra. Principalmente controlador é apenas para selecionar o modelo apropriado e refletir sobre a vista. Mas em aplicações web de hoje a parte de exibição mudou radicalmente e tornou-se bastante complexo para produzir um grande, gordo e controlador confuso. Portanto, agora precisamos de um novo lugar para colocar lógica de controle complexo da interface do usuário. Aqui, o P de MVP vem em que é o apresentador. Assim, os apresentadores são responsáveis ??por controlar a lógica de um componente de interface de utilizador particular. Não se preocupe o controlador ainda está aqui, nomeado como Application Controller . Que em última análise responsável pela comutação entre componentes de aplicação comparativamente maiores. Então MVP pode também ser dito MVPC (!!) . BTW esta foi a minha forma de MVP compreensão e, obviamente, não qualquer regra chão.

Então, eu já estou tendem a MVP para aplicações web complexas.

A sua pergunta foi "devo usar um destes padrões de projeto".

Eu teria que dizer que isso realmente depende do escopo do seu projeto. Em um projeto muito grande que tem interdependências com outros sistemas em uma grande organização com um grande orçamento, eu diria que eles estão definitivamente vale a pena considerar.

Eu acho que esses padrões são muitas vezes mais utilizado em projetos menores, onde eles podem adicionar complexidade desnecessária e custo.

O principal ponto de acoplamento frouxo, é assim que você pode mudar a sua DB ou UI em um momento posterior, ou a lógica re-uso comercial. Muitas vezes, isso nunca acontece. Você tem que perceber que qualquer um desses padrões vai demorar mais tempo para implementar e complicar o código um pouco. Então, eu sugiro fortemente realmente pensando sobre isso e pesando suas opções. Muitas vezes você pode oferecer uma solução melhor, mais rápido usando uma arquitetura muito simples que faz o trabalho e reduz a complexidade!

Depende do quadro que você está usando. Basta usar o que ele suporta. A maioria dos frameworks web eu vi usar o padrão controlador de frente e chamá-lo MVC ou MVP.

Eu acho que você deveria. Eles são mais difíceis de implementar, especialmente em MS mundo, porque eles fizeram tudo para empurrar Web Forms e fazer a construção de aplicações web mais facilmente.
Usá-los você está programando simples e você sente como se tivesse feito um monte de trabalho. Mas eles são mais lentos e mais difícil de manter depois que seu site se torna maior.
Usando MVC e MVP permite separar modelo (classes básicas que representam domínio que você está trabalhando com), controlador e pontos de vista. A melhor coisa sobre isso é que você pode reutilizar o modelo em outras aplicações como aplicações móveis ou aplicativos do Windows. Eles, então, têm mais em comum do que apenas um banco de dados para que você tem que escrever menos código. Você apenas tem que controladores de escrever e pontos de vista.
Eu sou novo para isso, mas eu ver os benefícios, porque quando eu tive que mudar alguma coisa em um lugar outra coisa bateu em outro lugar (para que você também tem que obter o acoplamento fraco em conta e escrever testes de unidade). Escrever testes é impossível na Web Forms.

No entanto, se você está construindo aplicação para representar uma pessoa ou uma empresa, onde não há nenhuma lógica de negócios na web, e você tem que fazê-lo rapidamente, Web Forms são bons para isso. E também para a construção de protótipos para que você possa mostrar o aplicativo será capaz de fazer quando terminar.

Eu gosto de ambos os padrões. Meu melhor prática é escolher um padrão, que é sempre melhor, então nenhum padrão.

Eu desenvolvi muitas aplicações em ambos os padrões, meu sentimento pessoal é que quando você é um desenvolvedor RAD e você não é tão bom com CSS e JavaScript (Principalmente winforms desenvolvedores que querem de criar um webapp, sem ofensa ;-) ) Você deve usar o padrão MVP porque isso é muito fácil de usar com os projetos de aplicativos da web.

Mas quando você sabe colocar de CSS e javascript, então você deve considerar o padrão ASP.NET MVC.

I preferem o padrão MVC, apenas porque o acoplamento. Há uma clara separação entre o modelo, vista e controlador e através dos it`s isolamento mais adequado para Test-Driven Development ou apenas teste de unidade.

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