Quais são algumas das vantagens de usar um sobre o outro?
asp.net
asp.net-mvc
user18931
fonte
fonte
O ASP.NET Web Forms e o MVC são duas estruturas da Web desenvolvidas pela Microsoft - ambas são boas escolhas. Nenhuma das estruturas da Web deve ser substituída pela outra, nem há planos para que elas sejam "mescladas" em uma única estrutura. O suporte e o desenvolvimento contínuos são feitos em paralelo pela Microsoft e nenhum deles estará "desaparecendo".
Cada uma dessas estruturas da web oferece vantagens / desvantagens - algumas das quais precisam ser consideradas ao desenvolver um aplicativo da web. Um aplicativo da Web pode ser desenvolvido usando qualquer uma das tecnologias - pode facilitar o desenvolvimento de um aplicativo específico, selecionando uma tecnologia versus a outra e vice-versa.
Formulários da Web do ASP.NET:
MVC do ASP.NET:
Autenticação, autorização, configuração, compilação e implantação são todos os recursos compartilhados entre as duas estruturas da web.
fonte
Qualquer pessoa com idade suficiente para se lembrar do ASP clássico se lembrará do pesadelo de abrir uma página com código misturado com html e javascript - até a menor página foi uma dor para descobrir o que diabos estava fazendo. Eu posso estar errado, e espero que esteja, mas o MVC parece voltar aos maus velhos tempos.
Quando o ASP.Net apareceu, ele foi aclamado como o salvador, separando o código do conteúdo e permitindo que designers da web criassem o html e os codificadores trabalhassem no código por trás. Se não quisermos usar o ViewState, desativamos. Se não quiséssemos usar o código por algum motivo, poderíamos colocar nosso código dentro do html, como no ASP clássico. Se não quisermos usar o PostBack, redirecionamos para outra página para processamento. Se não quiséssemos usar controles ASP.Net, usamos controles html padrão. Poderíamos até interrogar o objeto Response se não quiséssemos usar o ASP.Net runat = "server" em nossos controles.
Agora alguém em sua grande sabedoria (provavelmente alguém que nunca programou o ASP clássico) decidiu que é hora de voltar aos dias de misturar código com conteúdo e chamar isso de "separação de preocupações". Claro, você pode criar um html mais limpo, mas pode criar um ASP clássico. Dizer "você não está programando corretamente se tiver muito código em sua exibição" é como dizer "se você escreveu um código bem estruturado e comentado no ASP clássico, é muito mais limpo e melhor que o ASP.NET"
Se eu quisesse voltar a misturar código com conteúdo, pensaria em desenvolver usando PHP, que tem um ambiente muito mais maduro para esse tipo de desenvolvimento. Se houver muitos problemas com o ASP.NET, por que não corrigir esses problemas?
Por último, mas não menos importante, o novo mecanismo Razor significa que é ainda mais difícil distinguir entre html e código. Pelo menos, podemos procurar por tags de abertura e fechamento, ou seja, <% e%> no ASP, mas agora a única indicação será o símbolo @.
Talvez seja hora de mudar para o PHP e esperar mais 10 anos para alguém separar o código do conteúdo mais uma vez.
fonte
Se você estiver trabalhando com outros desenvolvedores, como PHP ou JSP (e eu estou supondo trilhos) - você terá muito mais facilidade para converter ou colaborar em páginas, porque você não terá todos esses ASP.NET 'desagradáveis' eventos e controles em todos os lugares.
fonte
O problema com o MVC é que, mesmo para "especialistas", consome muito tempo valioso e exige muito esforço. As empresas são movidas pela coisa básica "Solução rápida que funciona", independentemente da tecnologia por trás dela. WebForms é uma tecnologia RAD que economiza tempo e dinheiro. Qualquer coisa que exija mais tempo não é aceitável pelas empresas.
fonte
fonte
A maior vantagem para mim seria a separação clara entre as camadas Modelo, Visualização e Controlador. Ajuda a promover um bom design desde o início.
fonte
Eu não vi nenhuma vantagem no MVC sobre o ASP.Net. Há 10 anos, a Microsoft criou o UIP (User Interface Process) como resposta ao MVC. Foi um fracasso. Fizemos um grande projeto (4 desenvolvedores, 2 designers, 1 testador) com o UIP na época e foi um pesadelo.
Não basta pular para a banda por causa do Hype. Todas as vantagens listadas acima já estão disponíveis no Asp.Net (com mais ajustes importantes [ Novos recursos no Asp.Net 4 ] no Asp.Net 4).
Se sua equipe de desenvolvimento ou uma única família de desenvolvedores do Asp.Net se mantiver fiel e criar produtos bonitos rapidamente para satisfazer seus clientes (quem paga pelo seu horário de trabalho). O MVC consome seu tempo precioso e produz os mesmos resultados que o Asp.Net :-)
fonte
Francis Shanahan,
Por que você chama postagem parcial como "bobagem"? Esse é o principal recurso do Ajax e foi muito bem utilizado na estrutura do Atlas e em maravilhosos controles de terceiros como a Telerik
Concordo com o seu ponto de vista sobre o estado. Mas se os desenvolvedores tiverem o cuidado de desativar o viewstate, isso poderá reduzir bastante o tamanho do HTML processado, tornando a página leve.
Somente os controles do servidor HTML são renomeados no modelo ASP.NET Web Form e não os controles html puros. Seja o que for, por que você está tão preocupado se a renomeação é feita? Sei que você deseja lidar com muitos eventos javascript no lado do cliente, mas se você projetar suas páginas da web de maneira inteligente, poderá obter definitivamente todos os IDs que deseja
Até o ASP.NET Web Forms atende aos padrões XHTML e não vejo nenhum inchaço. Esta não é uma justificativa do motivo pelo qual precisamos de um padrão MVC
Novamente, por que você está incomodado com o Javascript AXD? Por que isso te machuca? Esta não é uma justificação válida novamente
Até agora, sou fã do desenvolvimento de aplicativos usando formulários clássicos da Web do ASP.NET. Por exemplo: se você deseja vincular uma lista suspensa ou uma visualização em grade, precisa de um máximo de 30 minutos e não mais de 20 linhas de código (mínimo, é claro). Mas no caso do MVC, converse com os desenvolvedores sobre como é doloroso.
A maior desvantagem do MVC é que estamos voltando aos dias do ASP. Lembre-se do código espaguete de misturar código do servidor e HTML ??? Oh meu Deus, tente ler uma página aspx MVC misturada com tags javascript, HTML, JQuery, CSS, Server e o que não ... Qualquer pessoa pode responder a essa pergunta?
fonte
Os formulários da Web também ganham com maior maturidade e suporte de provedores de controle de terceiros, como a Telerik.
fonte
Nos formulários da web, você também pode renderizar html quase inteiro manualmente, exceto algumas tags, como viewstate, eventvalidation e similares, que podem ser removidas com o PageAdapters. Ninguém o força a usar o GridView ou algum outro controle do servidor que tenha saída de renderização html incorreta.
Eu diria que a maior vantagem do MVC é a VELOCIDADE!
Em seguida é a separação forçada de preocupações. Mas não proíbe que você coloque toda a lógica BL e DAL dentro do Controller / Action! É apenas uma separação de visão, o que também pode ser feito em webforms (padrão MVP, por exemplo). Muitas coisas que as pessoas mencionam para o mvc podem ser feitas em formulários da web, mas com algum esforço adicional.
A principal diferença é que a solicitação chega ao controlador, não é vista, e essas duas camadas são separadas, não conectadas via classe parcial, como nos webforms (aspx + code behind)
fonte
Meus 2 centavos:
fonte
O MVC permite que você tenha mais de um formulário em uma página. Um pequeno recurso que eu conheço, mas é útil!
Além disso, o padrão MVC que eu acho facilita o código, esp. quando você a revisitar após alguns meses.
fonte
runat="server"
tag não- formulário quando você ainda deseja usar webforms, e como você não pode / não deve aninhar formulários, acho óbvio o que ele quis dizer :)Controlador MVC:
Visualização MVC:
Quão difícil é isso? No ciclo de vida do ViewState, no BS Page ... Apenas código eficiente.
fonte
Eu posso ver as duas únicas vantagens para sites menores: 6) URLs RESTful que permitem SEO. 7) Nenhum evento ViewState e PostBack (e melhor desempenho em geral)
Testar sites pequenos não é um problema, nem as vantagens de design quando um site é codificado corretamente, de qualquer maneira, o MVC ofusca e dificulta as alterações. Ainda estou decidindo se essas vantagens valem a pena.
Eu posso ver claramente a vantagem do MVC em sites maiores para vários desenvolvedores.
fonte
Principal benefício que eu acho é que força o projeto a uma restrição mais testável. Isso também pode ser facilmente feito com formulários da Web (padrão MVP), mas exige que o desenvolvedor tenha uma compreensão disso, muitos não.
Webforms e MVC são ferramentas viáveis, ambas se destacam em diferentes áreas.
Pessoalmente, uso formulários da Web, pois desenvolvemos principalmente aplicativos B2B / LOB. Mas sempre fazemos isso com um padrão MVP com o qual podemos obter 95% de cobertura de código para nossos testes de unidade. Isso também nos permite automatizar o teste de propriedades do valor da propriedade webcontrols que é exposto através da visualização, por exemplo
) Eu não acho que esse nível de teste seja tão facilmente alcançado no MVC, sem poluir meu modelo.
fonte
Você não se sente mal com o uso de 'controles não pós-back' mais - e pensando em como transformá-los em um ambiente asp.net tradicional.
Isto significa que modernas (livre para usar) controles de JavaScript, este ou este ou este podem ser usados sem que tentar encaixar um prego redondo em uma sensação buraco quadrado.
fonte
Controles modernos de javascript, bem como solicitações JSON, podem ser manipulados com muita facilidade usando o MVC. Lá, podemos usar muitos outros mecanismos para postar dados de uma ação para outra. É por isso que preferimos o MVC aos formulários da web. Também podemos construir páginas leves.
fonte
Minha opinião pessoal é que, a maior desvantagem de usar o ASP.Net MVC é que
CODE BLOCKS
misturada comHTML
...html inferno para os desenvolvedores que o mantêm ...
fonte