SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
ASP.NET MVC

Alexandre Tarifa
Alexandre Tarifa
•   Bacharel em Ciência da Computação – UMESP
•   Pós graduado em Ciência da Computação – UFSCAR

•   Líder e um dos criadores da comunidade Codificando .Net (www.codificando.net)

•   Autor de 3 livros (VB.NET Express – Best Seller, C# Express – Best Seller e VSTS Rocks)

•   MVP – Microsoft Most Valuable Professional – Visual Developer – Visual Basic/Visual Basic .Net

•   Experiência profissional em multinacionais, consultoria, farmacêutica e Internet (.com)

•   MCT (Microsoft Certified Trainer, MCAD (Microsoft Certified Application Developer e MCP
    (Microsoft Certified Professional)

•   Gerente de TI – portal Minha Vida (www.minhavida.com.br)
•   Diretor da Treinando .Net – empresa de treinamentos - plataforma .Net (www.treinando.net)
ASP.NET MVC é gratuito e permite que os desenvolvedores
facilmente e com simplicidade contrua aplicações web seguindo o
padrão Model-View-Controller. Permite o total controle sobre o
HTML e URLs, permite integração com AJAX e facilita a
implementação de teste driven development.
Demo: Web Forms
Origem
1978 por Trygve Reenskaug, durante uma visita científica ao
grupo Smalltalk. Nome inicial Thing Model View Editor.
Diversas tecnologias, como o CakePHP, Ruby On Rails, Django,
Tapestry (java), etc..


O projeto MonoRail (www.castleproject.org) foi o primeiro
framework open source (de código aberto) para ASP.NET.

Scott Guthrie, co-fundador do ASP.NET MVC Framework,
participou da primeira conferência Alt.Net em outubro de
2007, onde falou sobre o framework. A apresentação feita
por ele causou tanta euforia que o framework tornou-se um
produto oficial da Microsoft.
Arquitetura
M   Modelos (Models) – que contém toda a lógica da aplicação
    que não faz parte de uma Visão (View). Isso quer dizer que
    todas as regras de negócios, validações e acesso a dados
    estão contidas no Modelo;




V   Visões (Views) – é a camada de apresentação, a interface
    que será mostrada para o usuário. Uma View contém todo
    o HTML e lógica necessários para a correta exibição das
    páginas aos usuários;




C   Controladores (Controllers) – são responsáveis por interagir
    entre os modelos e as visões. Contém a lógica de controle
    da aplicação que não está presente nas visões e nos
    modelos. Controla o fluxo da aplicação.
Demo: criação de projeto no Visual Studio 2010
Rotas
Rotas
• Mapeamentos de requisições feitas pelo
  browser para um controlador e uma ação
  específica.
• Mapeamento é realizado no arquivo
  global.asax (controla o ciclo da aplicação).
Formato daNome da rotapelo usuário
Valores padrão caso não seja informado
             url acessada
Nome do controller
 Nome da action
   Parâmetro
Demo: rota padrão, customização de rotas e restrições
Modelos (Models)
Models
• Podemos dizer que, basicamente, toda a
  lógica que não for de views e de controllers
  será feita nos Modelos. Nos Models podemos
  fazer validação, regra de acesso a dados e
  regra de negócios.
Controlador (Controller)
Controller
• São responsáveis por responder as requisições
  realizadas. Cada requisição feita pelo
  navegador é mapeada para um controller
  próprio.
Controller
• Exemplo:

http://localhost/Produto/Index/3



               Controller - ProdutoController
Actions
• Action é o método que o controller executa a
  chamada quando a url solicita.
• A action do controller deve ser um método
  público. O método também nunca devera ser
  sobrescrevido e não pode ser um método
  estático.
Actions
• Exemplo:

http://localhost/Produto/Index/3



                   Action – Index()
Action Result
• Todas actions de controller retornam um
  resultado.
• O ASP.NET MVC suporta diversos tipos de
  retornos.
Action Result
•   ViewResult – HTML e marcações
•   EmptyResult – Resultado vazio
•   RedirectResult – Redirect para uma nova url
•   JsonResult – Representa um resultado JavaScript Object
    Notation que pode ser usado em uma aplicação AJAX
•   JavaScriptResult –JavaScript
•   ContentResult – Texto
•   FileContentResult – Arquivo para download
•   FilePathResult – Caminho de arquivo para download
•   FileStreamResult – Arquivo para download via file stream
• Observe que o método retorna um ViewResult ().
  Em vez disso, o método View () da classe base é
  chamado. Normalmente, você não retornar um
  resultado de ação diretamente, você chama um
  dos seguintes métodos da classe base Controller:
Action Result
•   View – ViewResult
•   Redirect – RedirectResult
•   RedirectToAction – RedirectToRouteResult
•   RedirectToRoute – RedirectToRouteResult
•   Json – JsonResult
•   JavaScriptResult –JavaScriptResult
•   Content –ContentResult
•   File –FileContentResult, FilePathResult ou
    FileStreamResult
• Caso o controller action retorne um resultado
  que não for um action result , então o
  resultado será um ContentResult
  automaticamente.
Action desconhecida
• Se um controle não consegue encontrar uma ação
  que está sendo requisitada, ele executa o método
  HandleUnknownAction().
• Por padrão o erro mostrado é uma página de HTTP
  404, mas nós podemos mudar utilizando o código
  mostrado abaixo:
Views
Views
• Ao contrário do ASP.NET Web Forms, no MVC
  não existe uma página ou arquivo que
  corresponda a uma página. No ASP.NET MVC o
  mais parecido com uma página que temos são
  as views.
• Todas as requisições são feitas para os
  controllers e ações, que retornam as views
  quando solicitado.
Views
• Uma view contém um documento (x)HTML e
  pode conter scripts para adicionar conteúdos
  dinâmicos.
• Uma característica forte do ASP.NET MVC é
  que o ASP.NET não adiciona nenhum código
  HTML não solicitado.
• <% Response.Write(DateTime.Now);%>

• Os delimitadores de script <% e %> marcam o início e fim de um
  script, neste caso em C#. Exibe a data e hora atual e através do
  Response.Write() renderiza o conteúdo no navegador. Os scripts
  podem ser usado para executar vários escopos e scripts.
• Para facilitar, se você chamar <%=, o = já representa um
  Response.Write() , simplificando o código.
Views
• As Views no ASP.NET MVC ficam na pasta
  Views. Esta pasta, por sua vez, possui uma
  pasta para cada controlador, para armazenar
  as views de cada um deles. Se tivermos dois
  controladores em nossa aplicação,
  HomeController e ClientesController, nós
  teremos uma pasta em ViewsHome que irá
  armazenar as views do respectivo controlador,
  e uma pasta Clientes que armazenará as views
  do controlador ClientesController.
Demo: View fortemente tipada
ViewData
• ViewData é um dicionário que possui como
  chave somente strings. Você pode passar para
  a ViewData qualquer tipo de objeto.
• Um controller passa informações para as views
  usando ViewData.
• O código abaixo mostra um exemplo de como
  um controlador pode passar uma lista de
  clientes para uma view através deste
  dicionário:
HTML Helpers
• HTML Helpers podem tornar a tarefa de fazer
  views mais fácil. Eles simplesmente
  renderizam algum código HTML que pode ser
  usado em todas as suas views simplesmente
  chamando Html.NomeDoHelper.
• Alguns Helpers já estão incluídos no ASP.NET
  MVC Framework, e outros podem ser
  customizados de acordo com as nossas
  necessidades.
HTML Helpers
• O ASP.NET MVC framework inclui os seguintes (principais)
  HTML Helpers:
   –   Html.ActionLink()
   –   Html.BeginForm()
   –   Html.CheckBox()
   –   Html.DropDownList()
   –   Html.EndForm()
   –   Html.Hidden()
   –   Html.ListBox()
   –   Html.Password()
   –   Html.RadioButton()
   –   Html.TextArea()
   –   Html.TextBox()
HTML Enconde
• Toda vez que vamos mostrar em alguma view
  o conteúdo de algum campo que permitimos
  que o usuário informe livremente, devemos
  usar Html.Encode() para que os caracteres
  sejam codificados. Se o usuário informar no
  nome, por exemplo,
  <script>alert(‘HAAA’)</script> e nós usarmos
  o Html.Encode(), o que será mostrado será o
  que o usuário realmente escreveu ao invés de
  executar o script.
Demo: HTML Helper
Demo: Carros
Tópicos rápidos
•   Output cache
•   Master Page
•   Theme
•   Segurança
Referências
• Site: asp.net/mvc
• Apostila: Treinando .net – Curso ASP.NET MVC
• Site: www.danielfonsecacastro.com.br –
  demos de AJAX
Obrigado
• contato@alexandretarifa.com.br

Mais conteúdo relacionado

Mais procurados

jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicaVictor Cavalcante
 
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 MVCguest489a65e
 
[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2Felipe Pimentel
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
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
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Julian Cesar
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
 
Apresentação Java Web Si Ufc Quixadá - MVC
Apresentação Java Web Si Ufc Quixadá - MVCApresentação Java Web Si Ufc Quixadá - MVC
Apresentação Java Web Si Ufc Quixadá - MVCZarathon Maia
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 

Mais procurados (19)

jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmica
 
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
 
[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
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
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Angular js
Angular jsAngular js
Angular js
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2
 
Treinamento Play Framework
Treinamento Play FrameworkTreinamento Play Framework
Treinamento Play Framework
 
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
 
Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
Apresentação Java Web Si Ufc Quixadá - MVC
Apresentação Java Web Si Ufc Quixadá - MVCApresentação Java Web Si Ufc Quixadá - MVC
Apresentação Java Web Si Ufc Quixadá - MVC
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 

Semelhante a ASP.NET MVC - Alexandre Tarifa

Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...anybalrocha
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Rafael Oliveira
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 OverviewAlexsandro Almeida
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Maurício Linhares
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojofabioginzel
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsEduardo Mendes
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)Giovanni Bassi
 

Semelhante a ASP.NET MVC - Alexandre Tarifa (20)

Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
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
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
365on Lab - Asp.Net MVC
365on Lab - Asp.Net MVC365on Lab - Asp.Net MVC
365on Lab - Asp.Net MVC
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)
 

ASP.NET MVC - Alexandre Tarifa

  • 2. Alexandre Tarifa • Bacharel em Ciência da Computação – UMESP • Pós graduado em Ciência da Computação – UFSCAR • Líder e um dos criadores da comunidade Codificando .Net (www.codificando.net) • Autor de 3 livros (VB.NET Express – Best Seller, C# Express – Best Seller e VSTS Rocks) • MVP – Microsoft Most Valuable Professional – Visual Developer – Visual Basic/Visual Basic .Net • Experiência profissional em multinacionais, consultoria, farmacêutica e Internet (.com) • MCT (Microsoft Certified Trainer, MCAD (Microsoft Certified Application Developer e MCP (Microsoft Certified Professional) • Gerente de TI – portal Minha Vida (www.minhavida.com.br) • Diretor da Treinando .Net – empresa de treinamentos - plataforma .Net (www.treinando.net)
  • 3. ASP.NET MVC é gratuito e permite que os desenvolvedores facilmente e com simplicidade contrua aplicações web seguindo o padrão Model-View-Controller. Permite o total controle sobre o HTML e URLs, permite integração com AJAX e facilita a implementação de teste driven development.
  • 4.
  • 6. Origem 1978 por Trygve Reenskaug, durante uma visita científica ao grupo Smalltalk. Nome inicial Thing Model View Editor. Diversas tecnologias, como o CakePHP, Ruby On Rails, Django, Tapestry (java), etc.. O projeto MonoRail (www.castleproject.org) foi o primeiro framework open source (de código aberto) para ASP.NET. Scott Guthrie, co-fundador do ASP.NET MVC Framework, participou da primeira conferência Alt.Net em outubro de 2007, onde falou sobre o framework. A apresentação feita por ele causou tanta euforia que o framework tornou-se um produto oficial da Microsoft.
  • 8. M Modelos (Models) – que contém toda a lógica da aplicação que não faz parte de uma Visão (View). Isso quer dizer que todas as regras de negócios, validações e acesso a dados estão contidas no Modelo; V Visões (Views) – é a camada de apresentação, a interface que será mostrada para o usuário. Uma View contém todo o HTML e lógica necessários para a correta exibição das páginas aos usuários; C Controladores (Controllers) – são responsáveis por interagir entre os modelos e as visões. Contém a lógica de controle da aplicação que não está presente nas visões e nos modelos. Controla o fluxo da aplicação.
  • 9. Demo: criação de projeto no Visual Studio 2010
  • 10. Rotas
  • 11. Rotas • Mapeamentos de requisições feitas pelo browser para um controlador e uma ação específica. • Mapeamento é realizado no arquivo global.asax (controla o ciclo da aplicação).
  • 12. Formato daNome da rotapelo usuário Valores padrão caso não seja informado url acessada
  • 13. Nome do controller Nome da action Parâmetro
  • 14. Demo: rota padrão, customização de rotas e restrições
  • 16. Models • Podemos dizer que, basicamente, toda a lógica que não for de views e de controllers será feita nos Modelos. Nos Models podemos fazer validação, regra de acesso a dados e regra de negócios.
  • 18. Controller • São responsáveis por responder as requisições realizadas. Cada requisição feita pelo navegador é mapeada para um controller próprio.
  • 20. Actions • Action é o método que o controller executa a chamada quando a url solicita. • A action do controller deve ser um método público. O método também nunca devera ser sobrescrevido e não pode ser um método estático.
  • 22. Action Result • Todas actions de controller retornam um resultado. • O ASP.NET MVC suporta diversos tipos de retornos.
  • 23. Action Result • ViewResult – HTML e marcações • EmptyResult – Resultado vazio • RedirectResult – Redirect para uma nova url • JsonResult – Representa um resultado JavaScript Object Notation que pode ser usado em uma aplicação AJAX • JavaScriptResult –JavaScript • ContentResult – Texto • FileContentResult – Arquivo para download • FilePathResult – Caminho de arquivo para download • FileStreamResult – Arquivo para download via file stream
  • 24. • Observe que o método retorna um ViewResult (). Em vez disso, o método View () da classe base é chamado. Normalmente, você não retornar um resultado de ação diretamente, você chama um dos seguintes métodos da classe base Controller:
  • 25. Action Result • View – ViewResult • Redirect – RedirectResult • RedirectToAction – RedirectToRouteResult • RedirectToRoute – RedirectToRouteResult • Json – JsonResult • JavaScriptResult –JavaScriptResult • Content –ContentResult • File –FileContentResult, FilePathResult ou FileStreamResult
  • 26.
  • 27. • Caso o controller action retorne um resultado que não for um action result , então o resultado será um ContentResult automaticamente.
  • 28. Action desconhecida • Se um controle não consegue encontrar uma ação que está sendo requisitada, ele executa o método HandleUnknownAction(). • Por padrão o erro mostrado é uma página de HTTP 404, mas nós podemos mudar utilizando o código mostrado abaixo:
  • 29. Views
  • 30. Views • Ao contrário do ASP.NET Web Forms, no MVC não existe uma página ou arquivo que corresponda a uma página. No ASP.NET MVC o mais parecido com uma página que temos são as views. • Todas as requisições são feitas para os controllers e ações, que retornam as views quando solicitado.
  • 31. Views • Uma view contém um documento (x)HTML e pode conter scripts para adicionar conteúdos dinâmicos. • Uma característica forte do ASP.NET MVC é que o ASP.NET não adiciona nenhum código HTML não solicitado.
  • 32. • <% Response.Write(DateTime.Now);%> • Os delimitadores de script <% e %> marcam o início e fim de um script, neste caso em C#. Exibe a data e hora atual e através do Response.Write() renderiza o conteúdo no navegador. Os scripts podem ser usado para executar vários escopos e scripts. • Para facilitar, se você chamar <%=, o = já representa um Response.Write() , simplificando o código.
  • 33. Views • As Views no ASP.NET MVC ficam na pasta Views. Esta pasta, por sua vez, possui uma pasta para cada controlador, para armazenar as views de cada um deles. Se tivermos dois controladores em nossa aplicação, HomeController e ClientesController, nós teremos uma pasta em ViewsHome que irá armazenar as views do respectivo controlador, e uma pasta Clientes que armazenará as views do controlador ClientesController.
  • 35. ViewData • ViewData é um dicionário que possui como chave somente strings. Você pode passar para a ViewData qualquer tipo de objeto. • Um controller passa informações para as views usando ViewData. • O código abaixo mostra um exemplo de como um controlador pode passar uma lista de clientes para uma view através deste dicionário:
  • 36.
  • 37. HTML Helpers • HTML Helpers podem tornar a tarefa de fazer views mais fácil. Eles simplesmente renderizam algum código HTML que pode ser usado em todas as suas views simplesmente chamando Html.NomeDoHelper. • Alguns Helpers já estão incluídos no ASP.NET MVC Framework, e outros podem ser customizados de acordo com as nossas necessidades.
  • 38. HTML Helpers • O ASP.NET MVC framework inclui os seguintes (principais) HTML Helpers: – Html.ActionLink() – Html.BeginForm() – Html.CheckBox() – Html.DropDownList() – Html.EndForm() – Html.Hidden() – Html.ListBox() – Html.Password() – Html.RadioButton() – Html.TextArea() – Html.TextBox()
  • 39. HTML Enconde • Toda vez que vamos mostrar em alguma view o conteúdo de algum campo que permitimos que o usuário informe livremente, devemos usar Html.Encode() para que os caracteres sejam codificados. Se o usuário informar no nome, por exemplo, <script>alert(‘HAAA’)</script> e nós usarmos o Html.Encode(), o que será mostrado será o que o usuário realmente escreveu ao invés de executar o script.
  • 42. Tópicos rápidos • Output cache • Master Page • Theme • Segurança
  • 43.
  • 44. Referências • Site: asp.net/mvc • Apostila: Treinando .net – Curso ASP.NET MVC • Site: www.danielfonsecacastro.com.br – demos de AJAX