Pergunta

Eu só ouvia o StackOverflow da equipe de 17 de podcast, e eles falaram tão bem de ASP.NET MVC que eu decidi dar uma olhada.

Mas, primeiro, eu quero ter certeza de que vale a pena.Eu já criou um da base de dados de aplicativo da web (por outros desenvolvedores a criar) para um projeto que está começando em poucos dias e queria saber, com base na sua experiência, se eu devo tomar o tempo para aprender o básico do MVC e re-criar a base web do aplicativo com esta modelo.

Há realmente grandes profissionais que ia fazer ele valer a pena?

EDITAR:Não se trata de um projeto existente, é um projeto prestes a começar, então, se eu estou indo para fazê-lo deve ser agora...


Eu só encontrei este

Ele não, no entanto, usar o existente post-back modelo para interações de volta para o servidor.Em vez disso, você vai encaminhar todas as interações de usuário final para uma classe de Controlador em vez disso - o que ajuda a garantir a separação de preocupações e testabilidade (significa, também, não viewstate ou ciclo de vida da página com MVC visualizações).

Como é que isso funciona?Não viewstate?Não há eventos?

Foi útil?

Solução

Se você está muito feliz com WebForms hoje, então talvez ASP.NET MVC não é para você.

Eu tenho sido frustrado com WebForms para um tempo muito longo.Eu definitivamente não estou sozinho aqui.O cliente inteligente, com monitoração de estado abstração sobre a web divide a ser gravemente em cenários complexos.Acontece que eu amo HTML, Javascript, e CSS.WebForms tenta esconder isso de mim.Ele também tem soluções complexas para problemas que são realmente complexas.Webforms também é inerentemente difícil de testar, e enquanto você pode usar o MVP, não é uma grande solução para um ambiente web...(em comparação com MVC).

MVC vai apelar para você se...- você quer mais controle sobre o seu HTML - quer uma perfeita ajax experiência, como qualquer outra plataforma - quer testabilidade meio-e-meio - quer significante de URLs - ODEIO lidar com postback & viewstate problemas

E, como para o quadro a ser pré-Visualização 5, ele é bastante estável, o design é principalmente lá, e a atualização não é difícil.Eu comecei um aplicativo de Visualização de 1 e atualizado dentro de algumas horas", o mais recente de visualização disponíveis.

Outras dicas

É importante manter em mente que o MVC e WebForms não são concorrentes, e um não é melhor que o outro.Eles são simplesmente diferentes ferramentas.A maioria das pessoas parecem abordagem MVC vs WebForms como "um deve ser melhor do martelo do que os outros".O que é errado.É um martelo, a outra é uma chave de fenda.Ambos são usados no processo de colocar as coisas juntos, mas têm diferentes pontos fortes e fracos.

Se um deixa você com um gosto ruim, você provavelmente estava tentando usar uma chave de fenda para martelar um prego.Alguns problemas são complicados com WebForms, que se tornam elegantes e simples, com MVC, e vice-versa.

Eu tenho usado ASP.NET MVC (eu mesmo escrevi um HTTPModule que permite definir as rotas na web.config), e ainda fico com um gosto amargo na minha boca sobre isso.

Parece que um gigante passo para trás, a organização e a produtividade.Talvez não para alguns, mas eu tenho webforms descobri, e não apresentam nenhum desafio para mim, tanto quanto tornando-o de fácil manutenção.

Que, e eu não endossa a corrente de TESTE "TUDO" modismo...

ASP.NET MVC, basicamente, permite que você separe a responsabilidade das diferentes seções do código.Este permitem que você teste seu aplicativo.Você pode testar seus pontos de Vista, Rotas, etc.Ele também faz acelerar o aplicativo, uma vez que agora não há ViewState ou de Reposição.

MAS, há também desvantagens.Desde que, você não estão usando WebForms você não pode usar qualquer ASP.NET o controle.Isso significa que, se você deseja criar um GridView você vai ser a execução de um loop for e criar a tabela manualmente.Se você deseja usar o ASP.NET Assistente em MVC, então você terá de criar em seu próprio país.

Ele é um ótimo framework se você está doente e cansado de ASP.NET o formulário da web e deseja realizar tudo sozinho.Mas você precisa manter em mente que você faria se beneficiam da criação de todas as coisas novamente ou não?

Em geral eu prefiro Webforms quadro devido ao rico conjunto de controles e automático de encanamento.

Gostaria de criar um site de teste primeiro, e ver o que a equipe pensa, mas para mim eu não iria voltar para WebForms depois usando o MVC.

Algumas pessoas não gostam de código misturado com HTML, e eu posso entender isso, mas eu agora preferem a flexibilidade em relação a coisas como o Ciclo de vida da Página, renderização de HTML e mais importante para mim - não viewstate sujeira incorporado na página de origem.

Algumas pessoas preferem MVC para melhor testibility, mas, pessoalmente, a maioria dos meu código está na camada do meio e testada facilmente de qualquer maneira...

@Jonathan Holland, vi que estavam votados, mas que é um ponto MUITO VÁLIDO.Eu tenho lido alguns posts em todo o intertubes onde as pessoas parecem ser confusas ASP.NET MVC o quadro e MVC o padrão de.

MVC em si é uma DESIGN PADRÃO.Se tudo o que você está procurando é um "separação de preocupações", então certamente você pode conseguir isso com webforms.Pessoalmente, eu sou um grande fã do Padrão MVP em um padrão de n-tier ambiente.

Se você realmente quer o controle TOTAL de seu mark-up na ASP.NET o mundo, então MVC o ramework é para você.

@Juan Manuel você já trabalhou em ASP clássico?Quando você tinha para o programa de todos os seus próprios eventos e "viewstatish" itens (como um menu suspenso recordando o seu valor selecionado após a submissão do formulário)?

Se é assim, então ASP.NET MVC não vai sentir que estranho fora do bastão.Gostaria de check-out Rob Conery é Incrível Série "MVC Loja"onde ele foi andando através da estrutura e construção de cada esperado componente para uma loja local.É realmente impressionante e fácil de acompanhar (catching up é duro porque o Rob tem sido reall ativo e postou UM MONTE em que série).

Pessoalmente, e bem ao contrário do Jeff Atwood do seus sentimentos sobre o tema, Eu gostava do modelo de formulário da web.Foi totalmente diferente do que o vbscript/classic ASP dias, com certeza, mas mantendo viewstate na seleção e escrever o seu próprio CSS friendly controles foi agradável, na verdade.

Então, novamente, note que eu disse "gostei".ASP.NET MVC é realmente impressionante e mais parecidos outras tecnologias da web lá fora.Certamente é mais fácil mudar a partir de ASP.NET MVC para o RAILS se você gosta ou precisa trabalhar em várias plataformas.E, embora, sim, é muito estável, obviamente, (este site), se a sua empresa não permite software "beta" de qualquer cor;de implementá-la em produção a esse tempo pode ser um problema.

Se você é um profissional ASP.NET desenvolvedor, e ter algum tempo livre no aprendizado de coisas novas, eu certamente recomendaria que você passar algum tempo a experimentar ASP.NET MVC.Pode não ser a solução para todos os seus problemas, e existem muitos projetos que podem beneficiar mais de um webform tradicional de implementação, mas ao mesmo tempo tentando descobrir MVC, você certamente vai aprender muito, e isso pode trazer muitas idéias que você pode aplicar no seu trabalho.

Uma coisa boa que eu notei ao ir através de muitos posts e tutoriais em vídeo ao tentar desenvolver um MVC pet-projeto é que a maioria deles segue as melhores práticas atuais (TDD, Coi, Injeção de Dependência, e em menor medida POCO), além de um monte de JQuery para tornar a experiência mais interessante para o usuário, e que é a coisa que eu possa aplicar no meu atual de formulário da web apps, e que eu não estava exposto em tal profundidade antes.

O ASP.NET MVC maneira de fazer as coisas é tão diferente do webforms que vai abalar um pouco a sua mente, e que, para um desenvolvedor é muito bom!

OTOH para um novato total para desenvolvimento web eu acho MVC é, definitivamente, uma melhor forma de começar, pois oferece um bom padrão de design da caixa e está mais perto para o caminho que a web realmente funciona HTML (sem estado, depois de tudo).No MVC, pronunciar-se sobre cada byte que vai e volta no fio (pelo menos enquanto você não enlouquecer em html helpers).Uma vez o cara fica que, ele ou ela vai estar melhor equipado para se deslocar para o "artificial" dos quartos fornecida pela ASP.NET de formulários e controles de servidor.

Se você gosta de usar controles de servidor que fazer um monte de trabalho para você, você NÃO vai gostar de MVC, porque você vai precisar fazer um monte de mão de codificação MVC.Se você gosta do GridView, espero escrever um você mesmo, ou usar de outra pessoa.

MVC não é para qualquer um, especialmente se você não estiver em testes de unidade a parte GUI.Se você estiver confortável com formulários da web, fique com ele.Formulários da Web 4.0 irá corrigir algumas das deficiências atuais, como a IDENTIFICAÇÃO de quais são atribuídos automaticamente por ASP.NET.Você vai ter o controle destes na próxima versão.

A menos que os desenvolvedores estão trabalhando com você está familiarizado com o padrão MVC que eu não faria.No mínimo, eu gostaria de falar com eles primeiro antes de fazer uma mudança tão grande.

Eu estou tentando fazer a mesma decisão sobre ASP.NET MVC, Juan Manuel.Agora estou esperando o direito de mordida de tamanho de projeto para vir junto com o que eu posso experimentar.Se a experiência for bem-meu intestino diz ele -, então eu estou indo para arquiteto meu novo grandes projetos por todo o quadro.

Com ASP.NET MVC você perder o viewstate/modelo de postback de ASP.NET Formulários da Web.Sem que a abstração, a trabalhar com muito mais intimamente com o HTML e o HTTP POST e GET comandos.Eu acredito que a INTERFACE de programação é um pouco na direção do ASP clássico.

Com esse inconveniente, vem de um maior grau de controle.Eu tenho muito, muitas vezes me vi lutando contra o psuedo-sessão de lixo de ASP.NET e a perspectiva de retomar o controle total do output em HTML parece ser muito refrescante.

É talvez o melhor-ou o pior-de ambos os mundos.

Eu dontt saber ASP.NET MVC, mas eu estou muito familiarizado com o padrão MVC.Eu não vejo outra maneira de criar aplicações profissionais sem MVC.E ele tem que ser o modelo MVC 2, como Spring ou Struts.Pelo jeito, o modo como as pessoas estavam construindo aplicações web sem MVC?Quando você tem uma situação em que algum tipo de validação é necessária em todos os pedidos, como validar se o usuário é autenticado, o qual é a sua solução?Algum tipo de incluir, validar.aspx) em cada página?

Você nunca ouviu falar de N-Nível de desenvolvimento?

Ajax, RAD (webforms com ajax são anti-RAD muito frequentemente), o CONTROLE COMPLETO (sem desenvolver monte de código e ciclos).webforms são bons apenas para ligar alguns grade e tal e não para qualquer outra coisa, e mais importante - desempenho.quando u ficar preso em formulários da web inferno u vai mudar em MVC, mais cedo ou mais tarde.

Eu não recomendaria apenas fazer a mudança em um projeto existente.Talvez começar uma pequena "demonstração" do projeto que a equipe pode usar a experiência com a tecnologia e (se necessário) aprender o que eles precisam, e demonstrar a gestão que vale a pena fazer a troca.No final, até mesmo a equipe de desenvolvimento pode perceber que eles não estão prontos ou não a pena.

Tudo o que você fizer, certifique-se de documento nele.Talvez se você usar um projeto de demonstração, escrever um post-mortem para referência futura.

Eu dontt saber ASP.NET MVC, mas eu estou muito familiarizado com o padrão MVC.Eu não vejo outra maneira de criar aplicações profissionais sem MVC.E ele tem que ser o modelo MVC 2, como Spring ou Struts.Pelo jeito, o modo como as pessoas estavam construindo aplicações web sem MVC?Quando você tem uma situação em que algum tipo de validação é necessária em todos os pedidos, como validar se o usuário é autenticado, o qual é a sua solução?Algum tipo de incluir, validar.aspx) em cada página?

Não, você não deve.Sinta-se livre para experimentá-lo em um novo projeto, mas um monte de pessoas familiarizadas com ASP.NET webforms não amá-la ainda, devido a ter que experimente com HTML + lotes de diferentes conceitos de + muito pequenas sobras de documentação/tutoriais.

É o fato de que ASP.net MVC é apenas na Visualização dos 5' ser uma causa para preocupação quando olhando para ele?

Eu sei que StackOverflow foi criado utilizando-o, mas há uma chance de que a Microsoft poderia implementar mudanças significativas para o quadro antes de ele está oficialmente fora da beta/alpha/preview?

Se você está morto utilizando um framework MVC, então eu gostaria de, ao invés de definir para o uso de Castelo do projeto de um...

Quando isso disse eu, pessoalmente, acho WebControls tem um monte de vantagens, como, por exemplo, ser capaz de criar orientada a eventos de aplicações que têm um stateful cliente e assim por diante.A maioria dos argumentos contra a WebControls são construídos devido a falta de entendimento sobre o WebControl modelo etc.E não porque eles realmente são realmente ruim...

MVC não é uma Bala de Prata, especialmente a Microsoft MVC...

Tenho visto alguns implementação do framework MVC, onde por causa de teste, alguém prestados a toda HTML no código.Neste caso, a vista é também um código testável.Mas eu disse, meu amigo, colocando o HTML no código é a manutenção de um pesadelo e ele disse: bem, eu gosto de tudo compilado e testado.Eu não discutir, mas depois descobrimos que ele fez colocar esse código HTML em arquivos de recurso e a loucura continua...

Mal sabia ele percebeu que toda a idéia de separar a Ver também resolveu a parte de manutenção.Ele supera a capacidade de teste em algumas aplicações.Não precisamos testar o HTML design se estamos usando WYSWYG ferramenta.WebForms são bons para isso.

Muitas vezes tenho visto pessoas abusem de reposição e viewstate e culpando-o em ASP .LÍQUIDO do modelo.

Lembre-as melhores páginas da web são ainda .HTMLs e que é onde está o Poder da ASP .NET MVC.

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