ApresentaçãO Mvc

  • Published on
    24-Dec-2014

  • View
    645

  • Download
    4

Embed Size (px)

DESCRIPTION

 

Transcript

<ul><li> 1. ASP.NET MVC Alexandre Tarifa </li> <li> 2. Alexandre Tarifa Bacharel em Cincia da Computao UMESP Ps graduado em Cincia da Computao UFSCAR Lder 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 </li> <li> 3. ASP.NET MVC gratuito e permite que os desenvolvedores facilmente e com simplicidade contrua aplicaes web seguindo o padro Model-View-Controller. Permite o total controle sobre o HTML e URLs, permite integrao com AJAX e facilita a implementao de teste driven development. </li> <li> 4. Demo: Web Forms </li> <li> 5. Origem 1978 por Trygve Reenskaug, durante uma visita cientfica 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 cdigo aberto) para ASP.NET. Scott Guthrie, co-fundador do ASP.NET MVC Framework, participou da primeira conferncia Alt.Net em outubro de 2007, onde falou sobre o framework. A apresentao feita por ele causou tanta euforia que o framework tornou-se um produto oficial da Microsoft. </li> <li> 6. Arquitetura </li> <li> 7. M Modelos (Models) que contm toda a lgica da aplicao que no faz parte de uma Viso V (View). Isso quer dizer que todas as regras de negcios, validaes e acesso a dados esto contidas no Modelo; C Vises (Views) a camada de apresentao, a interface que </li> <li> 8. Demo: criao de projeto no Visual Studio 2010 </li> <li> 9. Rotas </li> <li> 10. Rotas Mapeamentos de requisies feitas pelo browser para um controlador e uma ao especfica. Mapeamento realizado no arquivo global.asax (controla o ciclo da aplicao). </li> <li> 11. Formato da Nome da rotapelo usurio Valores padro caso no seja informado url acessada </li> <li> 12. Nome do controller Nome da action Parmetro </li> <li> 13. Demo: rota padro, customizao de rotas e restries </li> <li> 14. Modelos (Models) </li> <li> 15. Models Podemos dizer que, basicamente, toda a lgica que no for de views e de controllers ser feita nos Modelos. Nos Models podemos fazer validao, regra de acesso a dados e regra de negcios. </li> <li> 16. Controlador (Controller) </li> <li> 17. Controller So responsveis por responder as requisies realizadas. Cada requisio feita pelo navegador mapeada para um controller prprio. </li> <li> 18. Controller Exemplo: http://localhost/Produto/Index/3 Controller - ProdutoController </li> <li> 19. Actions Action o mtodo que o controller executa a chamada quando a url solicita. A action do controller deve ser um mtodo pblico. O mtodo tambm nunca devera ser sobrescrevido e no pode ser um mtodo esttico. </li> <li> 20. Actions Exemplo: http://localhost/Produto/Index/3 Action Index() </li> <li> 21. Action Result Todas actions de controller retornam um resultado. O ASP.NET MVC suporta diversos tipos de retornos. </li> <li> 22. Action Result ViewResult HTML e marcaes EmptyResult Resultado vazio RedirectResult Redirect para uma nova url JsonResult Representa um resultado JavaScript Object Notation que pode ser usado em uma aplicao AJAX JavaScriptResult JavaScript ContentResult Texto </li> <li> 23. Observe que o mtodo retorna um ViewResult (). Em vez disso, o mtodo View () da classe base chamado. Normalmente, voc no retornar um resultado de ao diretamente, voc chama um dos seguintes mtodos da </li> <li> 24. Action Result View ViewResult Redirect RedirectResult RedirectToAction RedirectToRouteResult RedirectToRoute RedirectToRouteResult Json JsonResult JavaScriptResult JavaScriptResult </li> <li> 25. Caso o controller action retorne um resultado que no for um action result , ento o resultado ser um ContentResult automaticamente. </li> <li> 26. Action desconhecida Se um controle no consegue encontrar uma ao que est sendo requisitada, ele executa o mtodo HandleUnknownAction(). Por padro o erro mostrado uma pgina de HTTP 404, mas ns podemos mudar utilizando o cdigo mostrado abaixo: </li> <li> 27. Views </li> <li> 28. Views Ao contrrio do ASP.NET Web Forms, no MVC no existe uma pgina ou arquivo que corresponda a uma pgina. No ASP.NET MVC o mais parecido com uma pgina que temos so as views. Todas as requisies so feitas para os controllers e aes, que retornam as views quando solicitado. </li> <li> 29. Views Uma view contm um documento (x)HTML e pode conter scripts para adicionar contedos dinmicos. Uma caracterstica forte do ASP.NET MVC que o ASP.NET no adiciona nenhum cdigo HTML no solicitado. </li> <li> 30. Os delimitadores de script marcam o incio e fim de um script, neste caso em C#. Exibe a data e hora atual e atravs do Response.Write() </li> <li> 31. 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 aplicao, HomeController e ClientesController, ns teremos uma pasta em ViewsHome que ir armazenar as views do respectivo controlador, e uma pasta Clientes que armazenar as </li> <li> 32. Demo: View fortemente tipada </li> <li> 33. ViewData ViewData um dicionrio que possui como chave somente strings. Voc pode passar para a ViewData qualquer tipo de objeto. Um controller passa informaes para as views usando ViewData. O cdigo abaixo mostra um exemplo de como um controlador pode passar uma lista de clientes para uma view atravs deste dicionrio: </li> <li> 34. HTML Helpers HTML Helpers podem tornar a tarefa de fazer views mais fcil. Eles simplesmente renderizam algum cdigo HTML que pode ser usado em todas as suas views simplesmente chamando Html.NomeDoHelper. Alguns Helpers j esto includos no ASP.NET MVC Framework, e outros podem ser customizados de acordo com as nossas necessidades. </li> <li> 35. 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() </li> <li> 36. HTML Enconde Toda vez que vamos mostrar em alguma view o contedo de algum campo que permitimos que o usurio informe livremente, devemos usar Html.Encode() para que os caracteres sejam codificados. Se o usurio informar no nome, por exemplo, e ns usarmos o Html.Encode(), o que ser mostrado ser o que o usurio realmente escreveu ao invs de </li> <li> 37. Demo: HTML Helper </li> <li> 38. Demo: Carros </li> <li> 39. Tpicos rpidos Output cache Master Page Theme Segurana </li> <li> 40. Referncias Site: asp.net/mvc Apostila: Treinando .net Curso ASP.NET MVC Site: www.danielfonsecacastro.com.br demos de AJAX </li> <li> 41. Obrigado contato@alexandretarifa.com.br </li> </ul>