O documento apresenta uma sessão sobre ASP.NET MVC, discutindo os objetivos do framework MVC, os principais conceitos como Model, View e Controller, e como o ASP.NET MVC RC1 implementa este padrão. O documento também compara ASP.NET MVC com ASP.NET Web Forms e fornece demonstrações práticas do framework.
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
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
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
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
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