1. ASP.NET MVC Vinícius de Melo Rocha MCP | MCTS | MCPD Microsoft Student Partner vinicius.rocha@studentpartners.com.br
2. Agenda Visão Geral Principais conceitos Razor Model Binding Validação Filtros Autenticação Criar uma aplicação
3. Desenvolvimento <WEB /> Linguagens HTML Javascript CSS AJAX – Isso é uma linguagem? Servidor HTTP Verbs: POST, GET, PUT Sem estado
4. 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
5. Visão geral WebForms Toolbox e Designer Postbacks Event driven HTML Forms e Viewstate Controles pela WEB Entre outras coisas
6. Porquê ASP.NET MVC Testável (TDD) Maior controle sobre o <código /> SEO | .com/url/amiga Separar responsabilidades Open source
7. ASP.NET MVC o que é isso? Implementação do padrão MVC Alternativa ao Web Forms (ASPX) Desenvolvido usando ASP.NET Público diferente?
8. ASP.NET [ASPX | MVC] O que existe em comum? Routing (System.Web.Routing) Caching Sessions Profiles e Membership Localization
9. Padrão MVC Velho padrão de projeto Acrônimo para: ModelViewController Descrito originalmente em 1979 Applications Programming in Smalltalk-80: How to use Model–View–Controller
10. Como funciona... na web Controller Requisição Passo 1 Requisição é mapeada para o Controller
11. Como funciona... na web Controller Requisição Passo 2 O Controller processa a informação e cria o modelo (Model)
12. Como funciona... na web Controller Requisição View Passo 3 O modelo (Model) é encaminhado para a View
13. Como funciona... na web Controller Requisição View Passo 4 A View apresenta o (Model) em algo legível para o usuário
14. Como funciona... na web Controller Requisição View Response Passo 5 A View envia os modelo formatado para o usuário via Response
15. O que usaremos? Ferramentas IDE Visual Studio 2010 LinguagemC# View engine Razor Banco de Dados(?)
16. Começando... File > New > Project Estrutura do projeto Funcionamento dos controllers Onde ficam as views e coisas assim...
17. Exercício 1 Criação de um projeto Estrutura de pastas Criação de Controllers Criação de Actions ActionResult Uso de convenções
18. Exercício 2 Adicionar parâmetros “nome” na actionIndex ‘id’ na action Detalhes URL Routing Adicionar novas rotas
19. 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
27. 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
28. Passando dados para a View ViewData Dictionary ViewBag Tipo dynamic Novidade no MVC 3 Através de modelos View podem ser fortemente tipadas
29. MVVM Model – View – ViewModel Dados que serão enviados para a View http://en.wikipedia.org/wiki/Model_View_ViewModel
30. 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
35. Exercício 6 Criar Controller de Produto Actions Index Cadastrar Apagar Editar
36. Validação Validação no servidor e no cliente Através de DataAnnotations [Required] [Range] [RegularExpression] [StringLength] Localização Fácil extensão
37. Filtros IAuthorizationFilter OnAuthorization IActionFilter OnActionExecuted OnActionExecuting IResultFilter OnResultExecuted OnResultExecuting(Roda antes de executar o ActionResult) IExceptionFilter OnException
38. Filtros Implementações ASP.NET MVC AuthorizeAttribute HandleErrorAttribute OutputCacheAttribute RequireHttpsAttribute Sobrescrever os métodos do Controller Classe que herdar de ActionFilterAttribute
39. Filtros A classe Controller implementa todas as interfaces de filtro OnAuthorization OnException OnActionExecuting OnActionExecuted OnResultExecuting OnResultExecuted