SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Moacir Casemiro
Gestão e Arquitetura de Software
MCP,MCAD,MCTS e MCPD



                                   www.moacircasemiro.com
# 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
# N ossa A genda
1 - Padrões de Projetos
2 - MVC
3 - ASP.NET MVC
# Padrões
   de
 Projeto
O que é Padrão ?
 O que é Padrão ?
O que é Padrão ?
                    O que é Padrão ?

                      O que é Padrão ?
                        O que é Padrão ?
# 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"
# A lgumas definições
# A lgumas definições
“Cada padrão descreve um problema que ocorre
freqüentemente em seu ambiente, e então descreve
o cerne da solução para aquele problema, de um
modo tal que
você pode usar esta solução milhões de vezes, sem
nunca fazer a mesma coisa repetida”.

Christopher Alexander
(Arquiteto e Urbanista)
# Caract eríst icas
principais sobre Padrões
• São Conceitos (não tecnologias);
• Resolvem problemas específicos.
# Padrões de Projet o
• Gang-of-Four
(Gangue-dos-Quatro)
  o    Erich Gamma,
  o    Richard Helm,
  o    Ralph Johnson e
  o    John Vlissides
# O rganização dos
  Padrões GO F
# I nt erações dos Padrões
# MVC
# 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
# 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.
# I nt rodução
             ao M VC
      Framework
# I nt rodução         ao M VC
                Framework

 Visualização      Controle       Modelo

Pagina HTML
                                  Negócio

 Pagina ASP        Controlador

                                 Persistência
  Outros
  Clientes
# ASP.NET MVC
# 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.
A SP.N ET M VC
• ASP.NET MVC
# A SP.N ET M VC
Framework é 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 no
controle das chamadas das Views (realizadas pelos browsers) e alterações
do comportamento do Model
# 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.
# 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();
        }
  }
# 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
# A SP.N ET M VC
• PASSOS PARA UTILIZAR ASP.NET
  MVC
# A SP.N ET M VC
• PASSOS PARA UTILIZAR ASP.NET
  MVC
# A SP.N ET M VC
• PASSOS PARA UTILIZAR ASP.NET
  MVC
# A SP.N ET M VC
• PASSOS PARA UTILIZAR ASP.NET
   MVC
O HomeController é um controlador, ele é responsável pela chamada das
páginas Index e About que estão dentro da pasta Home. A url do seu projeto, por
padrão é: http://MeuServer/home/index. Quando essa url é chamada pelo
browser, o servidor vai processar o método Index que retorna o arquivo
Views/Home/Index.aspx. Os métodos do controlador ainda podem passar dados
do Modelo para as Views para serem manipulados na camada de apresentação.
# A SP.N ET M VC
• PASSOS PARA UTILIZAR ASP.NET
  MVC
Para cada método no controlador ele vai retornar uma View com o nome
correspondente(HomeController è pasta /Home, Método Índex è Arquivo
Index.aspx
# 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 modelo
tradicional, 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 e
enviado ao usuário que a requisitou.

• Quando uma requisição chega a uma aplicação ASP.NET, o runtime primeirament
executará 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.
# Rout eament o
protected void Application_Start(object sender,
EventArgs e)
        {
            RegisterRoutes(RouteTable.Routes);
        }

        public static void
RegisterRoutes(RouteCollection routes)
        {
            routes.Add(new Route
            (
                 "Category/{action}/{categoryName}"
                 , new CategoryRouteHandler()
            ));
        }
# Ent endendo o Ciclo de
  Vida de uma aplicação
• Web Forms
                       Initialization

                      LoadViewState

                    LoadPostbackData

                           Load
           HTTP
          Handler
                    RaisePostBackEvent

                      SaveViewState

                        PreRender

                          Render
# 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 determinado
Controller. 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.
# 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
# Comparando                               Web Forms
e 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.
# 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.
# 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.
# 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.
# Ex emplos Reais
Demo
O brigado !!
• @moacircasemiro

• moacircasemiro@hotmail.com

• www.moacircasemiro.com
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

Mais conteúdo relacionado

Mais procurados

Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2Andre Baltieri
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Julian Cesar
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?Douglas Aguiar
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 
React + Flux (Alt)
React + Flux (Alt)React + Flux (Alt)
React + Flux (Alt)Cezar Luiz
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 
Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Eduardo Pires
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalREduardo Pires
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETEduardo Pires
 
Campus Party - Desenvolvendo com ASP.NET MVC e jQuery
Campus Party - Desenvolvendo com ASP.NET MVC e jQueryCampus Party - Desenvolvendo com ASP.NET MVC e jQuery
Campus Party - Desenvolvendo com ASP.NET MVC e jQueryAlexandre Tarifa
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!José Barbosa
 
Começando com Vue.js
Começando com Vue.jsComeçando com Vue.js
Começando com Vue.jsmarcusbalbi
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSLeonardo Zanivan
 

Mais procurados (20)

Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2
 
React Native na globo.com
React Native na globo.comReact Native na globo.com
React Native na globo.com
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
React + Flux (Alt)
React + Flux (Alt)React + Flux (Alt)
React + Flux (Alt)
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 
Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast Futuro do ASP.NET vNext - MVP ShowCast
Futuro do ASP.NET vNext - MVP ShowCast
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalR
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NETCampus Party 2014 - Desenvolvimento Web com ASP.NET
Campus Party 2014 - Desenvolvimento Web com ASP.NET
 
React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
 
Campus Party - Desenvolvendo com ASP.NET MVC e jQuery
Campus Party - Desenvolvendo com ASP.NET MVC e jQueryCampus Party - Desenvolvendo com ASP.NET MVC e jQuery
Campus Party - Desenvolvendo com ASP.NET MVC e jQuery
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
 
Começando com Vue.js
Começando com Vue.jsComeçando com Vue.js
Começando com Vue.js
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
ASP .NET MVC na Prática
ASP .NET MVC na PráticaASP .NET MVC na Prática
ASP .NET MVC na Prática
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 

Semelhante a Gestão e Arquitetura de Software

ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...anybalrocha
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 OverviewAlexsandro Almeida
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCFelipe Pimentel
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Ávila
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Alexandre Tarifa
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMAricelio Souza
 
T@rget trust microsoft asp.net mvc
T@rget trust   microsoft asp.net mvcT@rget trust   microsoft asp.net mvc
T@rget trust microsoft asp.net mvcTargettrust
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 

Semelhante a Gestão e Arquitetura de Software (20)

ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core MVC
 
Asp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 PtAsp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 Pt
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVC
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
 
T@rget trust microsoft asp.net mvc
T@rget trust   microsoft asp.net mvcT@rget trust   microsoft asp.net mvc
T@rget trust microsoft asp.net mvc
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 

Gestão e Arquitetura de Software

  • 1. Moacir Casemiro Gestão e Arquitetura de Software MCP,MCAD,MCTS e MCPD www.moacircasemiro.com
  • 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. # N ossa A genda 1 - Padrões de Projetos 2 - MVC 3 - ASP.NET MVC
  • 4. # Padrões de Projeto
  • 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. # 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. # A lgumas definições
  • 8. # A lgumas definições “Cada padrão descreve um problema que ocorre freqüentemente em seu ambiente, e então descreve o cerne da solução para aquele problema, de um modo tal que você pode usar esta solução milhões de vezes, sem nunca fazer a mesma coisa repetida”. Christopher Alexander (Arquiteto e Urbanista)
  • 9. # Caract eríst icas principais sobre Padrões • São Conceitos (não tecnologias); • Resolvem problemas específicos.
  • 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. # O rganização dos Padrões GO F
  • 12. # I nt erações dos Padrões
  • 13. # MVC
  • 14.
  • 15. # 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
  • 16. # 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.
  • 17. # I nt rodução ao M VC Framework
  • 18. # I nt rodução ao M VC Framework Visualização Controle Modelo Pagina HTML Negócio Pagina ASP Controlador Persistência Outros Clientes
  • 20. # 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.
  • 21. A SP.N ET M VC • ASP.NET MVC
  • 22. # A SP.N ET M VC Framework é 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 no controle das chamadas das Views (realizadas pelos browsers) e alterações do comportamento do Model
  • 23. # 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.
  • 24. # 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(); } }
  • 25. # 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
  • 26. # A SP.N ET M VC • PASSOS PARA UTILIZAR ASP.NET MVC
  • 27. # A SP.N ET M VC • PASSOS PARA UTILIZAR ASP.NET MVC
  • 28. # A SP.N ET M VC • PASSOS PARA UTILIZAR ASP.NET MVC
  • 29. # A SP.N ET M VC • PASSOS PARA UTILIZAR ASP.NET MVC O HomeController é um controlador, ele é responsável pela chamada das páginas Index e About que estão dentro da pasta Home. A url do seu projeto, por padrão é: http://MeuServer/home/index. Quando essa url é chamada pelo browser, o servidor vai processar o método Index que retorna o arquivo Views/Home/Index.aspx. Os métodos do controlador ainda podem passar dados do Modelo para as Views para serem manipulados na camada de apresentação.
  • 30. # A SP.N ET M VC • PASSOS PARA UTILIZAR ASP.NET MVC Para cada método no controlador ele vai retornar uma View com o nome correspondente(HomeController è pasta /Home, Método Índex è Arquivo Index.aspx
  • 31. # 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 modelo tradicional, 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 e enviado ao usuário que a requisitou. • Quando uma requisição chega a uma aplicação ASP.NET, o runtime primeirament executará 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.
  • 32. # Rout eament o protected void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); } public static void RegisterRoutes(RouteCollection routes) { routes.Add(new Route ( "Category/{action}/{categoryName}" , new CategoryRouteHandler() )); }
  • 33. # Ent endendo o Ciclo de Vida de uma aplicação • Web Forms Initialization LoadViewState LoadPostbackData Load HTTP Handler RaisePostBackEvent SaveViewState PreRender Render
  • 34. # 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 determinado Controller. 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.
  • 35. # 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
  • 36. # Comparando Web Forms e 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.
  • 37. # 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.
  • 38. # 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.
  • 39. # 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.
  • 40. # Ex emplos Reais
  • 41. Demo
  • 42. O brigado !! • @moacircasemiro • moacircasemiro@hotmail.com • www.moacircasemiro.com
  • 43. 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