SlideShare uma empresa Scribd logo
Conhecendo o ASP.Net MVC
                        Giovanni Bassi
                     giggio@giggio.net
           http://unplugged.giggio.net
Giovanni Bassi
Arquiteto de software
Microsoft MVP
Consultoria, gestão, mentoring
Treinamento
C#, VB, J#, F#, etc...
.Net de Beta a Beta
Dezenas de artigos na .Net Magazine
Editor técnico da .Net Magazine
Palestrante
Professor universitário
Líder e fundador do .Net Architects (1º grupo de arquitetura de
software com .Net do Brasil)
Online @
Email: giggio@giggio.net
Blog técnico: http://unplugged.giggio.net
Site: http://giovannibassi.com
Fórum: http://forum.giggio.net

.Net Architects:
Grupo: http://dotnetarchitects.net
Online: http://tinyurl.com/DotNetArch
Agenda
Entendendo Webforms
O que é o ASP.Net MVC
Quando usar
O que é o padrão ASP.Net MVC
Do que eu preciso?
Entendendo o ciclo de vida
FAQ
Mais demos (stretch goals)
  Criando controller e view
  Métodos e ações
  Utilizando um Modelo
  Rotas
ENTENDENDO O WEBFORMS
Entendendo WebForms (WF)
• Primeiro framework de desenvolvimento web
  com ASP.Net
• Existe desde 2001/2002
• Rapidamente tomou parte do mercado,
  efetivamente matando o ASP3
• É hoje A solução de desenvolvimento web com
  .Net
Prós
• Rápido, realmente RAD
• Designer visual
• Controles ricos
• Gerenciamento de estado abstraído
• Fácil de trabalhar
• Migração entre Windows Forms e WebForms é
  muito simples
• Javascript “escondido” do programador
• Fácil integração com Sharepoint
Contras
• Difícil controle sobre o HTML gerado
• Inicialmente tinha problema com standards
  – É fácil continuar sem standards
• Dificuldade na integração com frameworks
  javascript
  – será resolvido na versão 4.0
• Arquitetura não estimula a busca de padrões
  arquiteturais, apesar de suportá-las
• Quase impossível testar GUI
O QUE É O ASP.NET MVC
O que é
•   Um novo template de projeto no Visual Studio
•   Uma opção
•   Uma nova maneira de desenvolver com ASP.Net
•   Um template mais opinativo
O que não é
• Um substituto ao WF
• Uma nova versão do WF
Demo

HELLO WORLD
QUANDO USAR
É para todos?
•   ASP.Net MVC não é para todos
•   É mais complexo
•   Exige mais do desenvolvedor
•   Exige conhecimento de HTML
•   Exige conhecimento de Javascript, CSS, etc
Quando usar: político
•   Time maduro
•   Time disposto ao desafio
•   Time motivado a aprender
•   Tempo do projeto deve permitir
•   Time possui cultura de testes
Quando usar: técnico
• Nada de projetos “híbridos”
• Controle sobre o HTML
• Tamanho do HTML
• Foco em standards
• Flexibilidade
• Foco em padrões de projeto e arquitetura
• Foco em bons princípios de programação (KISS,
  DRY)
• Quiser tirar vantagem do Routing agora
• Dois formulários HTML na mesma página
O QUE É O PADRÃO MVC
MVC = Model View Controller
• É um padrão de arquitetura reconhecido
• Separa lógica de negócio de lógica de
  apresentação
Model




Controller           View
Relatório de vendas
DO QUE PRECISO?
Dependências
• Um único assembly:
                                        Abstractions
  – System.Web.Mvc
• Depende de:
  – System.Web (2.0)
  – System.Core (3.5)                     Routing
  – System.Web Extensions (3.5)
  – System.Web.Abstractions (3.5 SP1)
  – System.Web.Routing (3.5 SP1)
                                           MVC
• Um único namespace:
  – System.Web.Mvc
• Não é parte do SP 1 do .Net 3.5/VS 2008
Recursos e download



http://www.asp.net/mvc
ENTENDENDO O CICLO DE VIDA
Ciclo de vida
1. A tabela de rotas é criada
2. O UrlRoutingModule intercepta o request e
   determina a rota
3. O MvcHandler é ativado e cria o controlador
   esperado
4. A ação do controller é executada
5. Algum dado do modelo é obtido
6. O método View é chamado e uma view é criada
7. A view renderiza
Demo

CICLO DE VIDA
FAQ
FAQ
•   Disponibilidade do framework
•   Estabilidade
•   Performance
•   Segurança
•   Flexibilidade
•   Open Source?
    – Código no Codeplex:
      http://www.codeplex.com/aspnet
• Versão 2.0
Links
• Site do ASP.Net
  – http://www.asp.net/mvc
• Blog do Scot Hanselman (MSFT – Routing/MVC)
  – http://www.hanselman.com/blog/CategoryView.aspx?cate
    gory=ASP.NET+MVC
• Blog do Scott Guthrie (MSFT)
  – http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/defa
    ult.aspx
• Blog do Phil Haack (MSFT – Routing/MVC)
  – http://haacked.com/Tags/ASP.NET%20MVC/default.aspx
• Blog do Rob Conery (MSFT – Routing/MVC)
  – http://blog.wekeroad.com/tags/aspnetmvc
• Meu blog:
  – http://unplugged.giggio.net/?tag=/asp.net+mvc
MAIS DEMOS
Demo

CRIANDO CONTROLLER E VIEW
Demo

MÉTODOS E AÇÕES
Demo

UTILIZANDO UM MODELO
Demo

ROTAS
Mindset

- Nós precisamos de um controle Repeater!
- Nós já o temos, se chama: laço de foreach.


             Conversa entre desenvolvedores da
             Microsoft, segundo relatado por Scott
             Hanselman, do time do MVC.
Obrigado!
   
Online @
Email: giggio@giggio.net
Blog técnico: http://unplugged.giggio.net
Site: http://giovannibassi.com
Fórum: http://forum.giggio.net

.Net Architects:
Grupo: http://dotnetarchitects.net
Online: http://tinyurl.com/DotNetArch

Mais conteúdo relacionado

Mais procurados

Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3
Victor Cavalcante
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
Douglas Aguiar
 
Você não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web appsVocê não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web apps
William Oliveira
 
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Manuel Lemos
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
Cleziel Franzoni da Costa
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
André Luiz Forchesatto
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
guest489a65e
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Rodrigo Branas
 
Primeiros passos no Vue.js
Primeiros passos no Vue.jsPrimeiros passos no Vue.js
Primeiros passos no Vue.js
Joel Rodrigues
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Daniel Makiyama
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
Guilherme Blanco
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
Frederico Maia Arantes
 
Guia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devsGuia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devs
Davidson Fellipe
 
Vuejs
VuejsVuejs
Vuejs
ceife
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com Django
Igor Sobreira
 
O novo ASP.NET - GDG-SP - Outubro/2016
O novo ASP.NET - GDG-SP - Outubro/2016O novo ASP.NET - GDG-SP - Outubro/2016
O novo ASP.NET - GDG-SP - Outubro/2016
Renato Groff
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
Dan Vitoriano
 
C# capturando e salvando imagens da web cam
C#   capturando e salvando imagens da web camC#   capturando e salvando imagens da web cam
C# capturando e salvando imagens da web cam
glauciojesus Glaucio Jesus Ferreira
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
Waldyr Felix
 

Mais procurados (20)

Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3Conheça o ASP.NET MVC 3
Conheça o ASP.NET MVC 3
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Você não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web appsVocê não precisa de uma sopa de letrinhas para criar web apps
Você não precisa de uma sopa de letrinhas para criar web apps
 
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAXDesenvolvimento em Três Camadas com PHP, MVC e AJAX
Desenvolvimento em Três Camadas com PHP, MVC e AJAX
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPRAula Introdução a VRaptor 4 - Pós Java UTFPR
Aula Introdução a VRaptor 4 - Pós Java UTFPR
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
It's Javascript Time
It's Javascript TimeIt's Javascript Time
It's Javascript Time
 
Primeiros passos no Vue.js
Primeiros passos no Vue.jsPrimeiros passos no Vue.js
Primeiros passos no Vue.js
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Guia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devsGuia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devs
 
Vuejs
VuejsVuejs
Vuejs
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com Django
 
O novo ASP.NET - GDG-SP - Outubro/2016
O novo ASP.NET - GDG-SP - Outubro/2016O novo ASP.NET - GDG-SP - Outubro/2016
O novo ASP.NET - GDG-SP - Outubro/2016
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
C# capturando e salvando imagens da web cam
C#   capturando e salvando imagens da web camC#   capturando e salvando imagens da web cam
C# capturando e salvando imagens da web cam
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
 

Semelhante a Introdução ao Asp.Net Mvc

Asp.Net Mvc - Desenvolvendo em N Camadas
Asp.Net Mvc - Desenvolvendo em N CamadasAsp.Net Mvc - Desenvolvendo em N Camadas
Asp.Net Mvc - Desenvolvendo em N Camadas
Giovanni Bassi
 
Microsoft .Net
Microsoft .NetMicrosoft .Net
Microsoft .Net
jaumnc
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
Giovanni Bassi
 
Netbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java DesktopNetbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java Desktopelliando dias
 
ASP.NET Core e Linux: Explorando novas fronteiras - OneDay - Junho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - OneDay - Junho/2017ASP.NET Core e Linux: Explorando novas fronteiras - OneDay - Junho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - OneDay - Junho/2017
Renato Groff
 
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
Renato Groff
 
Asp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 PtAsp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 Pt
Bruno Matos Tavares
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVC
Felipe Pimentel
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Rodrigo Kono
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Rodrigo Kono
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
Fabrício Lopes Sanchez
 
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxDesenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Almir Neto
 
Produtividade
ProdutividadeProdutividade
Produtividade
Elcio Ferreira
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core MVC
Vinicius Mussak
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)elliando dias
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
Renato Groff
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
André Luiz Forchesatto
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 

Semelhante a Introdução ao Asp.Net Mvc (20)

Asp.Net Mvc - Desenvolvendo em N Camadas
Asp.Net Mvc - Desenvolvendo em N CamadasAsp.Net Mvc - Desenvolvendo em N Camadas
Asp.Net Mvc - Desenvolvendo em N Camadas
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Microsoft .Net
Microsoft .NetMicrosoft .Net
Microsoft .Net
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
Netbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java DesktopNetbeans 6.0: Aplicações Java Desktop
Netbeans 6.0: Aplicações Java Desktop
 
ASP.NET Core e Linux: Explorando novas fronteiras - OneDay - Junho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - OneDay - Junho/2017ASP.NET Core e Linux: Explorando novas fronteiras - OneDay - Junho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - OneDay - Junho/2017
 
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
ASP.NET Core e Linux - ASP.NET Core Day - Maio/2017
 
Asp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 PtAsp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 Pt
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVC
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
 
Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4Desenvolvimento Web com ASP.NET 4
Desenvolvimento Web com ASP.NET 4
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e AjaxDesenvolvimento em Três Camadas com PHP, MVC e Ajax
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
 
Produtividade
ProdutividadeProdutividade
Produtividade
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core MVC
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 

Mais de Giovanni Bassi

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviços
Giovanni Bassi
 
Sendo ágil com git
Sendo ágil com gitSendo ágil com git
Sendo ágil com git
Giovanni Bassi
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NET
Giovanni Bassi
 
Novidades do c# 7 e 8
Novidades do c# 7 e 8Novidades do c# 7 e 8
Novidades do c# 7 e 8
Giovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
Giovanni Bassi
 
Conhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesConhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetes
Giovanni Bassi
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Giovanni Bassi
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8
Giovanni Bassi
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deploy
Giovanni Bassi
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineres
Giovanni Bassi
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2
Giovanni Bassi
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux
Giovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
Giovanni Bassi
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.js
Giovanni Bassi
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.js
Giovanni Bassi
 
O Futuro do C#: C#8
O Futuro do C#: C#8O Futuro do C#: C#8
O Futuro do C#: C#8
Giovanni Bassi
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windows
Giovanni Bassi
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET Core
Giovanni Bassi
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com docker
Giovanni Bassi
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Giovanni Bassi
 

Mais de Giovanni Bassi (20)

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviços
 
Sendo ágil com git
Sendo ágil com gitSendo ágil com git
Sendo ágil com git
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NET
 
Novidades do c# 7 e 8
Novidades do c# 7 e 8Novidades do c# 7 e 8
Novidades do c# 7 e 8
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
Conhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetesConhecendo o AKS, o azure container services com kubernetes
Conhecendo o AKS, o azure container services com kubernetes
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deploy
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineres
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.js
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.js
 
O Futuro do C#: C#8
O Futuro do C#: C#8O Futuro do C#: C#8
O Futuro do C#: C#8
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windows
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET Core
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com docker
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
 

Último

Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!
Jonathas Muniz
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 

Último (7)

Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!Guardioes Digitais em ação: Como criar senhas seguras!
Guardioes Digitais em ação: Como criar senhas seguras!
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 

Introdução ao Asp.Net Mvc

  • 1. Conhecendo o ASP.Net MVC Giovanni Bassi giggio@giggio.net http://unplugged.giggio.net
  • 2. Giovanni Bassi Arquiteto de software Microsoft MVP Consultoria, gestão, mentoring Treinamento C#, VB, J#, F#, etc... .Net de Beta a Beta Dezenas de artigos na .Net Magazine Editor técnico da .Net Magazine Palestrante Professor universitário Líder e fundador do .Net Architects (1º grupo de arquitetura de software com .Net do Brasil)
  • 3. Online @ Email: giggio@giggio.net Blog técnico: http://unplugged.giggio.net Site: http://giovannibassi.com Fórum: http://forum.giggio.net .Net Architects: Grupo: http://dotnetarchitects.net Online: http://tinyurl.com/DotNetArch
  • 4. Agenda Entendendo Webforms O que é o ASP.Net MVC Quando usar O que é o padrão ASP.Net MVC Do que eu preciso? Entendendo o ciclo de vida FAQ Mais demos (stretch goals) Criando controller e view Métodos e ações Utilizando um Modelo Rotas
  • 6. Entendendo WebForms (WF) • Primeiro framework de desenvolvimento web com ASP.Net • Existe desde 2001/2002 • Rapidamente tomou parte do mercado, efetivamente matando o ASP3 • É hoje A solução de desenvolvimento web com .Net
  • 7. Prós • Rápido, realmente RAD • Designer visual • Controles ricos • Gerenciamento de estado abstraído • Fácil de trabalhar • Migração entre Windows Forms e WebForms é muito simples • Javascript “escondido” do programador • Fácil integração com Sharepoint
  • 8. Contras • Difícil controle sobre o HTML gerado • Inicialmente tinha problema com standards – É fácil continuar sem standards • Dificuldade na integração com frameworks javascript – será resolvido na versão 4.0 • Arquitetura não estimula a busca de padrões arquiteturais, apesar de suportá-las • Quase impossível testar GUI
  • 9. O QUE É O ASP.NET MVC
  • 10. O que é • Um novo template de projeto no Visual Studio • Uma opção • Uma nova maneira de desenvolver com ASP.Net • Um template mais opinativo
  • 11. O que não é • Um substituto ao WF • Uma nova versão do WF
  • 14. É para todos? • ASP.Net MVC não é para todos • É mais complexo • Exige mais do desenvolvedor • Exige conhecimento de HTML • Exige conhecimento de Javascript, CSS, etc
  • 15. Quando usar: político • Time maduro • Time disposto ao desafio • Time motivado a aprender • Tempo do projeto deve permitir • Time possui cultura de testes
  • 16. Quando usar: técnico • Nada de projetos “híbridos” • Controle sobre o HTML • Tamanho do HTML • Foco em standards • Flexibilidade • Foco em padrões de projeto e arquitetura • Foco em bons princípios de programação (KISS, DRY) • Quiser tirar vantagem do Routing agora • Dois formulários HTML na mesma página
  • 17. O QUE É O PADRÃO MVC
  • 18. MVC = Model View Controller • É um padrão de arquitetura reconhecido • Separa lógica de negócio de lógica de apresentação
  • 22. Dependências • Um único assembly: Abstractions – System.Web.Mvc • Depende de: – System.Web (2.0) – System.Core (3.5) Routing – System.Web Extensions (3.5) – System.Web.Abstractions (3.5 SP1) – System.Web.Routing (3.5 SP1) MVC • Um único namespace: – System.Web.Mvc • Não é parte do SP 1 do .Net 3.5/VS 2008
  • 25. Ciclo de vida 1. A tabela de rotas é criada 2. O UrlRoutingModule intercepta o request e determina a rota 3. O MvcHandler é ativado e cria o controlador esperado 4. A ação do controller é executada 5. Algum dado do modelo é obtido 6. O método View é chamado e uma view é criada 7. A view renderiza
  • 27. FAQ
  • 28. FAQ • Disponibilidade do framework • Estabilidade • Performance • Segurança • Flexibilidade • Open Source? – Código no Codeplex: http://www.codeplex.com/aspnet • Versão 2.0
  • 29. Links • Site do ASP.Net – http://www.asp.net/mvc • Blog do Scot Hanselman (MSFT – Routing/MVC) – http://www.hanselman.com/blog/CategoryView.aspx?cate gory=ASP.NET+MVC • Blog do Scott Guthrie (MSFT) – http://weblogs.asp.net/scottgu/archive/tags/ASP.NET/defa ult.aspx • Blog do Phil Haack (MSFT – Routing/MVC) – http://haacked.com/Tags/ASP.NET%20MVC/default.aspx • Blog do Rob Conery (MSFT – Routing/MVC) – http://blog.wekeroad.com/tags/aspnetmvc • Meu blog: – http://unplugged.giggio.net/?tag=/asp.net+mvc
  • 35. Mindset - Nós precisamos de um controle Repeater! - Nós já o temos, se chama: laço de foreach. Conversa entre desenvolvedores da Microsoft, segundo relatado por Scott Hanselman, do time do MVC.
  • 36. Obrigado!
  • 37. Online @ Email: giggio@giggio.net Blog técnico: http://unplugged.giggio.net Site: http://giovannibassi.com Fórum: http://forum.giggio.net .Net Architects: Grupo: http://dotnetarchitects.net Online: http://tinyurl.com/DotNetArch