43
1 Online TechDay | 2010 Worldwide 30 - Outubro

Palestra MVC - Online tech day 2010

Embed Size (px)

Citation preview

Page 1: Palestra MVC - Online tech day 2010

1

Online TechDay|2010

Worldwide

30 - Outubro

Page 2: Palestra MVC - Online tech day 2010

2

Introdução ao ASP.NET MVC

Alexandre TarifaMVP

http://www.alexandretarifa.com.br

Page 3: Palestra MVC - Online tech day 2010

3Online TechDay

|2010

Worldwide

LIVETEC INFORMÁTICA

Apoio:

Nossos Parceiros

Page 4: Palestra MVC - Online tech day 2010

4Online TechDay

|2010

Worldwide

Quem sou eu?

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 ProfessionalGerente de TI – portal Minha Vida (www.minhavida.com.br)

• Diretor da Treinando .Net – empresa de treinamentos - plataforma .Net(www.treinando.net)

Page 5: Palestra MVC - Online tech day 2010

5Online TechDay

|2010

Worldwide

ASP.NET MVC é gratuito e permite que os desenvolvedoresfacilmente 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.

Page 6: Palestra MVC - Online tech day 2010

6Online TechDay

|2010

Worldwide

Page 7: Palestra MVC - Online tech day 2010

7Online TechDay

|2010

Worldwide

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.

Page 8: Palestra MVC - Online tech day 2010

8Online TechDay

|2010

Worldwide

Arquitetura

Page 9: Palestra MVC - Online tech day 2010

9Online TechDay

|2010

Worldwide

MVC

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;

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;

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.

Page 10: Palestra MVC - Online tech day 2010

10Online TechDay

|2010

Worldwide

Demo: criação de projeto no Visual Studio 2010

Page 11: Palestra MVC - Online tech day 2010

11Online TechDay

|2010

Worldwide

Rotas

Page 12: Palestra MVC - Online tech day 2010

12Online TechDay

|2010

Worldwide

Rotas

Mapeamentos de requisições feitas pelobrowser para um controlador e uma açãoespecífica.

Mapeamento é realizado no arquivo global.asax(controla o ciclo da aplicação).

Page 13: Palestra MVC - Online tech day 2010

13Online TechDay

|2010

Worldwide

Nome da rotaFormato da url acessada pelo usuárioValores padrão caso não seja informado

Page 14: Palestra MVC - Online tech day 2010

14Online TechDay

|2010

Worldwide

Nome do controllerNome da actionParâmetro

Page 15: Palestra MVC - Online tech day 2010

15Online TechDay

|2010

Worldwide

Modelos (Models)

Page 16: Palestra MVC - Online tech day 2010

16Online TechDay

|2010

Worldwide

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.

Page 17: Palestra MVC - Online tech day 2010

17Online TechDay

|2010

Worldwide

Controlador (Controller)

Page 18: Palestra MVC - Online tech day 2010

18Online TechDay

|2010

Worldwide

Controller

São responsáveis por responder as requisições realizadas. Cada requisição feita pelo navegador é mapeada para um controller próprio.

Page 19: Palestra MVC - Online tech day 2010

19Online TechDay

|2010

Worldwide

Controller

Exemplo:

http://localhost/Produto/Index/3

Controller - ProdutoController

Page 20: Palestra MVC - Online tech day 2010

20Online TechDay

|2010

Worldwide

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.

Page 21: Palestra MVC - Online tech day 2010

21Online TechDay

|2010

Worldwide

Actions

Exemplo:

http://localhost/Produto/Index/3

Action – Index()

Page 22: Palestra MVC - Online tech day 2010

22Online TechDay

|2010

Worldwide

Action Result

Todas actions de controller retornam um resultado.

O ASP.NET MVC suporta diversos tipos de retornos.

Page 23: Palestra MVC - Online tech day 2010

23Online TechDay

|2010

Worldwide

Action Result

ViewResult – HTML e marcaçõesEmptyResult – Resultado vazioRedirectResult – Redirect para uma nova urlJsonResult – Representa um resultado JavaScript Object Notation que pode ser usado em umaaplicação AJAXJavaScriptResult –JavaScriptContentResult – TextoFileContentResult – Arquivo para downloadFilePathResult – Caminho de arquivo para downloadFileStreamResult – Arquivo para download via file stream

Page 24: Palestra MVC - Online tech day 2010

24Online TechDay

|2010

Worldwide

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:

Page 25: Palestra MVC - Online tech day 2010

25Online TechDay

|2010

Worldwide

Action Result

View – ViewResultRedirect – RedirectResultRedirectToAction – RedirectToRouteResultRedirectToRoute – RedirectToRouteResultJson – JsonResultJavaScriptResult –JavaScriptResultContent –ContentResultFile –FileContentResult, FilePathResult ou FileStreamResult

Page 26: Palestra MVC - Online tech day 2010

26Online TechDay

|2010

Worldwide

Page 27: Palestra MVC - Online tech day 2010

27Online TechDay

|2010

Worldwide

Caso o controller action retorne um resultadoque não for um action result , então o resultado será um ContentResultautomaticamente.

Page 28: Palestra MVC - Online tech day 2010

28Online TechDay

|2010

Worldwide

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:

Page 29: Palestra MVC - Online tech day 2010

29Online TechDay

|2010

Worldwide

Views

Page 30: Palestra MVC - Online tech day 2010

30Online TechDay

|2010

Worldwide

Views

Ao contrário do ASP.NET Web Forms, no MVC nãoexiste 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.

Page 31: Palestra MVC - Online tech day 2010

31Online TechDay

|2010

Worldwide

Views

Uma view contém um documento (x)HTML e podeconter 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ãosolicitado.

Page 32: Palestra MVC - Online tech day 2010

32Online TechDay

|2010

Worldwide

<% 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 horaatual e através do Response.Write() renderiza o conteúdo no navegador. Os scripts podem ser usadopara executar vários escopos e scripts.Para facilitar, se você chamar <%=, o = já representa um Response.Write() , simplificando o código.

Page 33: Palestra MVC - Online tech day 2010

33Online TechDay

|2010

Worldwide

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 Views\Homeque irá armazenar as views do respectivo controlador, e uma pasta Clientes que armazenará as views do controlador ClientesController.

Page 34: Palestra MVC - Online tech day 2010

34Online TechDay

|2010

Worldwide

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:

Page 35: Palestra MVC - Online tech day 2010

35Online TechDay

|2010

Worldwide

Page 36: Palestra MVC - Online tech day 2010

36Online TechDay

|2010

Worldwide

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

Page 37: Palestra MVC - Online tech day 2010

37Online TechDay

|2010

Worldwide

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()

Page 38: Palestra MVC - Online tech day 2010

38Online TechDay

|2010

Worldwide

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.

Page 39: Palestra MVC - Online tech day 2010

39Online TechDay

|2010

Worldwide

Demo: Carros

Page 40: Palestra MVC - Online tech day 2010

40Online TechDay

|2010

Worldwide

Recursos Relacionados

www.treinando.net

www.asp.net

www.alexandretarifa.com.br

Page 41: Palestra MVC - Online tech day 2010

41

Agenda do Evento

Page 42: Palestra MVC - Online tech day 2010

42Online TechDay

|2010

Worldwide

Apoio:

Page 43: Palestra MVC - Online tech day 2010

43