desenvolvimento web com asp.net 4

Post on 22-Jun-2015

593 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

top related