Post on 22-Jun-2015
Desenvolvimento Web com ASP.NET 4
Rodrigo Kono MVP Microsoft@rodrigokonoDevGoiás .NET User Group
Agenda
• ASP.NET Web Forms• Vantagens e desvantagens
• ASP.NET MVC• O padrão MVC
• Faça sua escolha• Web forms/MVC comparar e contrastar• Ajudará você a decidir o que usar no seu projeto
• Conclusão
ASP.NET
• .NET based• Code-behind
• Lógica (C# ou VB)• Apresentação (HTML)
• Melhor reutilização de código
• Melhor performance• Curva de aprendizado
menor• Similar ao
desenvolvimento Win Forms
ASP.NET Webforms ASP.NET MVC
• .NET based• Controle total do HTML• Poderosa integração
com JS• Uso claro de SoC• Testável – TDD• Exige maior
conhecimento do desenvolvedor
• Não possui viewstate
ASP.NET Web Forms
Entendendo o Web Forms
• Primeiro framework de desenvolvimento web com ASP.NET
• Existe desde 2001/2002• Rapidamente tomou parte do mercado,
efetivamente matando o ASP3 (ASP Clássico)• Era a única solução de desenvolvimento web
com .NET• Quebra do paradigma de desenvolvimento web• Code Behind• Visual Studio como ferramenta poderosa de debug
Usar esse treco tem
vantagem?!
Sim, e muito!
• Rápido, realmente RAD• Designer visual• Ricos controles de UI • Abstração do gerenciamento de estado• Fácil de trabalhar• Migração de Windows Forms para Web Forms é
muito simples• JavaScript “escondido” do programador• Fácil integração com o SharePoint
Mas nem tudo são flores...
Os contras
• Difícil controle sobre o HTML gerado• Inicialmente tinha problemas com standards• Dificuldade de manipulação com frameworks
javascript• Arquitetura não estimula a busca de padrões
arquiteturais de desenvolvimento, apesar de suportá-las
• Quase impossível de testar GUI
ASP.NET MVC
O padrão MVC
• MVC = Model View Controller• Padrão de arquitetura que separa lógica de negócio
da apresentação
Controller
ModelView
ASP.NET MVC
• O que é:• Implementação do padrão MVC para o ASP.NET• Um novo template de projeto no Visual Studio• Uma nova maneira de desenvolver com ASP.NET• Uma opção
• O que não é:• Um substitutivo ao Web Forms• Uma nova versão do Web Forms
Dependências
• Um único assembly e namespace:• System.Web.Mvc
• Depende de:• System.Web (2.0)• System.Web (3.0)• System.Web.Extensions (3.5)• System.Web.Abstractions (3.5 SP1)• System.Web.Routing (3.5 SP1)
AbstractionsRoutingMVC
Ciclo de Vida
• A tabela de rotas é criada• O UrlRoutingMode intercepta o request e
determina a rota• O MVC Handler é ativado e cria o controlador
esperado• A ação do controller é executada• Algum dado do modelo é obtido• O método View é chamado e uma view é criada• A View é renderizada
Qualquer um pode usar?
Não é para todos!
• É mais complexo• Exige mais do desenvolvedor• Exige conhecimento de HTML• Exige conhecimento de JavaScript, CSS, etc• Curva de aprendizado elevada
Criando uma aplicação Web Forms e MVC
demo
Devo usarWeb Forms
ouMVC??
Web Forms
• Sua aplicação já está finalizada, rodando ou com boa parte pronta com Web Forms. Não faça uma aplicação meio MVC, meio Web Forms.
• Tiver pouco tempo de desenvolvimento e a equipe não conhecer o padrão MVC, o framework ASP.NET MVC ou os dois.
• Você gostar muito do modelo proporcionado pelo Web Forms de ilusão de manutenção de estado proporcionado pelo Viewstate.
Web Forms
• Tem necessidades de AJAX ou de manipulação de JavaScript e você destesta JavaScript;
• Você é fã de controles de página como gridview, controles de membership, ou ainda, se gosta muito de databinding;
• Você precisa desenvolver webparts (módulos/apps) para o SharePoint.
MVC
• Precisar de mais controle sobre o HTML gerado;• Quiser ter uma aplicação focada em padrões mais
reconhecidos, inclusive no front-end;• Quiser trabalhar com testes unitários também na
interface com usuário.• Precisar de uma aplicação mais modular, inclusive
no front-end.
MVC
• Quiser ter mais liberdade para extender alguns pedaços do framework. Com ASP.NET MVC você consegue substituir os controllers, o engine de View, a maneira de procurar Views, o framework de testes, etc.
• Quiser utilizar XSLT, XML, texto puro, ou qualquer outro objeto que possar ser renderizado nas páginas web.
• Tiver a intenção de gerar uma página menor em bytes
<form/><form/><form/>
Mindset
– Nós precisamos de um controle Repeater!– Nós já temos. Se chama: laço de foreach.
Conversa entre desenvolvedores da Microsoft, segundo relatado por Scott
Hanselman, do time do MVC
Arquitetando…
Desvantagens do Web Forms
• Não tem separação de preocupações (SoC)• Ambiente de runtime monolítico
• Não é facilmente estendido• Não é conectável e flexível
• Alta abstração do HTML• Acessibilidade• Compatibilidade com navegadores• Integração com estruturas de JavaScript populares
• jQuery, Dojo e PrototypeJS
• Postback torna a página difícil de ser indexada por mecanismos de busca e classificação (até a versão 3.5. Da 3.5 SP1 pra frente OK)
• Estimula o “arrastar e soltar”
Desvantagens do MVC
• Baixa produtividade• Não mantém estado• Sem facilidades para gerar HTML• Não há gerenciador de manipulação de JS
automaticamente• Necessidade de conhecimento do padrão MVC• Não tem controles “prontos”
ASP.NET Pipeline
Página x Ações
Concluindo…
Web FormsPlug & Play
MVCExpõe a arquitetura
Web FormsPágina Codificação
MVCModelo de dados
Página
Futuro – ASP.NET vNext
• Comportamento do ASP.NET Web Forms cada vez mais próximo do ASP.NET MVC
• Maior suporte ao HTML5, CSS3 e jQuery• Melhor alternativa do uso de AJAX com Web Forms
através do Juice UI (http://juiceui.com/)• Cada vez + Open Source• Cada vez + plugável• Visual Studio 11
www.asp.netweblogs.asp.net/scottguhaacked.commsdn.com.brrodrigokono.net marcelopaiva.net
Links
Feedback e perguntas http://www.facebook.com/devgoias
Rodrigo Konokono@devgoias.net - @rodrigokono
Marcelo Paivamarcelo.paiva@devgoias.net - @marcelo_paiva
Obrigado
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to
be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.