desenvolvimento web com asp.net 4

36
Desenvolvimento Web com ASP.NET 4 Rodrigo Kono MVP Microsoft @rodrigokono DevGoiás .NET User Group

Upload: rodrigo-kono

Post on 22-Jun-2015

593 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvimento Web com ASP.NET 4

Desenvolvimento Web com ASP.NET 4

Rodrigo Kono MVP Microsoft@rodrigokonoDevGoiás .NET User Group

Page 2: Desenvolvimento Web com ASP.NET 4

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

Page 3: Desenvolvimento Web com ASP.NET 4

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

Page 4: Desenvolvimento Web com ASP.NET 4

ASP.NET Web Forms

Page 5: Desenvolvimento Web com ASP.NET 4

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

Page 6: Desenvolvimento Web com ASP.NET 4

Usar esse treco tem

vantagem?!

Page 7: Desenvolvimento Web com ASP.NET 4

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

Page 8: Desenvolvimento Web com ASP.NET 4

Mas nem tudo são flores...

Page 9: Desenvolvimento Web com ASP.NET 4

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

Page 10: Desenvolvimento Web com ASP.NET 4

ASP.NET MVC

Page 11: Desenvolvimento Web com ASP.NET 4

O padrão MVC

• MVC = Model View Controller• Padrão de arquitetura que separa lógica de negócio

da apresentação

Controller

ModelView

Page 12: Desenvolvimento Web com ASP.NET 4

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

Page 13: Desenvolvimento Web com ASP.NET 4

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

Page 14: Desenvolvimento Web com ASP.NET 4

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

Page 15: Desenvolvimento Web com ASP.NET 4

Qualquer um pode usar?

Page 16: Desenvolvimento Web com ASP.NET 4

Não é para todos!

• É mais complexo• Exige mais do desenvolvedor• Exige conhecimento de HTML• Exige conhecimento de JavaScript, CSS, etc• Curva de aprendizado elevada

Page 17: Desenvolvimento Web com ASP.NET 4

Criando uma aplicação Web Forms e MVC

demo

Page 18: Desenvolvimento Web com ASP.NET 4

Devo usarWeb Forms

ouMVC??

Page 19: Desenvolvimento Web com ASP.NET 4

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.

Page 20: Desenvolvimento Web com ASP.NET 4

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.

Page 21: Desenvolvimento Web com ASP.NET 4

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.

Page 22: Desenvolvimento Web com ASP.NET 4

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

Page 23: Desenvolvimento Web com ASP.NET 4

<form/><form/><form/>

Page 24: Desenvolvimento Web com ASP.NET 4

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

Page 25: Desenvolvimento Web com ASP.NET 4

Arquitetando…

Page 26: Desenvolvimento Web com ASP.NET 4

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”

Page 27: Desenvolvimento Web com ASP.NET 4

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”

Page 28: Desenvolvimento Web com ASP.NET 4

ASP.NET Pipeline

Page 29: Desenvolvimento Web com ASP.NET 4

Página x Ações

Page 30: Desenvolvimento Web com ASP.NET 4

Concluindo…

Page 31: Desenvolvimento Web com ASP.NET 4

Web FormsPlug & Play

MVCExpõe a arquitetura

Page 32: Desenvolvimento Web com ASP.NET 4

Web FormsPágina Codificação

MVCModelo de dados

Página

Page 33: Desenvolvimento Web com ASP.NET 4

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

Page 34: Desenvolvimento Web com ASP.NET 4

www.asp.netweblogs.asp.net/scottguhaacked.commsdn.com.brrodrigokono.net marcelopaiva.net

Links

Page 35: Desenvolvimento Web com ASP.NET 4

Feedback e perguntas http://www.facebook.com/devgoias

Rodrigo [email protected] - @rodrigokono

Marcelo [email protected] - @marcelo_paiva

Obrigado

Page 36: Desenvolvimento Web com ASP.NET 4

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