Moacir Casemiro apresenta suas credenciais e experiência em arquitetura e gestão de software, incluindo certificações como MCP, MCAD, MCTS e MCPD. Ele fornece seus contatos e detalhes sobre palestras e treinamentos sobre padrões de projeto, MVC e ASP.NET MVC.
2. # Q uem 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 : moacircasemiro@hotmail.com
• www.moacircasemiro.com
3. # N ossa A genda
1 - Padrões de Projetos
2 - MVC
3 - ASP.NET MVC
5. O que é Padrão ?
O que é Padrão ?
O que é Padrão ?
O que é Padrão ?
O que é Padrão ?
O que é Padrão ?
6. # A lgumas 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"
8. # A lgumas definições
“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)
9. # Caract eríst icas
principais sobre Padrões
• São Conceitos (não tecnologias);
• Resolvem problemas específicos.
10. # Padrões de Projet o
• Gang-of-Four
(Gangue-dos-Quatro)
o Erich Gamma,
o Richard Helm,
o Ralph Johnson e
o John Vlissides
15. # 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
16. # I nt 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.
20. # A nt es de t udo, o que
é A SP.N ET ?
• é 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.
22. # A SP.N ET 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
23. # M VC - M odel Model
• 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.
24. # M VC – Cont roller Controlle
r
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Title"] = "Home Page";
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
}
25. # 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
26. # A SP.N ET M VC
• PASSOS PARA UTILIZAR ASP.NET
MVC
27. # A SP.N ET M VC
• PASSOS PARA UTILIZAR ASP.NET
MVC
28. # A SP.N ET M VC
• PASSOS PARA UTILIZAR ASP.NET
MVC
29. # A SP.N ET M VC
• 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.
30. # A SP.N ET M VC
• 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
31. # Ent endendo 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 primeirament
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.
32. # Rout eament o
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()
));
}
33. # Ent endendo o Ciclo de
Vida de uma aplicação
• Web Forms
Initialization
LoadViewState
LoadPostbackData
Load
HTTP
Handler
RaisePostBackEvent
SaveViewState
PreRender
Render
34. # Ent endendo 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.
35. # Ent endendo o Ciclo de
Vida de uma aplicação
• ASP.NET MVC
Browser URL Routing Controller Model View
new
POST
Invoke
Invoke action method
Lookup view
Render (viewData)
HTML
36. # Comparando Web Forms
e M VC
• Web Forms
• 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.
37. # Comparando Web
Forms e A SP.N ET
• Web Forms
• 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.
38. # Comparando Web
Forms e A SP.N ET
• 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.
39. # Comparando Web
Forms e A SP.N ET
• 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.
42. O brigado !!
• @moacircasemiro
• moacircasemiro@hotmail.com
• www.moacircasemiro.com
43. 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