SlideShare uma empresa Scribd logo
1 de 32
WUX201 - ASP.NET MVC
ASP.NET MVC RC1
Bruno Tavares
Software Engineer @Sapo.pt
Objectivos

• Uma sessão para developers

• Compreender o padrão MVC

• Compreender os principais conceitos ASP.NET MVC

• Emersão na ASP.NET MVC Framework

• Apresentar cenários onde a Framework seja uma mais-
  valia
Por vezes…
desenvolver/manter aplicações faz-me sentir que estou a
  jogar o “Operação” com a minha filha:
MVC Pattern

• MVC = Model/View/Controller

• É uma design pattern para
  presentation layers                   Model

• Isola a lógica de negócio do
  user interface

• Clara separação de âmbito
  entre componentes
                                 View           Controller
• É mais simples manter as
  aplicações
MVC Pattern                                      Model

                                                Entidades de negócio

O que é o Model?
                                                            Workflow
• Responsável pelo acesso a dados,
  persistência de estado, processamento     Processamento de dados
  de dados, pela lógica de negócio, etc.

• É agnóstico à apresentação/formatação           Acesso
  dos dados

• Responde a pedidos do Controller e
  notifica as Views de alteração de
  estado que dependam de um Model                       Database

                                           Webservice
MVC Pattern

O que é uma View?                                 View

                                      Model
• Responsável pelo look and feel,
  apresentação, formatação,
  ordenação, etc. dos dados                                   Display(HTML,
                                                  Renderiza    JSON, XML,
                                                                  etc)
• Um Model pode ter diversas
  Views                             Formatação
                                    Lógica deUI
MVC Pattern                                             Evento




O que é um Controller?
                                                    Controller
• Responsável por tratar de eventos,                         View1
                                                   Select
  manipula os Model e selecciona as                          View2
                                          Select
                                                   Select    View3
  Views
                                          Selecciona Views


• O seu objectivo fundamental é receber
  um evento e verificar o que vai fazer
  com ele                                               Trata de eventos


                                                            Manipula



                                          Model         Model          Model
O que é o ASP.NET MVC RC1?

• É a primeira Release Candidate (RC1)

• É um novo tipo de projecto web para o ASP.NET

• Implementa a design pattern MVC

• Entega RESTfull-like web aplicações

• Extensível e Pluggable – substituam ou adicionem qualquer
  componente à Framework

• Desenvolvido a pensar no Test Driven Development (TDD)

• Total controlo sobre o <html/>
E o ASP.NET?

 E o que vai acontecer ao Microsoft ASP .NET?
E o ASP.NET?

• ASP.NET MVC é só mais uma OPÇÃO desenvolvida
  sobre ASP.NET!
   – System.Web;
   – System.Web.MVC;
Escolher entre ASP.NET MVC e ASP.NET Web Forms



ASP.NET Web forms:

•   Os Web Forms são uma tecnologia bem compreendida e enraizada
•   Uma curva de aprendizagem relativamente rápida
•   Maior abstracção sobre o HTML
•   Existem inúmeras aplicações sobre Web Forms que funcionam
    bem:
    – Intranets
    – Aplicações web do mundo corporativo onde o foco está nas funcionalidade vs
      restrições como time-to-market
    – Aplicações web onde exista muita dependência entre componentes – existe um
      mercado forte com componentes sofisticados e a baixo custo
    – Backoffices
Escolher entre ASP.NET MVC e ASP.NET Web Forms



ASP.NET MVC:

• Para aqueles que gostam “mexer” no HTML
• Baixa ou inexistente abstracção sobre HTML
• Múltiplas Views sobre o mesmo Model
• Para website sobre os quais seja necessário total controlo sobre o
  seu output
• Test-Drivem Development (TDD)
• Exemplos:
    – Blogs engines
    – E-commerce store-front
    – Canais temáticos
Escolher entre ASP.NET MVC e ASP.NET Web Forms


                Mais controlo sobre detalhes



                                          MVC
WebForms                 ASP.NET
                                          • Do it yourself
• Ecossistema de         • Services
                                          • Separação de âmbito
Controlos                • Caching
                                          • Test Driven Development
• Gestão de estado       • Routing
                                          • Extensibilidade
• Simples de começar -   • Localization
                                          • Convenção sobre a
        drag and drop
                                                   configuração




                  Ready-to-
                  Ready-to-use building blocks
Como funciona o ASP.NET MVC?


Request                                 Response




 HTTP                           View
          Route   Controller              View
Routing                        Engine
demo
 - Criação de um Projecto
 - Routing
Como é que os Controllers e views funcionam?


                                       Controller
Controller   Controller
                                         Action
                          Controller                 Filters
 Builder      Factory
                                        Invoker




                            View        Action
Response       View                                 Response
                                        Result
                           Engine




                            View
                           Locator
demos
 - Controllers e Views
 - ActionFilters e ResultActions
 - Desenvolver um ViewEngine
NHaml


#foo
    - foreach (var product in ViewData)
        - if (product.Category.CategoryName != null)
            %h2=product.Category.CategoryName
            - break
    %ul.productlist
        - foreach (var product in ViewData)
            %li
                = Html.Image(quot;/Content/Images/quot; + product.ProductID + quot;.jpgquot;, product.ProductName)
                .productdetail
                    =Html.ActionLink(product.ProductName, quot;Detailquot;, new { ID=product.ProductID })
                    %br
                    Price:
                    =String.Format(quot;{0:C2}quot;, product.UnitPrice)
                                          “.productdetail”
                        %span.editlink
                            (
                            =Html.ActionLink(quot;Editquot;, quot;Editquot;, new { ID=product.ProductID })
                            )

                                                    becomes
                                  <div id=”productdetail”>
Spark


<ul class=quot;productlistquot;>
 <var styles='new[] {quot;oddquot;, quot;evenquot;}'/>
 <li each=quot;var product in ViewData.Modelquot; class=quot;${styles[productIndex%2]}quot;>
   <ProductImage style='quot;float:left;quot;'/>
   <p>
   <a href=quot;/Products/Detail/${product.ProductID}quot;>${product.ProductName}</a>
   <br />
   Price: ${String.Format(quot;{0:C2}quot;, product.UnitPrice)}
   <span class=quot;editlinkquot;>
         (${Html.ActionLink[[ProductsController]](c=>c.Edit(product.ProductID), quot;Edi
   tquot;)})
   </span>
   </p>
   <div style=quot;clear:both;quot;></div>
 </li>
</ul>
         <li each=quot;var product in
         ViewData.Modelquot;
         class=quot;${styles[productIndex%2]}quot;>
Próximos desenvolvimentos MVC?

• Mais próximo do mundo Corporate
  – Mais controlo sobre estado
  – Acções assíncronas nos Controllers
  – Maior portfólio de “componentes” drag-and-drop


• Lambda-based helpers
Conclusões

• Total controlo sobre o HTML

• Extensível e Pluggable

• Preconiza a clara separação de âmbito entre
  componentes

• Testabilidade - suporte a Test-Driven Development

• ASP.NET MVC é uma opção sobre ASP.NET webforms
Links

• http://www.asp.net/MVC

• http://www.codeplex.com/aspnet

• http://weblogs.asp.net/scottgu/ (ScottGus’s)

• http://blog.wekeroad.com/ (Rob Conery)

• http://www.hanselman.com/ (Scott Hanselman's)
Q&A
Software em versão completa para avaliação
  Suporte técnico 24x7 para incidentes
  Acesso antecipado às versões beta
  Microsoft Office
  Software Assurance
  formação gratuita ….e muito mais.
w w w. m i c r o s o f t . c o m / p o r t u g a l / m s d n / s u b s c r i c o e s
w w w. m i c r o s o f t . c o m / l e a r n i n g / m c p / o f f e r s / s e c o n d s h o t
MSDN Flash




w w w. m i c r o s o f t . c o m / p o r t u g a l / m s d n / m s d n f l a s h
Participe nos próximos ciclos
   Traga Amigos a assistir e …
   …ganhe uma Xbox, trolleys e
   livros




w w w. m i c r o s o f t . c o m / p o r t u g a l / m s d n / w e b c a s t s 4 s h a r e
[BI] Resort
GASP
GetCertified
GetVirtual
Mundo Móvel
PocketPT
PontoNetPT
UC’ed
ScrumPT
ZoomIn
Questionário
A sua opinião é importante!
Complete o questionário de avaliação e
devolva-
devolva-o no balcão da recepção.
Instituto Superior Técnico
Campus do Taguspark

Mais conteúdo relacionado

Mais procurados

Utilizando o Padrão Presentation Model em Aplicações Flex
Utilizando o Padrão Presentation Model em Aplicações FlexUtilizando o Padrão Presentation Model em Aplicações Flex
Utilizando o Padrão Presentation Model em Aplicações FlexEric Cavalcanti
 
Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Web 2.0 com Ajax: JQuery/PHP (Aula 01)Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Web 2.0 com Ajax: JQuery/PHP (Aula 01)Wagner Silva
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 
Javascript truquesmagicos
Javascript truquesmagicosJavascript truquesmagicos
Javascript truquesmagicosponto hacker
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesRafael Ponte
 
Angular JS, você precisa conhecer
Angular JS, você precisa conhecerAngular JS, você precisa conhecer
Angular JS, você precisa conhecermeet2Brains
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoIvan Rosolen
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeRafael Ponte
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojofabioginzel
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoEduardo Bregaida
 

Mais procurados (19)

Utilizando o Padrão Presentation Model em Aplicações Flex
Utilizando o Padrão Presentation Model em Aplicações FlexUtilizando o Padrão Presentation Model em Aplicações Flex
Utilizando o Padrão Presentation Model em Aplicações Flex
 
Grails
GrailsGrails
Grails
 
Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Web 2.0 com Ajax: JQuery/PHP (Aula 01)Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Web 2.0 com Ajax: JQuery/PHP (Aula 01)
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Javascript truquesmagicos
Javascript truquesmagicosJavascript truquesmagicos
Javascript truquesmagicos
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
Angular JS, você precisa conhecer
Angular JS, você precisa conhecerAngular JS, você precisa conhecer
Angular JS, você precisa conhecer
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápido
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 

Semelhante a ASPNET MVC RC1

Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net MvcGiovanni Bassi
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Frameworkelliando dias
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 OverviewAlexsandro Almeida
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realComunidade NetPonto
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisJorge Tressino Rua
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Facesbielgott
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCguest489a65e
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Alexandre Tarifa
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 

Semelhante a ASPNET MVC RC1 (20)

Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Introdução ao Asp.Net Mvc
Introdução ao Asp.Net MvcIntrodução ao Asp.Net Mvc
Introdução ao Asp.Net Mvc
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
Apresentação M V C
Apresentação M V CApresentação M V C
Apresentação M V C
 
Asp.Net Mvc
Asp.Net MvcAsp.Net Mvc
Asp.Net Mvc
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview365on Lab Asp.Net MVC Fundamentos 01 Overview
365on Lab Asp.Net MVC Fundamentos 01 Overview
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida real
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
 
Jheat
JheatJheat
Jheat
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 

ASPNET MVC RC1

  • 1.
  • 2. WUX201 - ASP.NET MVC ASP.NET MVC RC1 Bruno Tavares Software Engineer @Sapo.pt
  • 3. Objectivos • Uma sessão para developers • Compreender o padrão MVC • Compreender os principais conceitos ASP.NET MVC • Emersão na ASP.NET MVC Framework • Apresentar cenários onde a Framework seja uma mais- valia
  • 4. Por vezes… desenvolver/manter aplicações faz-me sentir que estou a jogar o “Operação” com a minha filha:
  • 5. MVC Pattern • MVC = Model/View/Controller • É uma design pattern para presentation layers Model • Isola a lógica de negócio do user interface • Clara separação de âmbito entre componentes View Controller • É mais simples manter as aplicações
  • 6. MVC Pattern Model Entidades de negócio O que é o Model? Workflow • Responsável pelo acesso a dados, persistência de estado, processamento Processamento de dados de dados, pela lógica de negócio, etc. • É agnóstico à apresentação/formatação Acesso dos dados • Responde a pedidos do Controller e notifica as Views de alteração de estado que dependam de um Model Database Webservice
  • 7. MVC Pattern O que é uma View? View Model • Responsável pelo look and feel, apresentação, formatação, ordenação, etc. dos dados Display(HTML, Renderiza JSON, XML, etc) • Um Model pode ter diversas Views Formatação Lógica deUI
  • 8. MVC Pattern Evento O que é um Controller? Controller • Responsável por tratar de eventos, View1 Select manipula os Model e selecciona as View2 Select Select View3 Views Selecciona Views • O seu objectivo fundamental é receber um evento e verificar o que vai fazer com ele Trata de eventos Manipula Model Model Model
  • 9. O que é o ASP.NET MVC RC1? • É a primeira Release Candidate (RC1) • É um novo tipo de projecto web para o ASP.NET • Implementa a design pattern MVC • Entega RESTfull-like web aplicações • Extensível e Pluggable – substituam ou adicionem qualquer componente à Framework • Desenvolvido a pensar no Test Driven Development (TDD) • Total controlo sobre o <html/>
  • 10. E o ASP.NET? E o que vai acontecer ao Microsoft ASP .NET?
  • 11. E o ASP.NET? • ASP.NET MVC é só mais uma OPÇÃO desenvolvida sobre ASP.NET! – System.Web; – System.Web.MVC;
  • 12. Escolher entre ASP.NET MVC e ASP.NET Web Forms ASP.NET Web forms: • Os Web Forms são uma tecnologia bem compreendida e enraizada • Uma curva de aprendizagem relativamente rápida • Maior abstracção sobre o HTML • Existem inúmeras aplicações sobre Web Forms que funcionam bem: – Intranets – Aplicações web do mundo corporativo onde o foco está nas funcionalidade vs restrições como time-to-market – Aplicações web onde exista muita dependência entre componentes – existe um mercado forte com componentes sofisticados e a baixo custo – Backoffices
  • 13. Escolher entre ASP.NET MVC e ASP.NET Web Forms ASP.NET MVC: • Para aqueles que gostam “mexer” no HTML • Baixa ou inexistente abstracção sobre HTML • Múltiplas Views sobre o mesmo Model • Para website sobre os quais seja necessário total controlo sobre o seu output • Test-Drivem Development (TDD) • Exemplos: – Blogs engines – E-commerce store-front – Canais temáticos
  • 14. Escolher entre ASP.NET MVC e ASP.NET Web Forms Mais controlo sobre detalhes MVC WebForms ASP.NET • Do it yourself • Ecossistema de • Services • Separação de âmbito Controlos • Caching • Test Driven Development • Gestão de estado • Routing • Extensibilidade • Simples de começar - • Localization • Convenção sobre a drag and drop configuração Ready-to- Ready-to-use building blocks
  • 15. Como funciona o ASP.NET MVC? Request Response HTTP View Route Controller View Routing Engine
  • 16. demo - Criação de um Projecto - Routing
  • 17. Como é que os Controllers e views funcionam? Controller Controller Controller Action Controller Filters Builder Factory Invoker View Action Response View Response Result Engine View Locator
  • 18. demos - Controllers e Views - ActionFilters e ResultActions - Desenvolver um ViewEngine
  • 19. NHaml #foo - foreach (var product in ViewData) - if (product.Category.CategoryName != null) %h2=product.Category.CategoryName - break %ul.productlist - foreach (var product in ViewData) %li = Html.Image(quot;/Content/Images/quot; + product.ProductID + quot;.jpgquot;, product.ProductName) .productdetail =Html.ActionLink(product.ProductName, quot;Detailquot;, new { ID=product.ProductID }) %br Price: =String.Format(quot;{0:C2}quot;, product.UnitPrice) “.productdetail” %span.editlink ( =Html.ActionLink(quot;Editquot;, quot;Editquot;, new { ID=product.ProductID }) ) becomes <div id=”productdetail”>
  • 20. Spark <ul class=quot;productlistquot;> <var styles='new[] {quot;oddquot;, quot;evenquot;}'/> <li each=quot;var product in ViewData.Modelquot; class=quot;${styles[productIndex%2]}quot;> <ProductImage style='quot;float:left;quot;'/> <p> <a href=quot;/Products/Detail/${product.ProductID}quot;>${product.ProductName}</a> <br /> Price: ${String.Format(quot;{0:C2}quot;, product.UnitPrice)} <span class=quot;editlinkquot;> (${Html.ActionLink[[ProductsController]](c=>c.Edit(product.ProductID), quot;Edi tquot;)}) </span> </p> <div style=quot;clear:both;quot;></div> </li> </ul> <li each=quot;var product in ViewData.Modelquot; class=quot;${styles[productIndex%2]}quot;>
  • 21. Próximos desenvolvimentos MVC? • Mais próximo do mundo Corporate – Mais controlo sobre estado – Acções assíncronas nos Controllers – Maior portfólio de “componentes” drag-and-drop • Lambda-based helpers
  • 22. Conclusões • Total controlo sobre o HTML • Extensível e Pluggable • Preconiza a clara separação de âmbito entre componentes • Testabilidade - suporte a Test-Driven Development • ASP.NET MVC é uma opção sobre ASP.NET webforms
  • 23. Links • http://www.asp.net/MVC • http://www.codeplex.com/aspnet • http://weblogs.asp.net/scottgu/ (ScottGus’s) • http://blog.wekeroad.com/ (Rob Conery) • http://www.hanselman.com/ (Scott Hanselman's)
  • 24.
  • 25. Q&A
  • 26. Software em versão completa para avaliação Suporte técnico 24x7 para incidentes Acesso antecipado às versões beta Microsoft Office Software Assurance formação gratuita ….e muito mais. w w w. m i c r o s o f t . c o m / p o r t u g a l / m s d n / s u b s c r i c o e s
  • 27. w w w. m i c r o s o f t . c o m / l e a r n i n g / m c p / o f f e r s / s e c o n d s h o t
  • 28. MSDN Flash w w w. m i c r o s o f t . c o m / p o r t u g a l / m s d n / m s d n f l a s h
  • 29. Participe nos próximos ciclos Traga Amigos a assistir e … …ganhe uma Xbox, trolleys e livros w w w. m i c r o s o f t . c o m / p o r t u g a l / m s d n / w e b c a s t s 4 s h a r e
  • 31. Questionário A sua opinião é importante! Complete o questionário de avaliação e devolva- devolva-o no balcão da recepção.