Treinamento Básico Sobre ASP.NET MVC

Click here to load reader

  • date post

    20-Jul-2015
  • Category

    Software

  • view

    95
  • download

    1

Embed Size (px)

Transcript of Treinamento Básico Sobre ASP.NET MVC

Treinamento ASP.NET MVC 4.0

Treinamento ASP.NET MVC 4.0Por Michael costa

TIIntroduoTreinamento de nvel bsico, indicado para quem no conhece, ou teve pouco contato com a tecnologia

Pensado tanto para quem iniciar o desenvolvimento no framework quanto quem apenas ir atuar como solicitante da fbrica.

A verso de referencia do framework .net a 4.5, com MVC 4.0 e Visual Studio 2012 ou superior.2Um pouco de histria

De onde vieram, o que comem, para onde vo e quanto ganham as diversas linguagens e frameworks que fazem parte da nossa vida...

Web PagesMistura-se cdigo HTML com dinmico. Controles dinmicos baseados em processamento realizado no servidor.Aprendizado Simples. Indicado para construo de pequenos sites. Desvantagem: Pouca reutilizao, lgica mal estruturada.

4

Web FormsSimilar ao modelo Desktop (controles e eventos)Fluxo de fcil aprendizagemLgica dos comandos e eventos separada da parte visual. Bom para aplicaes intranet.Desvantagem: Fcil acabar misturando as responsabilidades nas camadas de negcio. Difcil de adotar metodologias de teste.

5Esquea tudo sobre desenvolvimento web!

Pois agora eu lhes apresento...ASP.NET MVCSeparao lgica entre as responsabilidades de negcioEstrutura padronizadaFacilita desenvolvimento orientado a testes (TDD)Tratamento elegante de rotas e linksIndicado para aplicaes sriasJ uma tendncia mundial Desvantagem: Apesar dos aceleradores, a curva de aprendizado maior

7O fato que...... a fila andou.

Voltando ao que interessa (espero que tenha gostado da viagem no tempo)O que significa essa sopa de letrinhas?- Model Representa em classes os objetos gerenciveis pela sua aplicao. Ex.: Carro.

- View Responsvel pela apresentao dos dados representados pelo model. Ex.: Lista de Carros.

- Controller Faz o meio-campo entre a tela e o sistema. Recebe requisies, selecionam a view responsvel pelas aes recebidas, instancia classes necessrias para preenchimento dos models e devolve para o usurio a representao destes atravs das Views.9Templates do ASP.NET MVCBasicamente 8 templates no framework 4.0:

EmptyBasicInternet ApplicationIntranet ApplicationMobile ApplicationWeb APISingle Page AppFacebook Application

Updates do VS, incluem novos templates, totalmente compatveis com VS sem update!

10Estrutura do projetoPara Intranet Application, por ex., temos a seguinte extrutura:

App Data: Arquivos de banco de dados, XML, etc. Somente a prpria aplicao tem acesso este diretrio durante o runtime.App Start: Classes que executam cdigos na inicializao do programa, uma separao mais estruturada do Global.asaxContent: Arquivos CSS, imagens relacionadas aos temas bem como arquivos que precisam ser publicados junto aplicao.Controllers: Classes controladoras. Pelo template, j vem um controlador de autenticao e um para a pgina Home.Filters: Classes para pr-processamento dos Controller Actions.

11Estrutura do projetoImages: Imagens utilizadas no projeto. CSSs da pasta Content podem referenciar imagens daqui.Models: Classes de negcio do projeto. Em projetos grandes, possvel separar estas classes em um projeto separado, mas mantendo esta estrutura.Scripts: Arquivos JavaScript, incluindo classes de bibliotecas como jQuery por exemplo.Views: Templates para renderizao de interfaces. Para cada controller usual termos uma pasta com o mesmo nome aqui dentro. Na subpasta Shared, ficam views reaproveitveis, semelhante ao master-page do web forms).

12Abordagens de Desenvolvimento

Database FirstAplica-se aos cenrios onde j existe um banco de dados criado, ou quando preferimos modelar e criar o banco de dados todo antes do sistema. Neste caso, o Entity Framework (EF) analisa o banco e gera os mapeamentos em arquivos .edmx, chamados Model Files.

14Model FirstCriamos os Model Files (.edmx) atravs da ferramenta de modelagem do Visual Studio e durante a execuo do cdigo o EF se incumbe de criar as tabelas e colunas representadas pelos models.

15Code FirstNeste modelo, ns mesmos escrevemos os models e o EF criar o banco de dados assim como no modelo anterior.O desenho do projeto comea nos models.

16Aprofundando

Caractersticas do Model So as classes que usamos para representar os dados que iremos trabalhar. Eles carregam tudo entre o banco de dados e a interface, e devolvem para o banco persistir as alteraes realizadas pelo programa. Implementamos na forma de POCOs (Plain Old CLR Object), ou seja, estruturas simples de dados do modelo de domnio que representam o negcio. Podem ser o ponto de partida no desenho da aplicao. Iniciando no modelo de domnio, todas as demais partes do sistema so criadas baseando-se nestes.18Recursos do ModelPodemos descrever comportamentos do objeto, por ex.:A forma que ele ser descrito na telaSe o atributo obrigatrioSe h um tipo especfico de dados a ser validado, e inclusive informar expresses regulares (RegEx) para a validao. Mensagens de alerta em caso de erro na validao do atributo.19Recursos do ModelDefinimos relacionamento entre as classes, como exibir os dados e como validar. Com isso, garantimos o reuso. Independente do utilizador, o comportamento segue transparente.Responsveis por descrever as informaes e objetos manipulados pela aplicao, so o corao da aplicao web.

20Mo na Massa

Vamos criar um modelModel BindersAcostumados com WebForms sabem que leituras de dados enviados do formulrio so acessadas via Request. No MVC, existe um mecanismo mais inteligente, chamado Model Binder.Ele cria a instancia de uma classe model, baseado nos dados enviados pelo objeto Request. Analisa tanto os parmetros esperados pela Action do Controller, quanto os parmetros enviados pela tela.

22Model BindersEle nos livra de ter de escrever boilerplate code, ou seja, todos os mapeamentos de Response.QueryString/Forms, e tambm converses de tipo, o que alm de consumir bastante tempo, nos expe a erros, validao de nulos, dentre outros.

23Model BindersO componente Model Binder pode ser customizado, para atender a necessidades alm do padro oferecido pelo framework. Um exemplo, seria construir um model binder customizado que leia do LocalStorage do browser, ao invs de apenas ler os objetos do Request.

24ControllersPonto central. onde instanciamos models, executamos operaes, persistimos dados, e retornamos a view correspondente a solicitao. Basicamente classes compostas por Actions.Por padro, as Actions retornam um objeto do tipo ActionResult. Mas alternativamente, pode-se retornar uma classe que derive desta.

2525ControllersO fluxo de requisio/retorno dos Controllers, funcionam respeitando o protocolo HTTP, ou seja, trabalha com verbos.Verbos HTTP nada mais so que um conjunto de operaes sobre recursos. Os principais utilizados so GET/POST/PUT/DELETE.

26ControllersUm verbo diz ao handler do MVC, qual Action ele deseja chamar, isto porque duas actions podem ter o mesmo nome, mas com comportamentos diferentes.Uma mesma action pode ter comportamentos diferentes ao ser solicitada, e ao ser respondida.27

ControllersPela utilizao de HttpGet, HttpPost, dentre outros, habilitamos o MVC a identificar qual o cenrio em execuo.Quem nunca teve de utilizar um parmetro informando a operao, ou ter deseparar a funcionalidade em dois programas?28

Mo na Massa

Vamos criar um controllerViewsViews so o terceiro pilar. Numa mistura de cdigo HTML e cdigo server side, so responsveis pela exibio do resultado das requisies.Requerem conhecimento de HTML e Razor30

ViewsNo WebForms, componentes dinmicos eram gerados automaticamente. Perdia-se o controle do HTML e certas customizaes requeriam mgica.No MVC, temos total liberdade de customizao.Templates podem ser totalmente criado por Web Designers. A manipulao do DOM muito mais simples, pois h previsibilidade no documento processado.31Views32

Podemos dizer ento que, uma view apresenta os dados de um model retornado por um controller. Ou seja, se voc precisar exibir o modelo de um Carro, basta criar no HTML uma rea para tal, e associar ao atributo correspondente do model.Apesar de editar cdigo HTML, ao informarmos qual o model a utilizar, o Visual Studio fornece tipagem forte e IntelliSense, facilitando o desenvolvimento e validando erros durante a escrita da classe. ViewsO resultado de uma view, a mesclagem de marcaes HTML com os HTML Helpers, que cuidam de processar contedo dinmico.Existe ainda o conceito de Partial View, onde vrias views podem compor uma necessidade mais complexa. Por exemplo, um painel informando quem alterou um registro por ltimo.33Exibio e Validao de Dados

Data AnnotationsPodemos enriquecer um model atravs do recurso Data Annotations, onde habilitamos o MVC a criar lgica de exibio e validao de dados muito simples, basta decorarmos cadapropriedade do model com as combinaes que atentam ao objetivo. 35

36using System;using System.ComponentModel;using System.ComponentModel.DataAnnotations;namespace LivroMVC.Models{ public class Car { public int CarID { get; set; } [Required] [StringLength(120)] public string Modelo { get; set; } [DisplayName("Ano/Fabricao")] public short AnoFabricacao { get; set; } [DisplayName("Ano/Modelo")] public short AnoModelo { get; set; } [DataType(DataType.DateTime)] [DisplayName("Data de Aquisio")] [DisplayFormat(DataFormatString = "{0:dd/MM/yy}")] public DateTime DataAquisicao { get; set; } [StringLength(8)] public string Placa { get; set; } }}37Front end

Razor uma uma linguagem de renderizao utilizada nas views para interpretao de cdigo server side, ou seja, tudo que estiver escrito em Razor ser exec