palestra asp.net mvc

43
Moacir Casemiro Gestão e Arquitetura de Software MCP,MCAD,MCTS e MCPD www.moacircasemiro.com

Upload: moacir-filho

Post on 24-May-2015

1.684 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Palestra ASP.NET MVC

Moacir Casemiro

Gestão e Arquitetura de Software

MCP,MCAD,MCTS e MCPD

www.moacircasemiro.com

Page 2: Palestra ASP.NET MVC

# Quem 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 : [email protected]

• www.moacircasemiro.com

Page 3: Palestra ASP.NET MVC

# Nossa Agenda

1 - Padrões de Projetos

2 - MVC

3 - ASP.NET MVC

Page 4: Palestra ASP.NET MVC

# Padrões de Projeto

Page 5: Palestra ASP.NET MVC

O que é Padrão ?

O que é Padrão ?

O que é Padrão ?

O que é Padrão ?

O que é Padrão ? O

qu

e é

Pad

rão

?

Page 6: Palestra ASP.NET MVC

# Algumas 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"

Page 7: Palestra ASP.NET MVC

# Algumas definições

Page 8: Palestra ASP.NET MVC

“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)

# Algumas definições

Page 9: Palestra ASP.NET MVC

# Característ icas principais sobre Padrões

• São Conceitos (não tecnologias);

• Resolvem problemas específicos.

Page 10: Palestra ASP.NET MVC

# Padrões de Projeto

• Gang-of-Four

(Gangue-dos-Quatro) o Erich Gamma,

o Richard Helm,

o Ralph Johnson e

o John Vlissides

Page 11: Palestra ASP.NET MVC

# Organização dos Padrões GOF

Page 12: Palestra ASP.NET MVC

# Interações dos Padrões

Page 13: Palestra ASP.NET MVC

# MVC

Page 14: Palestra ASP.NET MVC
Page 15: Palestra ASP.NET 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

Page 16: Palestra ASP.NET MVC

# Int 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.

Page 17: Palestra ASP.NET MVC

# Int rodução ao M VC Framework

Page 18: Palestra ASP.NET MVC

# Int rodução ao M VC Framework

Pagina HTML

Pagina ASP

Outros Clientes

Controlador

Persistência

Negócio

Visualização Controle Modelo

Page 19: Palestra ASP.NET MVC

# ASP.NET MVC

Page 20: Palestra ASP.NET MVC

# Antes de tudo, o que é ASP.NET ?

• é 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.

Page 21: Palestra ASP.NET MVC

ASP.NET M VC

• ASP.NET MVC

Page 22: Palestra ASP.NET MVC

# ASP.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

Page 23: Palestra ASP.NET MVC

# M VC - M odel

• 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.

Model

Page 24: Palestra ASP.NET MVC

# M VC – Cont roller

[HandleError]

public class HomeController : Controller

{

public ActionResult Index()

{

ViewData["Title"] = "Home Page";

ViewData["Message"] = "Welcome to ASP.NET MVC!";

return View();

}

}

Controller

Page 25: Palestra ASP.NET MVC

# 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

Page 26: Palestra ASP.NET MVC

• PASSOS PARA UTILIZAR ASP.NET MVC

# ASP.NET M VC

Page 27: Palestra ASP.NET MVC

• PASSOS PARA UTILIZAR ASP.NET MVC

# ASP.NET M VC

Page 28: Palestra ASP.NET MVC

• PASSOS PARA UTILIZAR ASP.NET MVC

# ASP.NET M VC

Page 29: Palestra ASP.NET MVC

• 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.

# ASP.NET M VC

Page 30: Palestra ASP.NET MVC

• 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

# ASP.NET M VC

Page 31: Palestra ASP.NET MVC

# Entendendo 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 primeiramente 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.

Page 32: Palestra ASP.NET MVC

# Routeamento 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()

));

}

Page 33: Palestra ASP.NET MVC

HTTP Handler

Initialization

LoadViewState

LoadPostbackData

Load

RaisePostBackEvent

SaveViewState

PreRender

Render

# Entendendo o Ciclo de Vida de uma aplicação

• Web Forms

Page 34: Palestra ASP.NET MVC

# Entendendo 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.

Page 35: Palestra ASP.NET MVC

# Entendendo o Ciclo de Vida de uma aplicação

Browser URL Routing Controller Model View

POST

new

Invoke action Invoke method

Lookup view

Render (viewData)

HTML

• ASP.NET MVC

Page 36: Palestra ASP.NET MVC

# Comparando Web Forms

e M VC

• 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.

• Web Forms

Page 37: Palestra ASP.NET MVC

• 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.

• Web Forms

# Comparando Web Forms e ASP.NET

Page 38: Palestra 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.

• ASP.NET MVC

# Comparando Web Forms e ASP.NET

Page 39: Palestra 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.

• ASP.NET MVC

# Comparando Web Forms e ASP.NET

Page 40: Palestra ASP.NET MVC

# Exemplos Reais

Page 41: Palestra ASP.NET MVC

Demo

Page 42: Palestra ASP.NET MVC

Obrigado !!

• @moacircasemiro

[email protected]

• www.moacircasemiro.com

Page 43: Palestra ASP.NET MVC

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