Palestra ASP.NET MVC

1,932 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,932
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Palestra ASP.NET MVC

  1. 1. Moacir CasemiroGestão e Arquitetura de SoftwareMCP,MCAD,MCTS e MCPD www.moacircasemiro.com
  2. 2. # Q uem sou eu !Moacir Casemiro• Arquitetura e Gestão na prática• Experiência de 10 anos em Web• MCP, MCAD, MCTS e MCPD Enterprise Aplicação• Participei de projetos de vários níveis e tamanho• Palestrante desde 2006• Instrutor desde 2006• Contatos : @moacircasemiro• Email : moacircasemiro@hotmail.com• www.moacircasemiro.com
  3. 3. # N ossa A genda1 - Padrões de Projetos2 - MVC3 - ASP.NET MVC
  4. 4. # Padrões de Projeto
  5. 5. O que é Padrão ? O que é Padrão ?O que é Padrão ? O que é Padrão ? O que é Padrão ? O que é Padrão ?
  6. 6. # A lgumas definições• “Documento aprovado por um organismo reconhecido que provê, pelo uso comum e repetitivo, regras, diretrizes ou características de produtos, processos ou serviços cuja obediência não é obrigatória"
  7. 7. # A lgumas definições
  8. 8. # A lgumas definições“Cada padrão descreve um problema que ocorrefreqüentemente em seu ambiente, e então descreveo cerne da solução para aquele problema, de ummodo tal quevocê pode usar esta solução milhões de vezes, semnunca fazer a mesma coisa repetida”.Christopher Alexander(Arquiteto e Urbanista)
  9. 9. # Caract eríst icasprincipais sobre Padrões• São Conceitos (não tecnologias);• Resolvem problemas específicos.
  10. 10. # Padrões de Projet o• Gang-of-Four(Gangue-dos-Quatro) o Erich Gamma, o Richard Helm, o Ralph Johnson e o John Vlissides
  11. 11. # O rganização dos Padrões GO F
  12. 12. # I nt erações dos Padrões
  13. 13. # MVC
  14. 14. # O que é M VC ?• MVC (Model-View-Controller) o Padrão de Arquitetura o É um conceito o Fácil manutenção o Objetivos o Frameworks
  15. 15. # I nt rodução ao M VC Framework• Model-view-controller (MVC) é um padrão de arquitetura de software que visa a separar a lógica de negócio da lógica de apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos.
  16. 16. # I nt rodução ao M VC Framework
  17. 17. # I nt rodução ao M VC Framework Visualização Controle ModeloPagina HTML Negócio Pagina ASP Controlador Persistência Outros Clientes
  18. 18. # ASP.NET MVC
  19. 19. # A nt es de t udo, o que é A SP.N ET ?• é a plataforma da Microsoft para o desenvolvimento de aplicações Web é o sucessor da tecnologia ASP. É um componente do IIS que permite através de uma linguagem de programação integrada na .NET Framework criar páginas dinâmicas.
  20. 20. A SP.N ET M VC• ASP.NET MVC
  21. 21. # A SP.N ET M VCFramework é baseado na arquitetura de software MVC.O objetivo é manter uma clara separação de conceitos:interface, modelo de dados e controle de chamadas das páginas.Uma aplicação em ASP.NET MVC é estruturada da seguinte maneira:• Model: Contém códigos de validação, regras de negócio e acesso a dados.• View: Camada de apresentação (layout).• Controllers: Controla o fluxo da aplicação. Em outras palavras, consiste nocontrole das chamadas das Views (realizadas pelos browsers) e alteraçõesdo comportamento do Model
  22. 22. # M VC - M odel Model• Objetos que mantêm o estado do aplicativo Interage com o (banco de dados) do repositório Controlador de cria-los em ações e passa para as Views Exibir dados de acessos no Objeto Exemplos: DataSet, DataReader, LINQ to SQL, etc.
  23. 23. # M VC – Cont roller Controlle r[HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Title"] = "Home Page"; ViewData["Message"] = "Welcome to ASP.NET MVC!"; return View(); } }
  24. 24. # M VC – View View<%@ Page Title=“Category" Language="C#"MasterPageFile="~/Views/Shared/Site.Master"AutoEventWireup="true"CodeBehind="Category.aspx.cs"Inherits="NorthwindMVC.Views.Products.Category"%>• Views (property Model) can be “strongly typed”public partial class Category :ViewPage<NorthwindMVC.Models.Category> • In RC1 “code behind” for Views has been eliminated – to facilitate IntelliSence
  25. 25. # A SP.N ET M VC• PASSOS PARA UTILIZAR ASP.NET MVC
  26. 26. # A SP.N ET M VC• PASSOS PARA UTILIZAR ASP.NET MVC
  27. 27. # A SP.N ET M VC• PASSOS PARA UTILIZAR ASP.NET MVC
  28. 28. # A SP.N ET M VC• PASSOS PARA UTILIZAR ASP.NET MVCO HomeController é um controlador, ele é responsável pela chamada daspáginas Index e About que estão dentro da pasta Home. A url do seu projeto, porpadrão é: http://MeuServer/home/index. Quando essa url é chamada pelobrowser, o servidor vai processar o método Index que retorna o arquivoViews/Home/Index.aspx. Os métodos do controlador ainda podem passar dadosdo Modelo para as Views para serem manipulados na camada de apresentação.
  29. 29. # A SP.N ET M VC• PASSOS PARA UTILIZAR ASP.NET MVCPara cada método no controlador ele vai retornar uma View com o nomecorrespondente(HomeController è pasta /Home, Método Índex è ArquivoIndex.aspx
  30. 30. # Ent endendo o Ciclo de Vida de uma aplicação• Web Forms• Quando uma requisição chega para uma aplicação ASP.NET baseada no modelotradicional, a página requisitada é mapeada para uma página (*.aspx).Esta página contém código HTML que representa a visualização da mesma e que será processada pelo ASP.NET e, em seguida, gerado um output eenviado ao usuário que a requisitou.• Quando uma requisição chega a uma aplicação ASP.NET, o runtime primeiramentexecutará vários passos até que a página ASPX seja efetivamente executada. Com os objetos devidamente criados, em algum momento, o ASP.NET determina qual seráo handler responsável por executar a página; assim que este handler é determinado,o método ProcessRequest da página é executado e o ciclo de vida da mesma inicia,executando os métodos que criam os controles na página (baseando-se no HTML),os eventos da própria página, como Init, Load, etc., e eventos de controles.
  31. 31. # Rout eament oprotected void Application_Start(object sender,EventArgs e) { RegisterRoutes(RouteTable.Routes); } public static voidRegisterRoutes(RouteCollection routes) { routes.Add(new Route ( "Category/{action}/{categoryName}" , new CategoryRouteHandler() )); }
  32. 32. # Ent endendo o Ciclo de Vida de uma aplicação• Web Forms Initialization LoadViewState LoadPostbackData Load HTTP Handler RaisePostBackEvent SaveViewState PreRender Render
  33. 33. # Ent endendo o Ciclo de Vida de uma aplicação• ASP.NET MVC• Na requisição para uma página, você requisitará uma ação.Esta ação nada mais é do que um método que estará dentro de um determinadoController. O Controller é responsável por capturar as informações fornecidas pelo protocolo HTTP ou pelo usuário, manipular essas informações, acessar o Model e,finalmente, renderizar o conteúdo, através de uma View, para o usuário.
  34. 34. # Ent endendo o Ciclo de Vida de uma aplicação• ASP.NET MVC Browser URL Routing Controller Model View new POST Invoke Invoke action method Lookup view Render (viewData) HTML
  35. 35. # Comparando Web Formse M VC• Web Forms• Beneficios : o Recurso como clica e arrasta semelhante ao desenvolvimento de aplicações Desktop. o Utilização de Viewstate e postbacks o Desenvolvedor não precisa ter conhecimento em HTML e JavaScript. o Manipulação de eventos clássicos, como Init, Load, PreRender, além de eventos de controle específicos, como OnClick para um controle Button.
  36. 36. # Comparando Web Forms e A SP.N ET• Web Forms• Pontos Fraco : o Não tem um controle sobre o HTML gerado, pois boa parte do código gerado é fornecido pelos controles colocados no Web Forms; o Através dos Web forms não é possivel testes unitários na interface com o usuário; o O estado da pagina fica mantido em um campo oculto (viewstate) ; o A abstração do HTML impede acessibilidade, compatibilidade de navegador e integração com estruturas de JavaScript populares como jQuery, Dojo e PrototypeJS.
  37. 37. # Comparando Web Forms e A SP.N ET• ASP.NET MVC• Beneficios : o Não há nenhuma dependência em arquivos de servidor físico ASPX; o Modular, o ASP.Net MVC é muito bem dividido em módulos e partes; o O controlador escolhe qual modo para exibir com base na URL solicitada e dados pertinentes. Cada solicitação é resolvida invocando um método em uma classe de controlador; o Não utiliza ViewState para manter os dados da página; o Não possui controles de servidor para produzir o HTML ; o O padrão MVC é a base ASP.Net MVC.
  38. 38. # Comparando Web Forms e A SP.N ET• ASP.NET MVC• Pontos Fracos : o Desenvolvedor precisa ter conhecimento em HTML e JavaScript; o Não possui controles com databinding (exemplos: GridView, DataList…); o Pouca produtividade em comparação para aplicações Web Forms no inicio do projeto.
  39. 39. # Ex emplos Reais
  40. 40. Demo
  41. 41. O brigado !!• @moacircasemiro• moacircasemiro@hotmail.com• www.moacircasemiro.com
  42. 42. Referencias• SP.NET Model-View-Controller Applications http://quickstarts.asp.net/previews/mvc/default.ht m• ASP.Net Routing http://msdn.microsoft.com/en- us/library/cc668201.aspx• MVC Tutorials http://www.asp.net/learn/mvc/• Building Web Apps without Web Forms http://msdn.microsoft.com/en- us/magazine/cc337884.aspx

×