ASP.NET MVC Mini Curso
Upcoming SlideShare
Loading in...5
×
 

ASP.NET MVC Mini Curso

on

  • 2,890 views

 

Statistics

Views

Total Views
2,890
Views on SlideShare
2,890
Embed Views
0

Actions

Likes
0
Downloads
76
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

ASP.NET MVC Mini Curso ASP.NET MVC Mini Curso Presentation Transcript

  • ASP.NET MVC
    Vinícius de Melo Rocha
    MCP | MCTS | MCPD
    Microsoft Student Partner
    vinicius.rocha@studentpartners.com.br
  • Agenda
    Visão Geral
    Principais conceitos
    Razor
    Model Binding
    Validação
    Filtros
    Autenticação
    Criar uma aplicação
  • Desenvolvimento <WEB />
    Linguagens
    HTML
    Javascript
    CSS
    AJAX – Isso é uma linguagem?
    Servidor
    HTTP Verbs: POST, GET, PUT
    Sem estado
  • Desenvolvimento com ASP.NET
    Framework para web do .NET
    Web Forms
    Desktop para WEB
    Produtividade
    Curva de aprendizagem
    ASP.NET MVC
    Implementação do modelo MVC
    Testável (TDD)
    Mais controle sobre o código gerado
  • Visão geral WebForms
    Toolbox e Designer
    Postbacks
    Event driven
    HTML Forms e Viewstate
    Controles pela WEB
    Entre outras coisas
  • Porquê ASP.NET MVC
    Testável (TDD)
    Maior controle sobre o <código />
    SEO | .com/url/amiga
    Separar responsabilidades
    Open source
  • ASP.NET MVC
    o que é isso?
    Implementação do padrão MVC
    Alternativa ao Web Forms (ASPX)
    Desenvolvido usando ASP.NET
    Público diferente?
  • ASP.NET [ASPX | MVC]
    O que existe em comum?
    Routing (System.Web.Routing)
    Caching
    Sessions
    Profiles e Membership
    Localization
  • Padrão MVC
    Velho padrão de projeto
    Acrônimo para: ModelViewController
    Descrito originalmente em 1979
    Applications Programming in Smalltalk-80: How to use Model–View–Controller
  • Como funciona... na web
    Controller
    Requisição
    Passo 1
    Requisição é mapeada para o Controller
  • Como funciona... na web
    Controller
    Requisição
    Passo 2
    O Controller processa a informação e cria o modelo (Model)
  • Como funciona... na web
    Controller
    Requisição
    View
    Passo 3
    O modelo (Model) é encaminhado para a View
  • Como funciona... na web
    Controller
    Requisição
    View
    Passo 4
    A View apresenta o (Model) em algo legível para o usuário
  • Como funciona... na web
    Controller
    Requisição
    View
    Response
    Passo 5
    A View envia os modelo formatado para o usuário via Response
  • O que usaremos?
    Ferramentas
    IDE Visual Studio 2010
    LinguagemC#
    View engine Razor
    Banco de Dados(?)
  • Começando...
    File > New > Project
    Estrutura do projeto
    Funcionamento dos controllers
    Onde ficam as views e coisas assim...
  • Exercício 1
    Criação de um projeto
    Estrutura de pastas
    Criação de Controllers
    Criação de Actions
    ActionResult
    Uso de convenções
  • Exercício 2
    Adicionar parâmetros
    “nome” na actionIndex
    ‘id’ na action Detalhes
    URL Routing
    Adicionar novas rotas
  • Razor
    Não substitui o ASPX (alternativa)
    View engine mais simples
    Menos código
    Mais natural ao se misturar com HTML
    Vários Helpers
    Funciona com Visual Studio e WebMatrix
  • Razor - Exemplo
    <ul>
    <% for (int i = 0; i < 10; i++) { %>
    <li><% =i %></li>
    <% } %>
    </ul>
    ASPX
    PHP
    Razor
    <ul>
    <?php
    for ($i = 0; $i < 10; $i++) {
    echo("<li>$i</li>");
    }
    ?>
    </ul>
    <ul>
    @for (inti = 0; i < 10; i++) {
    <li>@i</li>
    }
    </ul>
  • Razor - Comentários
    @*
    <div>
    Hello World
    </div>
    *@
    @{
    //var name = “Vinicius Rocha”;
    //@name
    }
    @*
    @{
    var name = “Vinicius Rocha";
    @name
    }
    *@
  • Razor - Layout
    Similar ao uso de MasterPages
    Defina um layout e reuse em outras páginas
    Page 1
    Layout.cshtml
    Page 2
    Page 3
  • Razor - Layout
    RenderBody
    RenderSection
    RenderPage
    Helpers
    RenderPartial
    RenderAction
  • RenderBody
    Corpo da página
    /Shared/_Layout.cshtml
    <html>
        <head>
          <title>Simple Layout</title>
        </head>
        <body> 
            @RenderBody()
    </body>
    </html>
    MyPage.cshtml
    @{
    Layout = “~/Shared/_Layout.cshtml";
    }
    <p>
    My content goes here
    </p>
  • Razor - Layout
    Usar RenderSectionpara definir outras partes
    Obrigatório por padrão
    /Shared/_Layout.cshtml
    MyPage.cshtml
    <html>
        <head>
          <title>Simple Layout</title>
        </head>
        <body> 
    @RenderSection("Menu")
            @RenderBody()
    </body>
    </html>
    @{
    Layout = “~/Shared/_Layout.cshtml";
    }
    @section Menu {
    <ulid="pageMenu">
    <li>Option 1</li>
    <li>Option 2</li>
    </ul>
    }
    <p>My content goes here</p>
  • Razor - Layout
    RenderPage – adicionar o conteúdo de outra página
    /Shared/_Layout.cshtml
    /Shared/_Footer.cshtml
    <html>
        <head>
          <title>Simple Layout</title>
        </head>
        <body> 
    @RenderSection("Menu")
            @RenderBody()
    @RenderPage(“~/Shared/_Footer.cshtml")
    </body>
    </html>
    <div class="footer">
       © 2011 MIC
    </div>
  • Razor – Exercício 3
    Criar uma página de Layout
    Criar uma View que use o Layout
    Definir uma região - Section
    Não é session!
    Criar e chamar uma Page
  • Passando dados para a View
    ViewData
    Dictionary
    ViewBag
    Tipo dynamic
    Novidade no MVC 3
    Através de modelos
    View podem ser fortemente tipadas
  • MVVM
    Model – View – ViewModel
    Dados que serão enviados para a View
    http://en.wikipedia.org/wiki/Model_View_ViewModel
  • Exercício 4
    Passar dados usando ViewBag
    Criar um ViewModel
    Quantidade
    Categorias
    Definir uma View fortemente tipada
    @model Cadastro.ViewModel.HomeViewModel
    Passar os dados usando ViewModel
  • Helpers
    ActionLink
    TextBox
    Password
    DropdownList
    Action
  • Helpers
    Duas formas para usar helpers:
    <%= Html.TextBox("ActivityType") %>
    <%: Html.TextBoxFor(m => m.ActivityType) %>
    <input type="text"
    name="ActivityType"
    value="Restaurant" />
  • Exercício 5
    Criar um Controller para Categoria
    Criar as Actions
    Index
    Detalhes
    Apagar
    Exibir os produtos da categoria
  • Forumulários
    HTTP Methods
    [HttpPost]
    [HttpGet]
    [HttpDelete]
    @Html.BeginForm()
    Model Binding
    UpdateModel
    Aplicações RESTful
  • Exercício 6
    Criar Controller de Produto
    Actions
    Index
    Cadastrar
    Apagar
    Editar
  • Validação
    Validação no servidor e no cliente
    Através de DataAnnotations
    [Required]
    [Range]
    [RegularExpression]
    [StringLength]
    Localização
    Fácil extensão
  • Filtros
    IAuthorizationFilter
    OnAuthorization
    IActionFilter
    OnActionExecuted
    OnActionExecuting
    IResultFilter
    OnResultExecuted
    OnResultExecuting(Roda antes de executar o ActionResult)
    IExceptionFilter
    OnException
  • Filtros
    Implementações ASP.NET MVC
    AuthorizeAttribute
    HandleErrorAttribute
    OutputCacheAttribute
    RequireHttpsAttribute
    Sobrescrever os métodos do Controller
    Classe que herdar de ActionFilterAttribute
  • Filtros
    A classe Controller implementa todas as interfaces de filtro
    OnAuthorization
    OnException
    OnActionExecuting
    OnActionExecuted
    OnResultExecuting
    OnResultExecuted
  • Autenticação
    [Authorize]
    Membership provider
    Classe FormsAuthentication
    RedirectFromLoginPage()
    RedirectToLoginPage()
    SignOut()
    Web.config
  • Exercício 7
    Criar a tela de Login
    Configurar o Web.config
    Adicionar Filtros de validação
  • Cool Links
    http://www.asp.net/mvc
    http://www.codeplex.com/aspnet
    http://www.sharpshooters.com.br/blog/
    http://haacked.com/
    http://weblogs.asp.net/scottgu/
    http://www.hanselman.com/
    http://trainingkit.webcamps.ms/