2.1 URL... 25 2.2 Introdução ao roteamento... 26 2.2.1 Criação de uma rota... 28 2.2.2 Parâmetros esperados pelo ASP.NET MVC... 30



Documentos relacionados
ASP.NET MVC 5 BÁSICO

Curso: Percurso Desenvolvimento de Software

Desenvolvimento para Web com Java

1.2.1 Modelo de referência para as tecnologias multimédia 12

UTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB

Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

Sumários de REDES de COMUNICAÇÃO

C# (C Sharp) - ASP.NET MVC Avançado

Curso: Especializado Web Programmer

Glossário Versão 1.0 Desenvolvimento do Sistema de Gestão de Documentos Doc Manager Histórico de Revisão

Simon Holmes. Novatec

PHP-GTK. Criando Aplicações Gráficas com PHP. Pablo Dall'Oglio. Segunda Edição Inclui PHP 5 e GTK 2. Novatec

Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

SUMÁRIO PARTE I. Princípios de Projeto, a Linguagem de Modelagem Unificada (Unified Modeling Language, ou UML) e Projeto em Nível de Código

Developing ASP.NET MVC 5 Web Applications (20486)

Curso Especializado Programador Web

Soluções de gestão de clientes e de impressão móvel

Formação WEB com PHP. Subtítulo

Oracle Database: Programação com PL/SQL

Aplicações Informáticas A

Matriz de Compatibilidade de Segurança da Camada 2 e Camada 3 do Controller de LAN Wireless

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: HTTP porto 80

1. INTRODUÇÃO AO HTML...

Curso: Especializado Search Engine Marketing

Introdução à Programação com Python

AGRADECIMENTOS... XV

IBM Software Demos Lotus Forms Designer

O Curso PfSense Vantage é o mais completo e avançado, focado na aplicação imediata do aprendizado, ministrado por instrutores certificados.

Programando com ASP.NET MVC. Aprenda a desenvolver aplicações web utilizando a arquitetura MVC. Alfredo Lotar. Novatec

Sobre a KTEC KTEC Escola de Tecnologia

Nota prévia... XXI 1. PHP, Apache Server e MySQL... 1

ASP.NET MVC 5 AVANÇADO

Motivação Este trabalho apresenta o desenvolvimento do controle da interatividade num sistema para a área de computação gráfica, mais especificamente

ARQUITETURAS PARA APLICAÇÕES MÓVEIS

Introdução à Programação com Python

MATRIZ DA PROVA DE EXAME DE EQUIVALÊNCIA À FREQUÊNCIA A NÍVEL DE ESCOLA DE INTRODUÇÃO ÀS TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO (PROVA 24)

Técnicas de Programação para a Web. Luiz Cláudio Silva. Novembro de Apresentação

1.5 PROGRAMAÇÃO DE JOGOS EM AMBIENTE DE REA LIDADE AUMENTADA AMBIENTES INTEGRADOS DE DESENVOLVIMENTO DE JOGOS 19

Formação ASP.NET MVC com C#

WordPress 3 Básico Stephanie Leary

5 - Qual é a principal vantagem de desenvolvimento de código por pares:

Guia de Procedimentos Bloco C (SPED PIS/COFINS) Introdução... 2

INE 5323 Banco de Dados I

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Calculadora Virtual HP Prime

BANCO DE DADOS. Professor: André Dutton

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Plataforma de elearning. NetForma davinci Web

Sistemas de Tempo Real

Qualidade de Produto. Maria Cláudia F. P. Emer

CRITÉRIOS ESPECÍFICOS DE AVALIAÇÃO

Agenda. O que é Testar? Por que testar? Quando testar? Processo de teste Níveis de teste Tipos de teste Classificação dos testes.

Guia de desenvolvimento de um aplicativo para o sistema operacional Android

TESTES DE SEGURANÇA FESTOCK 9 DE JUNHO DE 2011 VERSÃO 1.0

Capítulo 2 A Camada de Aplicação Prof. Othon Marcelo Nunes Batista Mestre em Informática

1.1. Definição do Problema

PROPRIEDADE INTELECTUAL, DIREITO E ÉTICA (AV)

Introdução ao Javascript. Parte 1 Prof. Victor Hugo Lopes

DESENVOLVIMENTO DE APLICAÇÕES DE WEB ASP.NET MVC 4

Guia de Instalação do "AirPrint"

SISTEMA OPERACIONAL - ios

Introdução. Qualidade de Produto. Introdução. Introdução ISO/IEC Normas

Capítulo 3: Qualidade de Produto e a ISO 9126

Cartões Multimédia Externos Manual do utilizador

COMPETÊNCIAS ESPECÍFICAS Mobilizar conhecimentos relativos à estrutura e funcionamento básico dos computadores, de modo a poder tomar decisões

Ano de esc. PLANIFICAÇÃO ANUAL DAS ÁREAS CURRICULARES DISCIPLINARES

PLANIFICAÇÃO ANUAL PROFIJ II T2 Ano letivo 2015 / 2016

ASP.Net 4.0 com Mobile Apps

Compreender as diferenças entre os vários métodos e códigos de erro HTTP. Conhecer as linguagens fundamentais para programação para a Web

Curso Técnico Concomitante em Informática MATRIZ CURRICULAR. Módulo/Semestre 1 Carga horária total: 400h. Módulo/Semestre 2 Carga horária total: 400h

Desenvolva passo a passo um Sistema Web seguro com C# e Web Services!

Sumário INTRODUÇÃO AO DESENVOLVIMENTO COM VISUAL STUDIO. Oportunidades de desenvolvimento com Visual Basic 2013 e a Windows Store 3

Informação-Prova de Equivalência à disciplina de: Aplicações Informáticas B. 1. Introdução. Ensino Secundário. Ano letivo de 2011/12

Especializado Web Programmer

17 de Fevereiro de 2010 Formador: Paulo Guimarães

Manual SIGA e SIGA2E Área do Encarregado de Educação

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

Criação de uma aplicação Web ASP.NET MVC 4

FUTSAL Aprenda a Ensinar

Portal do Contribuinte. Manual Operacional FREIRE 05/2016

Especializado Web Programmer. Sobre o curso. Destinatários. Pré-requisitos. Tecnologias de Informação - Web e Mobile. Promoção: 15% Desconto

Plano de Curso Não Regulamentado - Metodologia SENAI de Educação Profissional

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

Documento Geral Explicativo. GS1 Portugal

Ben Vinegar Anton Kovalyov

SAP Business Objects Planning and Consolidation 17 Maio 2011

Montadores e Compiladores

JUP JANELA ÚNICA PORTUÁRIA

Nota Fiscal Alagoana. Manual para Envio de Arquivo de Cupons Fiscais via Webservice

Linux Essentials. Network Configuration

FUNDAMENTOS DE SISTEMAS OPERACIONAIS MÓDULO 4

Transcrição:

AGRADECIMENTOS... XIII PREFÁCIO... XV 0. INTRODUÇÃO... 1 0.1 O que posso encontrar neste livro... 1 0.2 Requisitos... 2 0.3 A quem se dirige este livro?... 2 0.4 Código e samples... 3 0.5 Convenções... 3 0.6 Organização do livro... 3 0.6.1 Capítulo 1: Introdução ao ASP.NET MVC... 4 0.6.2 Capítulo 2: Roteamento... 4 0.6.3 Capítulo 3: Controladores... 4 0.6.4 Capítulo 4: Vistas... 5 0.6.5 Capítulo 5: Métodos auxiliares... 5 0.6.6 Capítulo 6: Validação... 5 0.6.7 Capítulo 7: JavaScript e AJAX... 5 0.6.8 Capítulo 8: Segurança... 5 0.6.9 Capítulo 9: Outras funcionalidades... 6 0.7 Suporte... 6 1. INTRODUÇÃO AO ASP.NET MVC... 7 1.1 O padrão MVC... 7 1.2 O padrão MVC e a plataforma ASP.NET MVC... 8 1.3 A evolução da plataforma... 11 1.4 Instalação da plataforma... 14 1.5 Criação de um projeto ASP.NET MVC... 16 1.6 Anatomia de um projeto ASP.NET MVC... 20 1.6.1 Convenções... 22 2. ROTEAMENTO... 25 2.1 URL... 25 2.2 Introdução ao roteamento... 26 2.2.1 Criação de uma rota... 28 2.2.2 Parâmetros esperados pelo ASP.NET MVC... 30

VIII ASP.NET MVC 2.2.3 Mapeamento de parâmetros de roteamento em parâmetros do método de ação... 31 2.2.4 Uso de valores literais... 32 2.2.5 Parâmetro catch all... 32 2.2.6 Valores predefinidos... 33 2.2.7 Aplicação de restrições... 35 2.2.8 Outras operações sobre rotas... 39 2.2.9 Alguns detalhes internos... 39 2.3 Criação de URL... 43 2.3.1 Parâmetros em query string... 46 3. CONTROLADORES... 49 3.1 Introdução aos Controladores... 49 3.2 Utilização de parâmetros... 53 3.2.1 Utilização de vários parâmetros... 55 3.2.2 Parâmetros com valores predefinidos... 57 3.2.3 Parâmetros de tipos complexos... 58 3.3 Overload de métodos... 60 3.4 Controlo da invocação de métodos... 62 3.5 Utilização de ActionResult... 64 3.5.1 Observações finais sobre ActionResult... 69 3.6 Filtros de ação... 71 3.6.1 Filtros de autorização... 72 3.6.2 Filtros de pré-processamento e pós-processamento... 74 3.6.3 Filtros de exceção... 76 3.7 Métodos de ação assíncronos... 78 3.7.1 Métodos assíncronos em.net 4.0... 80 3.7.2 Métodos assíncronos em.net 4.5... 83 3.7.3 Timeouts... 84 3.7.4 Considerações adicionais... 84 3.8 Estado de sessão... 85 3.9 Funcionamento interno de controladores... 87 3.9.1 Interface IController... 88 3.9.2 Classe ControllerBase... 89 3.9.3 Classe Controller... 90 4. VISTAS... 95 4.1 Introdução às vistas... 95 4.1.1 Localização física de uma vista... 97 4.1.2 Criação de vistas... 99 4.1.3 Criação de vistas tipificadas... 104

IX 4.2 Motor de vistas Razor... 107 4.2.1 Expressões... 108 4.2.2 Encoding... 110 4.2.3 Blocos de código... 112 4.2.4 Combinação de texto com código Razor... 113 4.2.5 Comentários Razor... 114 4.2.6 Invocação de métodos genéricos... 114 4.3 Layouts... 114 4.3.1 ViewStart... 117 4.4 Vistas parciais... 118 4.5 Métodos auxiliares Razor... 119 4.6 Detalhes internos associados às vistas Razor... 120 4.6.1 A interface IViewEngine... 121 4.6.2 As vistas... 123 4.7 Outros motores de vistas... 127 4.8 Observações finais... 127 5. MÉTODOS AUXILIARES... 131 5.1 Introdução aos métodos auxiliares... 131 5.2 Formulários... 132 5.2.1 Introdução ao elemento form... 132 5.2.2 O método BeginForm... 133 5.3 Outros métodos de extensão... 137 5.4 Classe HtmlHelper... 137 5.4.1 Métodos relacionados com controlos... 140 5.4.2 Métodos relacionados com a validação... 144 5.4.3 Métodos auxiliares e modelos... 146 5.4.4 Métodos auxiliares tipificados... 150 5.4.5 Utilização de metadata... 152 5.4.6 Utilização de templates... 155 5.4.7 Métodos auxiliares de URL... 159 5.4.8 Métodos auxiliares de renderização... 160 5.5 Classe UrlHelper... 163 6. VALIDAÇÃO... 165 6.1 Introdução à validação... 165 6.2 Atributos de validação... 166 6.2.1 Outros atributos de validação... 170 6.2.2 Personalização das mensagens de erro... 173 6.3 Personalização da validação... 175

X ASP.NET MVC 6.3.1 Atributos de validação personalizados... 175 6.3.2 Interface IValidatableObjet... 180 6.4 Validação do modelo... 181 7. JAVASCRIPT E AJAX... 187 7.1 A visão do lado cliente... 187 7.2 Introdução ao JQuery... 188 7.2.1 A plataforma ASP.NET MVC e o JQuery... 190 7.3 A classe AjaxHelper... 192 7.3.1 Método ActionLink... 192 7.3.2 Formulários... 198 7.3.3 Obtenção direta de dados... 200 7.4 Compactação de scripts e bundling... 203 7.4.1 Regras de bundling personalizadas... 208 7.4.2 Bundling dinâmico... 210 7.4.3 Ignorar ficheiros... 211 7.5 Projetos Single Page Application... 212 8. SEGURANÇA... 215 8.1 Aspetos básicos... 215 8.2 Autenticação e autorização de utilizadores... 216 8.2.1 Autenticação de controladores... 219 8.2.2 Autorização para utilizadores e grupos... 219 8.3 Vetores de ataque... 222 8.3.1 Cross-site scripting (XSS)... 223 8.3.2 Cross-site Request Forgery... 228 8.3.3 Roubo de cookies... 232 8.3.4 Over-posting... 233 8.3.5 Open Redirection... 234 8.4 Outros conselhos... 236 9. OUTRAS FUNCIONALIDADES... 239 9.1 Áreas... 239 9.1.1 Adição de uma área... 239 9.1.2 Âmbitos... 242 9.1.3 Geração de URL... 244 9.2 Funcionalidades para dispositivos móveis... 246 9.2.1 Consumo de aplicações sem alterações... 246 9.2.2 Adaptative rendering... 247 9.2.3 Personalizar a vista usada na geração de HTML... 252 9.3 Caching... 260

XI 9.3.1 Output caching... 260 9.3.2 Caching de child actions... 264 9.3.3 Donut hole caching... 266 9.4 Model binding... 266 9.4.1 Value providers... 266 9.4.2 Model binders... 267 9.5 Injeção de dependências... 274 9.5.1 Serviços Singly-registered... 275 9.5.2 Serviços Multi-registered... 276 9.5.3 Controladores e vistas... 278 9.6 Construção de API para a Web... 280 9.6.1 Criação de um novo serviço... 282 9.6.2 Negociação do conteúdo... 286 9.6.3 Nomes personalizados de métodos... 288 9.6.4 Criação de novos registos... 291 9.6.5 Autorização e outras funcionalidades... 293 9.6.6 Observações Finais... 294 9.7 Testes unitários... 294 9.7.1 Testar controladores... 295 9.7.2 Testar rotas... 296 BIBLIOGRAFIA... 301 ÍNDICE REMISSIVO... 303