Maior vantagem em usar o ASP.Net MVC vs formulários da web

164

Quais são algumas das vantagens de usar um sobre o outro?

user18931
fonte

Respostas:

165

As principais vantagens do ASP.net MVC são:

  1. Habilita o controle total sobre o HTML renderizado.

  2. Fornece separação limpa de preocupações (SoC).

  3. Habilita o Test Driven Development (TDD) .

  4. Fácil integração com estruturas JavaScript.

  5. Seguindo o design da natureza apátrida da web.

  6. URLs RESTful que permitem SEO.

  7. Nenhum evento ViewState e PostBack

A principal vantagem do ASP.net Web Form é:

  1. Fornece desenvolvimento RAD

  2. Modelo de desenvolvimento fácil para desenvolvedores provenientes do desenvolvimento winform.

CV
fonte
32
Em relação ao SoC, as pessoas podem mexer com ele, como costumam usar nos formulários da web, escrevendo controladores "gordos" com muita lógica de negócios ou até mesmo código de acesso a dados. Então, eu diria que o SoC é algo que deve ser fornecido pelo codificador, o fw não pode ajudar.
Rodbv 12/12/08
7
@ rodbv: É verdade, mas o MVC meio que empurra você na direção certa, ou pelo menos não faz você pular em círculos para fazê-lo. Portanto, talvez esse ponto deva ler algo como 'facilita a implementação do SoC'
Erik van Brakel
4
Como ele "habilita o desenvolvimento orientado a testes" sobre qualquer outro método? Também estou confuso como ele permite URLs RESTful quando o método HttpContext.RewritePath (String) existe desde o .NET 2.0?
precisa
2
Embora esses pontos sejam principalmente precisos para o lado do MVC, muitos deles estão sendo integrados aos WebForms agora.
precisa saber é o seguinte
Link para a fonte desta resposta com mais detalhes: weblogs.asp.net/shijuvarghese/archive/2008/07/09/…
DK.
91

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:

  • O desenvolvimento suporta o estado • Dá a ilusão de que um aplicativo Web está ciente do que o usuário está fazendo, semelhante aos aplicativos do Windows. Ou seja, torna a funcionalidade do 'assistente' um pouco mais fácil de implementar. Os formulários da Web fazem um ótimo trabalho em esconder grande parte dessa complexidade do desenvolvedor.
  • Desenvolvimento rápido de aplicativos (RAD) • A capacidade de simplesmente 'entrar' e começar a entregar formulários da web. Isso é contestado por alguns membros da comunidade MVC, mas é promovido pela Microsoft. No final, tudo se resume ao nível de experiência do desenvolvedor e com o que ele se sente confortável. O modelo de formulários da web provavelmente tem menos curva de aprendizado para desenvolvedores menos experientes.
  • Caixa de ferramentas de controle maior • O ASP.NET Web Forms oferece uma caixa de ferramentas muito maior e mais robusta (controles da Web), enquanto o MVC oferece um conjunto de controles mais primitivo, confiando mais em controles avançados do cliente via jQuery (Javascript).
  • Madura • Existe desde 2002 e há uma abundância de informações com relação a perguntas, problemas, etc. Oferece mais controle de terceiros - é necessário considerar os kits de ferramentas existentes.

MVC do ASP.NET:

  • Separação de preocupações (SoC) • Do ponto de vista técnico, a organização do código no MVC é muito limpa, organizada e granular, facilitando (esperançosamente) a escalabilidade de um aplicativo da Web em termos de funcionalidade. Promove excelente design do ponto de vista do desenvolvimento.
  • Integração mais fácil com as ferramentas do lado do cliente (ferramentas avançadas de interface do usuário) • Mais do que nunca, os aplicativos da Web estão se tornando cada vez mais ricos que os aplicativos que você vê em seus desktops. Com o MVC, ele permite a integração com esses kits de ferramentas (como o jQuery) com mais facilidade e sem problemas do que nos formulários da Web.
  • Otimização para mecanismos de busca (SEO) amigável / sem estado • Os URLs são mais amigáveis ​​para os mecanismos de pesquisa (por exemplo, mywebapplication.com/users/ 1 - recupera o usuário com um ID 1 vs mywebapplication / users / getuser.aspx (ID passado na sessão)). Da mesma forma, como o MVC é sem estado, isso remove a dor de cabeça dos usuários que geram vários navegadores da mesma janela (colisões de sessões). Na mesma linha, o MVC adere ao protocolo da Web sem estado, em vez de "lutar" contra ele.
  • Funciona bem com desenvolvedores que precisam de alto grau de controle • Muitos controles nos formulários da Web do ASP.NET geram automaticamente grande parte do HTML bruto que você vê quando uma página é renderizada. Isso pode causar dores de cabeça para os desenvolvedores. Com o MVC, ele se presta melhor a ter controle completo com o que é renderizado e não há surpresas. Ainda mais importante, é que os formulários HTML geralmente são muito menores que os formulários da Web, o que pode equivaler a um aumento de desempenho - algo a ser considerado seriamente.
  • Desenvolvimento Orientado a Testes (TDD) • Com o MVC, você pode criar testes com mais facilidade para o lado da Web. Uma camada adicional de teste fornecerá outra camada de defesa contra comportamentos inesperados.

Autenticação, autorização, configuração, compilação e implantação são todos os recursos compartilhados entre as duas estruturas da web.

JC
fonte
27
"Com o MVC, você tem controle completo sobre o que é processado" - você também pode ter controle completo com WebForms se usar Literais em vez de Rótulos, Espaços reservados em vez de Painéis, Repetidores em vez de Datagrids, etc. Muitos desenvolvedores leem declarações como esta e acredite que é verdade. Downvote ..
masty
3
@masty - Eu não sei se eu votaria pessoalmente, mas concordo com o resto do que você disse.
Peter
4
@masty - Obrigado por salvar o mundo do StackOverflow nitpicking e pedindo que esta pergunta seja votada com baixa votação. Eu editei minha resposta apenas para você - para que eu possa receber seu voto de volta junto com todos os outros que você pediu para votar. Obrigado!
JC
6
@masty Concordo parcialmente, mas ao usar literais, espaços reservados e repetidores, você está migrando cada vez mais html para o codebehind. O que também pode causar confusão para os designers que estão lendo o .aspx e para os codificadores que estão lendo o .aspx.cs. Então, sim, é possível, mas sim, também derrota o objetivo do ASP.Net WebForms. Eu diria que os ControlAdapters são uma solução mais limpa nesse caso. Em vez de substituir os controles, você substitui a maneira como eles são renderizados.
Aidiakapi 25/10
2
A declaração "Com o MVC, você tem controle total sobre o que é renderizado" está confusa. Eu acho que a melhor afirmação seria: "A estrutura MVC faz menos renderização e o que é renderizado é mais enxuto. Você tem mais controle sobre HTML / CSS específico que é renderizado, mas você precisa fazer o trabalho para obter esse controle".
kingdango
17

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.

Kevin Farrow
fonte
7
+1 Spot on. Minha primeira reação ao MVC foi que eu estava fazendo o ASP clássico novamente; somente em C # desta vez em vez de VBScript.
DancesWithBamboo
3
Estou surpreso com o porquê dessa resposta ter recebido tantos votos positivos. Em primeiro lugar, o ASP.NET MVC possui a separação do MVC integrada. Obviamente, é possível fazer isso no ASP. Em segundo lugar, o ASP.NET MVC é muito mais que o ASP clássico. Ele oferece o controle refinado sobre HTML combinado com o poder do .NET acompanhado por muitos auxiliares úteis. Em terceiro lugar, @ é uma notação fina, como é <%%>. Qualquer editor decente para suas visualizações do Razor suportará a notação @. Por fim, o PHP amadurece? me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design O ASP.NET MVC é uma ótima plataforma. Dê mais atenção.
JP ten Berge
Você está brincando comigo? Eu tenho usado o PHP com sua notação "<? ...?>" E descobri que é totalmente detalhado. Não vejo como o símbolo "@" é mais difícil de reconhecer do que as tags "<% ...%>". Além disso, você raramente usa o símbolo "@" nos modelos HTML.
Exegese
Meus olhos podem descansar muito melhor em uma página de navalha do que no inferno dos símbolos "<%%>". Ler uma página .aspx me dá dores de cabeça. Eu também prefiro ver o que está sendo renderizado. Um bloco @foreach (..) {<tr> ... </tr>} me faz sentir mais confortável do que um <abc: MyViewControl ID = "..." runat = "server" DatasourceID = ".... "/>. Faço muita manipulação no lado do cliente e preciso saber exatamente o que será renderizado onde e com qual ID, estilo e classes. Eu prefiro fazer isso sozinho do que deixar um controle fazê-lo rapidamente. Especialmente quando alguns controles são renderizados de maneira diferente, dependendo de suas configurações.
Thanasis Ioannidis
Estou surpreso que isso tenha resultado positivo, é um completo mal-entendido da estrutura MVC. Se você se encontra misturando código com conteúdo no MVC, está fazendo errado. Suas visualizações têm conteúdo, seus controladores (e as classes que eles usam) possuem código. É um dos princípios principais do MVC.
Josh Noe
14

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.

Simon_Weaver
fonte
"tempo muito mais fácil" usando qual?
precisa saber é
5
@cawas - muito mais fácil com o MVC. não há eventos no ASP.NET MVC. basicamente, você está lidando com HTML padrão e css e não uma série de eventos e controles que os desenvolvedores PHP / JSP seria necessário para aprender
Simon_Weaver
O ASP.NET é a base para WebForms e MVC. As pessoas tendem a confundir WebForms com ASP.NET. Não há "MVC vs ASP.NET". Há "ASP.NET MVS" vs "ASP.NET WebForms". E, na verdade, eles não estão lutando entre si. Eles são apenas diferentes maneiras com diferentes prós e contras, para construir um site
Thanasis Ioannidis
13

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.

Merc
fonte
1
+1 para empresas são impulsionadas pela coisa básica "Solução rápida que as obras"
Dragos Durlut
1
O problema é quando algumas soluções rápidas simplesmente não funcionam porque elas pretendiam ser rápidas em primeiro lugar. Experiência recente: uma página rápida de formulários da web para fazer algumas atualizações básicas de criação, edição e atualização. Era para ser "mais rápido" do que a página do infopath equiveland, que era um pouco lenta. Na verdade, a nova solução tinha quase o mesmo desempenho na página de informações, exceto no IE7, quando era extremamente mais lenta a ponto de ser inútil. 5 segundos para abrir a página e 5 segundos cada vez que uma caixa de combinação foi clicada ... Tudo isso, apenas porque tinha que ser rápido. Sem pensamento, sem planejamento.
Thanasis Ioannidis
1
Depois disso, acabamos removendo todos os controles para se livrar dos scripts pesados ​​e desnecessários do lado do cliente e acabamos processando manualmente controles html com dados e eventos de inicialização, e uma combinação de jQuery e BackBone.js. Na verdade, é uma abordagem MVC hospedada em uma página de formulários da web. É claro que, com bom raciocínio e planejamento, o WebForms e o MVC podem ter um desempenho muito bom, mas o WebForms tenta que você jogue controles na sua página apenas para ver algo se movendo na tela e, em seguida, gaste mais tempo aprimorando-o, se não removê-lo em absoluto.
Thanasis Ioannidis
11
  1. AJAX apropriado, por exemplo, JSONResults sem bobagem parcial de postagem de página.
  2. sem vista +1
  3. Nenhuma renomeação dos IDs HTML.
  4. HTML limpo = sem inchaço e com uma boa chance de renderizar páginas compatíveis com XHTML ou padrões.
  5. Não há mais javascript AXD gerado.
Francis Shanahan
fonte
9

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.

Matthew Ruston
fonte
4
Concordo que esse é um ponto de venda importante se você nunca trabalhou com esse tipo de padrão antes, mas pode implementar seu padrão MVC ou MVP nos WebForms. Parabéns por fazer com que as pessoas passem para um padrão em vez de monolitar um formulário da web com conjuntos de dados, mas eles não são o tipo de pessoa que geralmente contrato.
Mark Broadhurst
9

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 :-)

Krish Van Colombo
fonte
1
Desativando viewstate por padrão, permitindo simultaneamente que no controle ocasional que realmente precisa dele foi um grande passo em frente no ASP.NET 4.
Petet
O WebForms e o MVC são criados sobre o ASP.NET.
Thanasis Ioannidis
8

Francis Shanahan,

  1. 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

  2. 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.

  3. 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

  4. 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

  5. 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?

Ganesh
fonte
6
Postbacks
3
Se você tem muito código em suas visualizações, está fazendo algo errado. O código nas visualizações deve dizer respeito apenas ao layout.
UpTheCreek 27/08
1
A única razão pela qual você veria uma página com javascript misturada com css e html é se estivesse observando o trabalho de um desenvolvedor preguiçoso que não se incomodaria em separar estilos e scripts. Isso pode acontecer em formulários da web e mvc. Eu concordo que as tags de script são feias, mas com o MVC3 elas com certeza não são mais, e pelo menos você pode ver o que está acontecendo sem procurar um código por trás do arquivo e encontrar o ponto em que um controle está vinculado ...
jcvandan
Além disso, se você está criando código espaguete usando MVC você não está aderindo à separação de interesses principais e não estiver usando um modelo de arquitetura agradável
jcvandan
1
Usando os dois, posso dizer que nada fica mais confuso do que os WebForms. O MVC é limpo, exceto pelas tags do servidor, mas, além disso, toda a bagunça é culpa de programadores ruins. O MVC é projetado pelo núcleo para separar a lógica do design. Você também menciona Telerik. O Telerik para ASP.Net AJAX causa um código tão confuso. Sem mencionar a velocidade, (agitar) a classificação de uma grade de telerik leva: 500ms para 4 páginas no ASP.Net WebForms, leva 200ms para 84 páginas no MVC. (Testado usando as demo e firebug for chrome.) Quando se trata de desempenho e separação, o MVC vence definitivamente.
Aidiakapi 25/10
6

Os formulários da Web também ganham com maior maturidade e suporte de provedores de controle de terceiros, como a Telerik.

Timbó
fonte
2
Não estou dizendo que isso não pode ser feito com o MVC, porque eu tenho certeza que sim, mas se você quiser criar um aplicativo de intranet ou extranet rápido e sujo, com muito Telerik e WebForms, é difícil de derrotar. Chama, é a verdade honesta.
Infocode
A Telerik também possui controles MVC (menos e com menos opções, mas ainda assim eles têm), e são MUITO MAIS rápidos que suas variantes de WebForm.
Aidiakapi 25/10
5

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)

Hrvoje Hudo
fonte
Você quer dizer velocidade de desenvolvimento ou velocidade de execução?
Jules
1
Especialmente ao usar o telerik com o MVC. Nas demonstrações, a classificação de uma grade leva: 500ms para 4 páginas (WebForms), 200ms para 84 páginas (MVC). O que para mim é uma preferência do MVC (apesar de usarmos WebForms na minha empresa, pensando que estamos pensando em mudar), é que é mais limpo, você tem suas opiniões, adapta sua produção, seu modelo, onde você bagunça -se os dados: P, e seus controladores que colocar tudo isso junto
Aidiakapi
4

Meus 2 centavos:

  • Os formulários do ASP.net são ótimos para o Desenvolvimento rápido de aplicativos e a agregação de valor comercial rapidamente. Ainda o uso para a maioria dos aplicativos de intranet.
  • O MVC é ótimo para a otimização de mecanismos de pesquisa, pois você controla a URL e o HTML em maior medida
  • O MVC geralmente produz uma página muito mais enxuta - sem exibição de estado e HTML mais limpo = tempos de carregamento rápidos
  • MVC fácil de armazenar em cache partes da página. -MVC é divertido de escrever: - opinião pessoal ;-)
Nicholas
fonte
3

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.

Amêndoa
fonte
2
Os Webforms do ASP.NET permitem que você tenha quantos formulários em uma página desejar. A limitação é que apenas um pode ter "runat =" atributo do servidor".
Andrei Rînea
1
@AndreiRinea Acho que ele quis dizer isso: P, não há muito uso em uma 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 :)
Aidiakapi
2

Controlador MVC:

    [HttpGet]
    public ActionResult DetailList(ImportDetailSearchModel model)
    {
        Data.ImportDataAccess ida = new Data.ImportDataAccess();
        List<Data.ImportDetailData> data = ida.GetImportDetails(model.FileId, model.FailuresOnly);

        return PartialView("ImportSummaryDetailPartial", data);
    }

Visualização MVC:

<table class="sortable">
<thead>
    <tr><th>Unique Id</th><th class="left">Error Type</th><th class="left">Field</th><th class="left">Message</th><th class="left">State</th></tr>
</thead>
<tbody>
    @foreach (Data.ImportDetailData detail in Model)
    {
    <tr><th>@detail.UniqueID</th><th class="left">@detail.ErrorType</th><th class="left">@detail.FieldName</th><th class="left">@detail.Message</th><th class="left">@detail.ItemState</th></tr>
    }
</tbody></table>

Quão difícil é isso? No ciclo de vida do ViewState, no BS Page ... Apenas código eficiente.

Jason
fonte
1

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.

Rod Rye
fonte
1

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

bool IMyView.IsAdminSectionVisible{
       get{return pnlAdmin.Visible;}
       get{pnlAdmin.Visible=value;}
    }

) Eu não acho que esse nível de teste seja tão facilmente alcançado no MVC, sem poluir meu modelo.

En.
fonte
0

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.

Simon_Weaver
fonte
0

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.

Prasanth
fonte
0

Minha opinião pessoal é que, a maior desvantagem de usar o ASP.Net MVC é que CODE BLOCKSmisturada com HTML...
html inferno para os desenvolvedores que o mantêm ...

Nitin Sawant
fonte