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.
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.
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
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
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.
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.
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
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
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.
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
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