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

Palestra ASP.NET MVC

  • 1.
    Moacir Casemiro Gestão eArquitetura 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 ossaA 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 lgumasdefiniçõ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 lgumasdefinições
  • 8.
    # A lgumasdefiniçõ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ísticas principais sobre Padrões • São Conceitos (não tecnologias); • Resolvem problemas específicos.
  • 10.
    # Padrões deProjet o • Gang-of-Four (Gangue-dos-Quatro) o Erich Gamma, o Richard Helm, o Ralph Johnson e o John Vlissides
  • 11.
    # O rganizaçãodos Padrões GO F
  • 12.
    # I nterações dos Padrões
  • 13.
  • 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 ntroduçã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 ntrodução ao M VC Framework
  • 18.
    # I ntrodução ao M VC Framework Visualização Controle Modelo Pagina HTML Negócio Pagina ASP Controlador Persistência Outros Clientes
  • 19.
  • 20.
    # A ntes 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 ETM VC • ASP.NET MVC
  • 22.
    # A SP.NET 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.NET M VC • PASSOS PARA UTILIZAR ASP.NET MVC
  • 27.
    # A SP.NET M VC • PASSOS PARA UTILIZAR ASP.NET MVC
  • 28.
    # A SP.NET M VC • PASSOS PARA UTILIZAR ASP.NET MVC
  • 29.
    # A SP.NET 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.NET 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 endendoo 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 eamento 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 endendoo 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 endendoo 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.
  • 41.
  • 42.
    O brigado !! •@moacircasemiro • moacircasemiro@hotmail.com • www.moacircasemiro.com
  • 43.
    Referencias • SP.NET Model-View-ControllerApplications 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