SlideShare uma empresa Scribd logo
1 de 78
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET MVC 3
Mais poder no ASP.NET MVC
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
About: Vinicius Quaiato
• Arquitetura e desenvolvimento
• Apaixonado pelo que faz
• Apaixonado por MVC
• .NET Architects
• .NET Magazine
• Vegetariano
• Pai
• Santista
• Geek
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
Contact: me
• http://viniciusquaiato.com
• vinicius.quaiato@gmail.com
– msn e gtalk
• @vquaiato
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
Lambda3
• Parceria
• http://lambda3.com.br
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
Objetivos
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET?
• Framework web
• Free
• Roda em cima do .NET
• Utiliza-se C# ou VB.NET
• Independe de Browser
• Aplicações rodam no IIS
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET?
• Conjunto de componentes
• Possibilita escolha de componentes
– Terceiros
– Microsoft
• Possui uma enorme comunidade
• Milhares de aplicações
• Não é o mesmo que WebForms!
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET?
Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET MVC?
• Parte do ASP.NET
• Uma forma de programar ASP.NET
• Um framework
– Classes
– Componentes
– Templates de projeto
Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET MVC?
• Framework que implementa padrão MVC
• MVC é um padrão arquitetural
– Não é apenas uma tecnologia
Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que é ASP.NET MVC?
Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebForms é ruim?
• Depende!
• Uma plataforma madura
• Possui cerca de 10 anos de mercado
• Fornece uma vasta variedade de
controles
• Trabalha com o modelo de Forms comum
aos desenvolvedores desktop
Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebForms é ruim?
• Ciclo de vida muito complexo
• Dificuldade em testar
• Difícil separar lógica de domínio de lógica
de interface
• Difícil controlar a saída para o browser
• Difícil trabalhar com Ajax
• MS Ajax é muito ruim
Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET Page life cycle
Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebForms é ruim?
• Há quem consiga trabalhar bem com ele
• Há quem consiga fazer bons projetos
• Há quem esteja acostumado com ele
Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
• Então...
Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Não precisa ser tão complicado!
Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET MVC é cool!
Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Por que usar ASP.NET MVC?
• Padrão de arquitetura
• Framework possibilita SoC
– Separação de conceitos/resposabilidades
– Maior coesão
– Maior clareza
– Facilidade no desenvolvimento
Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Por que usar ASP.NET MVC?
• Permite o trabalho com TDD
– É tudo testável!
• Você tem controle do HTML gerado
• Lógica de negócios não se mistura com
lógica de interface
Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando usar MVC?
• Sempre?!
Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Projetos simples não devem usar MVC
Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Projetos simples não devem usar MVC
Mentira!
Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• A equipe não conhece o ASP.NET MVC
Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• A equipe não conhece o ASP.NET MVC
Mentira!
Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar de controles prontos
Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar de controles prontos
Mentira!
Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar trabalhar com AJAX
Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar trabalhar com AJAX
Mentira!
Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Meu projeto já é WebForms
Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Meu projeto já é WebForms
Verdade!
Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Preciso de um framework maduro
Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Preciso de um framework maduro
Mentira!
Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar de mais profissionais do mercado
Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Precisar de mais profissionais do mercado
Mentira!
Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Preciso fazer meu projeto rápido
Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando não usar MVC?
• Preciso fazer meu projeto rápido
Mentira!
Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Quando usar ASP.NET MVC?
• Então...
• ...use ASP.NET MVC em todas as
situações anteriores!
Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Qual usar?
• ASP.NET MVC 1?
• ASP.NET MVC 2?
• ASP.NET MVC 3?
Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET
mvc 3
Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que há de novo no MVC 3?
Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• View Engine
• Uma forma de criar as Views
• Não é uma nova linguagem
– Usa-se C# ou VB
• Criado para facilitar o trabalho com as
views
• Transição de HTML para server side
quase transparente
• Ele é muito inteligente
Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• Objetivo é facilitar
• Chega de <% %>
• Agora é simplesmente @
• Conhece HTML e conhece C#/VB
• Agora no Release Candidate há
colorização e intellisense
Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Primeiro contato com Razor
Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• Podemos trabalhar com statements
– Condicionais
– Declarações de variáveis
– Multi line statements
– Mesclar HTML + server code
• Sim, o Razor é inteligente demais!
Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Conhecendo a sintaxe do Razor
Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• A idéia é facilitar o uso com o Razor:
– Helpers
– Functions
• Helpers no geral são código server side
que produz código HTML
• Functions são métodos não não possuem
output HTML
Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Escrevendo Helpers com Razor
• Escrevendo functions com Razor
Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• Facilidades na criação de templates
• Não é necessário trabalhar com
MasterPages
• Criam-se páginas de layout e sections
– As sections são customizadas
Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Layout Pages com Razor
Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Razor
• Possibilidade de executar código da View
antes de carregar
• Ajuda a manter algumas coisas em um
único ponto
• Mantém o DRY
Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Mantendo DRY com _ViewStart.cshtml
Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Dynamic ViewModel
• Facilidade no acesso e manipulação do
ViewData
• Utiliza recursos de programação dinâmica
do .NET 4
• Funciona tanto do lado do controller
quanto da view
• Mantém o código mais legível
Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Dynamic ViewModel
Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Usando Dynamic ViewModels
Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebHelpers
• Helpers criados para facilitar algumas
ativiades:
– Envio de emails
– Criação e exibição de charts
– Criação e manipulação de dados tabulares
(grid)
– Anti forgery
– Criptografia
– Json
– E outros.
Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
WebHelpers
• A idéia é facilitar
• Reaproveitar o trabalho
• Se preocupar mais com o negócio do que
com a tecnologia
• Utilizar o poder do framework
Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• WebChart, WebMail e WebGrid helpers
Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ActionResult types
• Dois novos tipos de ActionResult
• Retornam status code apropriados
• HttpNotFound
• HttpStatusCode
• Informações importantes para search
engines
Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Usando os novos ActionResult types
Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Global Filters
• Filtros definidos para controllers
• Aplica-se de forma global a todos os
controllers
• Conseguem fazer a interceptação das
actions
• Conseguem executar atividades em
momentos chave
• Mantém o DRY
Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Utilizando Global Filters
Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
IDependencyResolver
• Uma forma simples de resolver
dependências
• Tudo via configuração
• TDD fica mais simples
• Responsabilidades ficam separadas
• Só é necessário informar quem sabe
resolver as coisas
Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Simplificando com IDependencyResolver
Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
ASP.NET MVC 3 RC
• Suporte a controle de session state dos
controllers
• Output cache para child actions
• Colorização e intellisense do Razor
• Novos atributos de validação
– Compare
– Remote
Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Sessionless controllers
• HTTP é stateless, não mantém estado
• Ajuda evitar uso descabível se sessions
• Sessões não são para passar parâmetros
• Sessões não são “banco de dados”
• Session não é thread safe
– Múltiplos requests do mesmo user criarão
uma fila
– Sessionless permite processar em paralelo
Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Trabalhando com sessionless controllers
Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Output cache
• Já existe no ASP.NET
• A novidade é output cache para child
actions
• Faz cache da action e não de toda uma
view
• Granular
– Pode variar por parâmetros
– Facilmente configurável com atributtes
Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Demo
• Usando output cache para child actions
Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
O que faltou?
• JavaScript/JQuery não obstrusivo
• Atributos de validação
• Request Validations
• IViewActivator e IControllerActivator
Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
• Muito obrigado!
Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Contact: me
• http://viniciusquaiato.com
• vinicius.quaiato@gmail.com
– msn e gtalk
• @vquaiato
Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
Links
• http://asp.net/mvc
• http://asp.net/mvc/mvc3
• http://weblogs.asp.net/scottgu/
• http://haacked.com/
• http://viniciusquaiato.com/blog/asp-net-mvc-3/

Mais conteúdo relacionado

Mais procurados

Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net MvcGiovanni Bassi
 
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
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCMichael Costa
 
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
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryReinaldo Junior
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONIFábio Delboni
 
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
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaHenrique Limas
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sériosaspi2
 
Introdução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações webIntrodução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações webRodrigo Branas
 
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
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsEmerson Soares
 
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 AJAXManuel Lemos
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 

Mais procurados (20)

Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net Mvc
 
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?
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
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...
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Nadando em Dinheiro com jQuery
Nadando em Dinheiro com jQueryNadando em Dinheiro com jQuery
Nadando em Dinheiro com jQuery
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
 
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...
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Testando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o KarmaTestando uma aplicação AngularJS utilizando o Karma
Testando uma aplicação AngularJS utilizando o Karma
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sério
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Introdução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações webIntrodução ao desenvolvimento de aplicações web
Introdução ao desenvolvimento de aplicações web
 
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)
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 
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
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
React Native na globo.com
React Native na globo.comReact Native na globo.com
React Native na globo.com
 

Destaque

Imersão hybrid apps
Imersão   hybrid appsImersão   hybrid apps
Imersão hybrid appsAdalto Junior
 
RevvNRG Plano de Carreira e Bonificaçoes
RevvNRG Plano de Carreira e BonificaçoesRevvNRG Plano de Carreira e Bonificaçoes
RevvNRG Plano de Carreira e BonificaçoesWellington Dourado
 
A DIFICULDADE DA MUDANÇA: MARKETING E POSICIONAMENTO NO RIO DO RASTRO ECO RESORT
A DIFICULDADE DA MUDANÇA: MARKETING E POSICIONAMENTO NO RIO DO RASTRO ECO RESORTA DIFICULDADE DA MUDANÇA: MARKETING E POSICIONAMENTO NO RIO DO RASTRO ECO RESORT
A DIFICULDADE DA MUDANÇA: MARKETING E POSICIONAMENTO NO RIO DO RASTRO ECO RESORTPedro Uva
 
Guia do bixo 2010
Guia do bixo 2010Guia do bixo 2010
Guia do bixo 2010eltermann
 
Capacitacao telecelula 2012
Capacitacao telecelula 2012Capacitacao telecelula 2012
Capacitacao telecelula 2012Supremaraniele
 
Sigma Metais - Catálogo de produtos - 2013
Sigma Metais - Catálogo de produtos - 2013Sigma Metais - Catálogo de produtos - 2013
Sigma Metais - Catálogo de produtos - 2013Sigma Metais
 
Cloud Computing with InduSoft
Cloud Computing with InduSoftCloud Computing with InduSoft
Cloud Computing with InduSoftAVEVA
 
Globalcode bitrix24 cloud
Globalcode bitrix24 cloudGlobalcode bitrix24 cloud
Globalcode bitrix24 cloudGlobalCodeMx
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation ServerMaira Iantas
 
Segunda Empregável - Edição 32
Segunda Empregável - Edição 32Segunda Empregável - Edição 32
Segunda Empregável - Edição 32Fernando Anselmo
 
Boletim Novembro 2010
Boletim Novembro 2010Boletim Novembro 2010
Boletim Novembro 2010willams
 
Múltiplas Soluções Consultoria Empresarial
Múltiplas Soluções Consultoria EmpresarialMúltiplas Soluções Consultoria Empresarial
Múltiplas Soluções Consultoria EmpresarialMarcos Alves
 

Destaque (20)

Imersão hybrid apps
Imersão   hybrid appsImersão   hybrid apps
Imersão hybrid apps
 
Grupo ii
Grupo iiGrupo ii
Grupo ii
 
RevvNRG Plano de Carreira e Bonificaçoes
RevvNRG Plano de Carreira e BonificaçoesRevvNRG Plano de Carreira e Bonificaçoes
RevvNRG Plano de Carreira e Bonificaçoes
 
A DIFICULDADE DA MUDANÇA: MARKETING E POSICIONAMENTO NO RIO DO RASTRO ECO RESORT
A DIFICULDADE DA MUDANÇA: MARKETING E POSICIONAMENTO NO RIO DO RASTRO ECO RESORTA DIFICULDADE DA MUDANÇA: MARKETING E POSICIONAMENTO NO RIO DO RASTRO ECO RESORT
A DIFICULDADE DA MUDANÇA: MARKETING E POSICIONAMENTO NO RIO DO RASTRO ECO RESORT
 
Projeções para o Agronegócio - Outlook Brasil 2022
Projeções para o Agronegócio - Outlook Brasil 2022Projeções para o Agronegócio - Outlook Brasil 2022
Projeções para o Agronegócio - Outlook Brasil 2022
 
Guia do bixo 2010
Guia do bixo 2010Guia do bixo 2010
Guia do bixo 2010
 
WorkShop Venda Mais....
WorkShop Venda Mais.... WorkShop Venda Mais....
WorkShop Venda Mais....
 
Capacitacao telecelula 2012
Capacitacao telecelula 2012Capacitacao telecelula 2012
Capacitacao telecelula 2012
 
Sigma Metais - Catálogo de produtos - 2013
Sigma Metais - Catálogo de produtos - 2013Sigma Metais - Catálogo de produtos - 2013
Sigma Metais - Catálogo de produtos - 2013
 
Cloud Computing with InduSoft
Cloud Computing with InduSoftCloud Computing with InduSoft
Cloud Computing with InduSoft
 
Globalcode bitrix24 cloud
Globalcode bitrix24 cloudGlobalcode bitrix24 cloud
Globalcode bitrix24 cloud
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 
Libr. de Literatura
Libr. de LiteraturaLibr. de Literatura
Libr. de Literatura
 
Asp.net
Asp.netAsp.net
Asp.net
 
Tdc2015
Tdc2015Tdc2015
Tdc2015
 
Segunda Empregável - Edição 32
Segunda Empregável - Edição 32Segunda Empregável - Edição 32
Segunda Empregável - Edição 32
 
Boletim Novembro 2010
Boletim Novembro 2010Boletim Novembro 2010
Boletim Novembro 2010
 
Cultura visual
Cultura visualCultura visual
Cultura visual
 
Múltiplas Soluções Consultoria Empresarial
Múltiplas Soluções Consultoria EmpresarialMúltiplas Soluções Consultoria Empresarial
Múltiplas Soluções Consultoria Empresarial
 
Outlook
OutlookOutlook
Outlook
 

Semelhante a ASP.NET MVC 3 Recursos

Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoVinicius Quaiato
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Max Claus Nunes
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance RailsVitor Pellegrino
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
 
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptTutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptWillys Campos
 
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...Rodrigo Urubatan
 
Javascript State of the Union 2015
Javascript State of the Union 2015Javascript State of the Union 2015
Javascript State of the Union 2015Huge
 
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?Vinícius Lourenço
 
Quebrando paradigmas com wordpress
Quebrando paradigmas com wordpressQuebrando paradigmas com wordpress
Quebrando paradigmas com wordpressPablo Ribeiro
 
Tecnologias e processo de desenvolvimento na Codeminer42 e Locaweb
Tecnologias e processo de desenvolvimento na Codeminer42 e LocawebTecnologias e processo de desenvolvimento na Codeminer42 e Locaweb
Tecnologias e processo de desenvolvimento na Codeminer42 e LocawebTiago Freire
 
JavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorJavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorLoiane Groner
 
Workshop web realtime
Workshop web realtimeWorkshop web realtime
Workshop web realtimept_programar
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançadoTargettrust
 
Login de usuários: podemos fazer algo melhor que usar senhas ou serviços cent...
Login de usuários: podemos fazer algo melhor que usar senhas ou serviços cent...Login de usuários: podemos fazer algo melhor que usar senhas ou serviços cent...
Login de usuários: podemos fazer algo melhor que usar senhas ou serviços cent...Francois Marier
 
Desmitificando o WordPress
Desmitificando o WordPressDesmitificando o WordPress
Desmitificando o WordPressTiago Pires
 
Palestra / SDD / Crossbrowsing
Palestra / SDD / CrossbrowsingPalestra / SDD / Crossbrowsing
Palestra / SDD / Crossbrowsinghugodiasneto
 

Semelhante a ASP.NET MVC 3 Recursos (20)

Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptTutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
 
Votação Aveiro
Votação AveiroVotação Aveiro
Votação Aveiro
 
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
 
Javascript State of the Union 2015
Javascript State of the Union 2015Javascript State of the Union 2015
Javascript State of the Union 2015
 
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
 
Quebrando paradigmas com wordpress
Quebrando paradigmas com wordpressQuebrando paradigmas com wordpress
Quebrando paradigmas com wordpress
 
Tecnologias e processo de desenvolvimento na Codeminer42 e Locaweb
Tecnologias e processo de desenvolvimento na Codeminer42 e LocawebTecnologias e processo de desenvolvimento na Codeminer42 e Locaweb
Tecnologias e processo de desenvolvimento na Codeminer42 e Locaweb
 
JavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptorJavaCE Conference 2012: ExtJS 4 + VRaptor
JavaCE Conference 2012: ExtJS 4 + VRaptor
 
Workshop web realtime
Workshop web realtimeWorkshop web realtime
Workshop web realtime
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
Wordpress101
Wordpress101Wordpress101
Wordpress101
 
Login de usuários: podemos fazer algo melhor que usar senhas ou serviços cent...
Login de usuários: podemos fazer algo melhor que usar senhas ou serviços cent...Login de usuários: podemos fazer algo melhor que usar senhas ou serviços cent...
Login de usuários: podemos fazer algo melhor que usar senhas ou serviços cent...
 
TDC 2015 Florianopolis
TDC 2015 FlorianopolisTDC 2015 Florianopolis
TDC 2015 Florianopolis
 
Desmitificando o WordPress
Desmitificando o WordPressDesmitificando o WordPress
Desmitificando o WordPress
 
Palestra / SDD / Crossbrowsing
Palestra / SDD / CrossbrowsingPalestra / SDD / Crossbrowsing
Palestra / SDD / Crossbrowsing
 

Mais de Vinicius Quaiato

Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Vinicius Quaiato
 
Throughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DBThroughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DBVinicius Quaiato
 
Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017Vinicius Quaiato
 
Microsoft loves open source
Microsoft loves open sourceMicrosoft loves open source
Microsoft loves open sourceVinicius Quaiato
 
Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)Vinicius Quaiato
 
Soluções escaláveis com Microsoft Orleans e Windows Azure
Soluções escaláveis com Microsoft Orleans e Windows AzureSoluções escaláveis com Microsoft Orleans e Windows Azure
Soluções escaláveis com Microsoft Orleans e Windows AzureVinicius Quaiato
 
Universos Paralelos (saindo da zona de conforto)
Universos Paralelos (saindo da zona de conforto)Universos Paralelos (saindo da zona de conforto)
Universos Paralelos (saindo da zona de conforto)Vinicius Quaiato
 
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoArquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoVinicius Quaiato
 
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoArquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoVinicius Quaiato
 
Orientacao a objetos e design patterns - Secomp Londrina
Orientacao a objetos e design patterns - Secomp LondrinaOrientacao a objetos e design patterns - Secomp Londrina
Orientacao a objetos e design patterns - Secomp LondrinaVinicius Quaiato
 
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiatoVinicius Quaiato
 
Patterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud ComputingPatterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud ComputingVinicius Quaiato
 
Windows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureWindows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureVinicius Quaiato
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do WindowsVinicius Quaiato
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do WindowsVinicius Quaiato
 

Mais de Vinicius Quaiato (20)

Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?
 
Throughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DBThroughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DB
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017
 
Microsoft loves open source
Microsoft loves open sourceMicrosoft loves open source
Microsoft loves open source
 
Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)
 
IdentityServer 4
IdentityServer 4IdentityServer 4
IdentityServer 4
 
Azure WebJobs
Azure WebJobsAzure WebJobs
Azure WebJobs
 
Soluções escaláveis com Microsoft Orleans e Windows Azure
Soluções escaláveis com Microsoft Orleans e Windows AzureSoluções escaláveis com Microsoft Orleans e Windows Azure
Soluções escaláveis com Microsoft Orleans e Windows Azure
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
Universos Paralelos (saindo da zona de conforto)
Universos Paralelos (saindo da zona de conforto)Universos Paralelos (saindo da zona de conforto)
Universos Paralelos (saindo da zona de conforto)
 
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoArquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
 
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoArquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
 
Orientacao a objetos e design patterns - Secomp Londrina
Orientacao a objetos e design patterns - Secomp LondrinaOrientacao a objetos e design patterns - Secomp Londrina
Orientacao a objetos e design patterns - Secomp Londrina
 
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
 
Patterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud ComputingPatterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud Computing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Windows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureWindows Phone 7 & Windows Azure
Windows Phone 7 & Windows Azure
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do Windows
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do Windows
 

ASP.NET MVC 3 Recursos

  • 1. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET MVC 3 Mais poder no ASP.NET MVC
  • 2. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com About: Vinicius Quaiato • Arquitetura e desenvolvimento • Apaixonado pelo que faz • Apaixonado por MVC • .NET Architects • .NET Magazine • Vegetariano • Pai • Santista • Geek
  • 3. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com Contact: me • http://viniciusquaiato.com • vinicius.quaiato@gmail.com – msn e gtalk • @vquaiato
  • 4. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com Lambda3 • Parceria • http://lambda3.com.br
  • 5. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com Objetivos
  • 6. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com O que é ASP.NET? • Framework web • Free • Roda em cima do .NET • Utiliza-se C# ou VB.NET • Independe de Browser • Aplicações rodam no IIS
  • 7. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com O que é ASP.NET? • Conjunto de componentes • Possibilita escolha de componentes – Terceiros – Microsoft • Possui uma enorme comunidade • Milhares de aplicações • Não é o mesmo que WebForms!
  • 8. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com O que é ASP.NET?
  • 9. Globalcode – open4educationVinicius Quaiato @vquaiato http://viniciusquaiato.com O que é ASP.NET MVC? • Parte do ASP.NET • Uma forma de programar ASP.NET • Um framework – Classes – Componentes – Templates de projeto
  • 10. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com O que é ASP.NET MVC? • Framework que implementa padrão MVC • MVC é um padrão arquitetural – Não é apenas uma tecnologia
  • 11. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com O que é ASP.NET MVC?
  • 12. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com WebForms é ruim? • Depende! • Uma plataforma madura • Possui cerca de 10 anos de mercado • Fornece uma vasta variedade de controles • Trabalha com o modelo de Forms comum aos desenvolvedores desktop
  • 13. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com WebForms é ruim? • Ciclo de vida muito complexo • Dificuldade em testar • Difícil separar lógica de domínio de lógica de interface • Difícil controlar a saída para o browser • Difícil trabalhar com Ajax • MS Ajax é muito ruim
  • 14. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
  • 15. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET Page life cycle
  • 16. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com WebForms é ruim? • Há quem consiga trabalhar bem com ele • Há quem consiga fazer bons projetos • Há quem esteja acostumado com ele
  • 17. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
  • 18. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
  • 19. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com
  • 20. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com • Então...
  • 21. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Não precisa ser tão complicado!
  • 22. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET MVC é cool!
  • 23. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Por que usar ASP.NET MVC? • Padrão de arquitetura • Framework possibilita SoC – Separação de conceitos/resposabilidades – Maior coesão – Maior clareza – Facilidade no desenvolvimento
  • 24. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Por que usar ASP.NET MVC? • Permite o trabalho com TDD – É tudo testável! • Você tem controle do HTML gerado • Lógica de negócios não se mistura com lógica de interface
  • 25. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando usar MVC? • Sempre?!
  • 26. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Projetos simples não devem usar MVC
  • 27. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Projetos simples não devem usar MVC Mentira!
  • 28. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • A equipe não conhece o ASP.NET MVC
  • 29. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • A equipe não conhece o ASP.NET MVC Mentira!
  • 30. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar de controles prontos
  • 31. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar de controles prontos Mentira!
  • 32. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar trabalhar com AJAX
  • 33. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar trabalhar com AJAX Mentira!
  • 34. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Meu projeto já é WebForms
  • 35. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Meu projeto já é WebForms Verdade!
  • 36. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Preciso de um framework maduro
  • 37. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Preciso de um framework maduro Mentira!
  • 38. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar de mais profissionais do mercado
  • 39. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Precisar de mais profissionais do mercado Mentira!
  • 40. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Preciso fazer meu projeto rápido
  • 41. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando não usar MVC? • Preciso fazer meu projeto rápido Mentira!
  • 42. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Quando usar ASP.NET MVC? • Então... • ...use ASP.NET MVC em todas as situações anteriores!
  • 43. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Qual usar? • ASP.NET MVC 1? • ASP.NET MVC 2? • ASP.NET MVC 3?
  • 44. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET mvc 3
  • 45. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com O que há de novo no MVC 3?
  • 46. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Razor
  • 47. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Razor • View Engine • Uma forma de criar as Views • Não é uma nova linguagem – Usa-se C# ou VB • Criado para facilitar o trabalho com as views • Transição de HTML para server side quase transparente • Ele é muito inteligente
  • 48. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Razor • Objetivo é facilitar • Chega de <% %> • Agora é simplesmente @ • Conhece HTML e conhece C#/VB • Agora no Release Candidate há colorização e intellisense
  • 49. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Primeiro contato com Razor
  • 50. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Razor • Podemos trabalhar com statements – Condicionais – Declarações de variáveis – Multi line statements – Mesclar HTML + server code • Sim, o Razor é inteligente demais!
  • 51. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Conhecendo a sintaxe do Razor
  • 52. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Razor • A idéia é facilitar o uso com o Razor: – Helpers – Functions • Helpers no geral são código server side que produz código HTML • Functions são métodos não não possuem output HTML
  • 53. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Escrevendo Helpers com Razor • Escrevendo functions com Razor
  • 54. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Razor • Facilidades na criação de templates • Não é necessário trabalhar com MasterPages • Criam-se páginas de layout e sections – As sections são customizadas
  • 55. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Layout Pages com Razor
  • 56. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Razor • Possibilidade de executar código da View antes de carregar • Ajuda a manter algumas coisas em um único ponto • Mantém o DRY
  • 57. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Mantendo DRY com _ViewStart.cshtml
  • 58. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Dynamic ViewModel • Facilidade no acesso e manipulação do ViewData • Utiliza recursos de programação dinâmica do .NET 4 • Funciona tanto do lado do controller quanto da view • Mantém o código mais legível
  • 59. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Dynamic ViewModel
  • 60. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Usando Dynamic ViewModels
  • 61. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com WebHelpers • Helpers criados para facilitar algumas ativiades: – Envio de emails – Criação e exibição de charts – Criação e manipulação de dados tabulares (grid) – Anti forgery – Criptografia – Json – E outros.
  • 62. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com WebHelpers • A idéia é facilitar • Reaproveitar o trabalho • Se preocupar mais com o negócio do que com a tecnologia • Utilizar o poder do framework
  • 63. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • WebChart, WebMail e WebGrid helpers
  • 64. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com ActionResult types • Dois novos tipos de ActionResult • Retornam status code apropriados • HttpNotFound • HttpStatusCode • Informações importantes para search engines
  • 65. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Usando os novos ActionResult types
  • 66. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Global Filters • Filtros definidos para controllers • Aplica-se de forma global a todos os controllers • Conseguem fazer a interceptação das actions • Conseguem executar atividades em momentos chave • Mantém o DRY
  • 67. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Utilizando Global Filters
  • 68. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com IDependencyResolver • Uma forma simples de resolver dependências • Tudo via configuração • TDD fica mais simples • Responsabilidades ficam separadas • Só é necessário informar quem sabe resolver as coisas
  • 69. Globalcode – open4education9 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Simplificando com IDependencyResolver
  • 70. Globalcode – open4education0 Vinicius Quaiato @vquaiato http://viniciusquaiato.com ASP.NET MVC 3 RC • Suporte a controle de session state dos controllers • Output cache para child actions • Colorização e intellisense do Razor • Novos atributos de validação – Compare – Remote
  • 71. Globalcode – open4education1 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Sessionless controllers • HTTP é stateless, não mantém estado • Ajuda evitar uso descabível se sessions • Sessões não são para passar parâmetros • Sessões não são “banco de dados” • Session não é thread safe – Múltiplos requests do mesmo user criarão uma fila – Sessionless permite processar em paralelo
  • 72. Globalcode – open4education2 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Trabalhando com sessionless controllers
  • 73. Globalcode – open4education3 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Output cache • Já existe no ASP.NET • A novidade é output cache para child actions • Faz cache da action e não de toda uma view • Granular – Pode variar por parâmetros – Facilmente configurável com atributtes
  • 74. Globalcode – open4education4 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Demo • Usando output cache para child actions
  • 75. Globalcode – open4education5 Vinicius Quaiato @vquaiato http://viniciusquaiato.com O que faltou? • JavaScript/JQuery não obstrusivo • Atributos de validação • Request Validations • IViewActivator e IControllerActivator
  • 76. Globalcode – open4education6 Vinicius Quaiato @vquaiato http://viniciusquaiato.com • Muito obrigado!
  • 77. Globalcode – open4education7 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Contact: me • http://viniciusquaiato.com • vinicius.quaiato@gmail.com – msn e gtalk • @vquaiato
  • 78. Globalcode – open4education8 Vinicius Quaiato @vquaiato http://viniciusquaiato.com Links • http://asp.net/mvc • http://asp.net/mvc/mvc3 • http://weblogs.asp.net/scottgu/ • http://haacked.com/ • http://viniciusquaiato.com/blog/asp-net-mvc-3/