Pergunta

Além de ser um padrão de 30 anos, MVC foi nunca significou para aplicações atuais. MVP foi seu sucessor e projetado para lidar com aplicativos baseados em eventos que sai na década de 90. Passive View e supervisão do controlador parecem ter subido para o topo. Para aqueles dois, que quase não é necessário falar sobre MVC / MVP.

Especificamente, é a ação do controlador em ASP.NET MVC que traz de volta uma visão criar esse ponto de vista? No MVC, o controlador não criar vistas ou falar de volta para eles. Qual é a precisão-lo para chamar a implementação ASP.NET MVC um MVC? Ou, o que seria um nome exato para ele?

Foi útil?

Solução

Eu acho que é Ruby on Rails que inspirou MS para criar asp.net MVC.

Outras dicas

ASP.NET MVC é simplesmente o reconhecimento do sucesso da implementação MVC dentro de frameworks web como Ruby on Rails e Django da Microsoft. A constatação de que muitos desenvolvedores web gostaria mais mãos na abordagem de desenvolvimento web que abraça o "teimoso" modelo de programação (convenção sobre configuração) e strays longe da abstração stateful que ASP.NET WebForms fornece.

É uma implementação exata do padrão Smalltalk MVC? Não. É um resultado de pânico? Não. É um resultado do sucesso de ambos Ruby on Rails e Django? Sim.

Acontece que eu amo este modelo como ela abraça o quadro rico fornecido pelo .NET ea pilha ASP.NET, permanecendo minimalista na abordagem e uso de convenção de desenvolvimento baseado.

Perto o suficiente, e é uma estratégia de vendas.

Eles vendem ASP.NET contra outras tecnologias que se identificam como MVC. Então é competitivamente útil para nomeá-lo para ser percebido na mesma categoria.

Microsoft ganha mais frequentemente pelo posicionamento do produto do que pela identificação de tecnologia precisa. (Entrega Além disso, a longo prazo, IMHO).

ScottGu escapa à resposta na primeira parte do seu post sobre a primeira demonstração MVC aqui . A resposta curta é que as pessoas pediu e Microsoft decidiu ir com ele. Ele se encaixa com o modelo .Net atual para adicionar tantas opções quanto possível, permitindo o enquadramento para alcançar um mercado-alvo maior, e também fornecer aos desenvolvedores as ferramentas certas para o projeto certo.

MVC como implementado pela ASP.NET MVC não é o padrão MVC de idade. Em que eu vou chamar de "clássico" MVC View tem direto, mas apenas para leitura, acesso ao Modelo, em ASP.NET MVC é considerado má forma para aceder ao seu modelo de negócio diretamente do View. O que você acabar com algo muito parecido com Supervising Controller + Passivo Ver:

public class MvcExampleController : Controller
{
    public ActionResult ActionMethod(BoundInputData inputData)
    {
        var results   = DoActualWorkInTheModelWith(inputData);
        var viewModel = CreateViewModelFromThe(results);

        return View(viewModel);
    }
}

Para mim, isso parece mais com um controlador de Supervisão do que MVC clássico. Uma vez que o trabalho é feito no modelo, a visão é passado um ViewModel (aka PresentationModel). O ViewModel geralmente tem um 1-1 relação com os elementos de interface do usuário na visão e pode ou não parece em nada com os objetos no modelo actual. Uma ideia que atua em um ViewModel e não o modelo real cheira muito como uma exibição passiva para mim.

Eu não vou entrar ou não isso é uma implementação "real" MVC ou não, mas se o seu argumento é que ASP.NET MVC não usar padrões web design moderno eu tenho que discordar.

Melhor palpite, todo mundo ouviu falar de MVC. MVC foi batido em como uma "melhor prática" por um bom tempo, e, portanto, toda uma geração (ou dois, ou três) de desenvolvedores ver MVC e pensar pensamentos felizes.

Além disso, muitas outras estruturas defendem MVC em uma luz semelhante então a Microsoft provavelmente se sente compelido a fazer o mesmo.

Em suma, eu duvido muito que há uma forte razão técnica para isso.

Você pode lançar seu próprio MVC com o quadro ASP.NET atual e ainda manter o modelo de postagem.

http://www.codeproject.com/KB/aspnet/RollingYourOwnMVCwithASP.aspx

Esta é uma grande questão, um monte de pessoas têm esta pergunta nos primeiros dias de MVC. Aqui está a resposta de Phil Haack um dos desenvolvedores de chumbo sobre o projeto!

http://haacked.com/archive/0001/01/01/everything-you-wanted-to-know-about-mvc-and-mvp-but.aspx

Confira, leia as ligações e de lá ir.

Além disso, uma resposta ao debate talvez S # arp Architecture. Eles construíram uma camada em cima de MVC para torná-lo agir mais como MVP. Vê-los, se você está procurando Soemthing ao longo destas linhas.

Boa sorte!

Eu acho que isso foi mais uma "decisão de marketing pânico", em seguida, uma decisão técnica. RoR estava roubando mercados cada segundo e MSFT pânico completamente, de modo MSFT sentiram que tinham de entregar algo que lhes deu a oportunidade de obter alguns dos exageros de volta ao "seu acampamento" de novo ...

Também eles precisavam para ajudar a sua desenvolvedores ganho bac teir auto-estima novamente, obtendo a associar esta palavra sensacionalistas com eles mesmos para que a NET pode olhar-se no espelho novamente, sem sentir vergonha por que eles não sabiam MVC desde a sua plataforma de escolha não entregar esse tipo de padrão para eles (fora da caixa)

Para um meio hábil (.Net) desenvolvedor é realmente difícil não se sentir como um dinossauro quando um meio hábil RoR incêndios desenvolvedor até ancinho e cria um pico em menos de 15 minutos ter um trabalho e correr prova de conceito antes do. desenvolvedor net ainda é vstudio.exe partida acabado ...;)

Eu acho que é um ponto de vista controverso, mas é meu e eu vou defendê-lo até o fim amargo ...;)

Há inúmeros exemplos hoje de que sim, MVC e andaimes lhe dará um impulso velocidade inicial, sim. Mas para manutenção, a reutilização de código, encapsulamento e principalmente a cada realmente importante - MVC só não é a "bala de prata" e na maioria das vezes WebForms são muito superiores no longo prazo (a menos que usado como vaso sanitário papel é claro)

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