SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
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
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


V
    (View). Isso quer dizer que
    todas as regras de negócios,
    validações e acesso a dados
    estão contidas no Modelo;


C   Visões (Views) – é a camada de
    apresentação, a interface que
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 da Nome 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
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
Action Result

View – ViewResult
Redirect – RedirectResult
RedirectToAction –
RedirectToRouteResult
RedirectToRoute –
RedirectToRouteResult
Json – JsonResult
JavaScriptResult –JavaScriptResult
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()
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
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 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
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

Weitere ähnliche Inhalte

Was ist angesagt?

[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
 
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
 
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
 
ASP.NET MVC 4 - Part III - Views (Continuação: Part II)
ASP.NET MVC 4 - Part III - Views (Continuação: Part II)ASP.NET MVC 4 - Part III - Views (Continuação: Part II)
ASP.NET MVC 4 - Part III - Views (Continuação: Part II)Carlos Atila Abreu
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 
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
 
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
 
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
 
Como trabalhar com angular js
Como trabalhar com angular jsComo trabalhar com angular js
Como trabalhar com angular jsMatheus Lima
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAWilson Mendes
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOLeonardo Sousa
 
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
 

Was ist angesagt? (19)

Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
Angular js
Angular jsAngular js
Angular js
 
[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
 
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
 
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
 
Minicurso Aplicação Web Utilizando o Framework Laravel
Minicurso Aplicação Web Utilizando o Framework LaravelMinicurso Aplicação Web Utilizando o Framework Laravel
Minicurso Aplicação Web Utilizando o Framework Laravel
 
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
 
ASP.NET MVC 4 - Part III - Views (Continuação: Part II)
ASP.NET MVC 4 - Part III - Views (Continuação: Part II)ASP.NET MVC 4 - Part III - Views (Continuação: Part II)
ASP.NET MVC 4 - Part III - Views (Continuação: Part II)
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
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
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)
 
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
 
Como trabalhar com angular js
Como trabalhar com angular jsComo trabalhar com angular js
Como trabalhar com angular js
 
Angular js
Angular jsAngular js
Angular js
 
jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2
 
Apostila ajax
Apostila ajaxApostila ajax
Apostila ajax
 
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDAANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
ANGULARJS: UM FRAMEWORK PARA FACILITAR SUA VIDA
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO
 
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)
 

Ähnlich wie ASP.NET MVC guia completo

Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Alexandre Tarifa
 
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
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
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
 
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
 
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
 
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
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptAndre Baltieri
 
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
 
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
 

Ähnlich wie ASP.NET MVC guia completo (20)

ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
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
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
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
 
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
 
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
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Treinamento Play Framework
Treinamento Play FrameworkTreinamento Play Framework
Treinamento Play Framework
 
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
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
 
Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
 
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
 
Mvc delphi
Mvc delphiMvc delphi
Mvc delphi
 
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 ...
 
Mvc - Semifinal
Mvc - SemifinalMvc - Semifinal
Mvc - Semifinal
 

Mehr von Campus Party Brasil

Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosCampus Party Brasil
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Campus Party Brasil
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesCampus Party Brasil
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solarCampus Party Brasil
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custoCampus Party Brasil
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito ImpressoCampus Party Brasil
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasCampus Party Brasil
 

Mehr von Campus Party Brasil (20)

Wordpress
WordpressWordpress
Wordpress
 
Buracos negros
Buracos negrosBuracos negros
Buracos negros
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivos
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdades
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solar
 
Passeio virtual pelo LHC
Passeio virtual pelo LHCPasseio virtual pelo LHC
Passeio virtual pelo LHC
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custo
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusiva
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectX
 
Blue Via
Blue ViaBlue Via
Blue Via
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusiva
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software Livre
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito Impresso
 
Vida de Programador
Vida de Programador Vida de Programador
Vida de Programador
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendencias
 

ASP.NET MVC guia completo

  • 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
  • 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.
  • 7. 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.
  • 9. M Modelos (Models) – que contém toda a lógica da aplicação que não faz parte de uma Visão V (View). Isso quer dizer que todas as regras de negócios, validações e acesso a dados estão contidas no Modelo; C Visões (Views) – é a camada de apresentação, a interface que
  • 10. Demo: criação de projeto no Visual Studio 2010
  • 11. Rotas
  • 12. 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).
  • 13. Formato da Nome da rotapelo usuário Valores padrão caso não seja informado url acessada
  • 14. Nome do controller Nome da action Parâmetro
  • 15. Demo: rota padrão, customização de rotas e restrições
  • 17. 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.
  • 19. Controller São responsáveis por responder as requisições realizadas. Cada requisição feita pelo navegador é mapeada para um controller próprio.
  • 21. 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.
  • 23. Action Result Todas actions de controller retornam um resultado. O ASP.NET MVC suporta diversos tipos de retornos.
  • 24. 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
  • 25. 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
  • 26. Action Result View – ViewResult Redirect – RedirectResult RedirectToAction – RedirectToRouteResult RedirectToRoute – RedirectToRouteResult Json – JsonResult JavaScriptResult –JavaScriptResult
  • 27.
  • 28. Caso o controller action retorne um resultado que não for um action result , então o resultado será um ContentResult automaticamente.
  • 29. 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:
  • 30. Views
  • 31. 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.
  • 32. 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.
  • 33. <% 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()
  • 34. 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
  • 36. 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:
  • 37.
  • 38. 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.
  • 39. 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()
  • 40. 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
  • 43. Tópicos rápidos Output cache Master Page Theme Segurança
  • 44.
  • 45. Referências Site: asp.net/mvc Apostila: Treinando .net – Curso ASP.NET MVC Site: www.danielfonsecacastro.com.br – demos de AJAX