O documento apresenta Alexandre Tarifa e seu currículo, incluindo sua experiência com ASP.NET MVC. O documento também fornece uma breve introdução ao ASP.NET MVC, discutindo sua arquitetura MVC, rotas, modelos, controladores, views e helpers HTML.
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.
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.
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
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.
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:
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:
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.