Arquitetura Web Desacoplada







Gregory Peres Serrão
@gregperes84


Gregory Peres Serrão

Arquiteto .NET





gregperes84@me.com





O começo da internet






Páginas estáticas com 
apenas textos e links.

Client-Side Scripting






Linguagens de programação rodando 
no lado cliente proporcionando maior interação 
com o usuário.

Dynamic HTML







HTML + Client-Side Scripting = DHTML

Linguagens de Client-Side






  • Javascript
  • VBScript 
  • Dart
  • Typescript

DHTML Demo







Play

Source

 

Como manter um site grande?






Dar manutenção em muitas páginas
é muito trabalhoso e demorado.
As páginas precisavam de mais dinamismo e prover acesso as informações armazenadas em bancos de dados.

Server-Side Scripting





Linguagens de programação rodando 

no lado do servidor 

usada para acessar banco de dados 

gerando páginas dinamicamente.

Linguagens de Server-Side





  • ASP
  • PHP
  • C (Via CGI)
  • Perl CGI
  • ColdFusion

Requisição HTTP





Exemplo Server-Side Scripting







Source








Problemas?

Evolução!


  • Padrões arquiteturais
  • Novos frameworks


it's evolution baby!

Padrões Arquiteturais





  • Client-Server
  • Baseada em Componentes
  • N-Camadas
  • SOA
  • MVC

Server-Side Frameworks

Single Page Applications







What a hell?





Aplicação web que encaixa em 

uma única página com objetivo 

de proporcionar uma experiência de usuário 

mais fluida, semelhante 

a um aplicativo desktop.








Client

 independentes 

Server

Requisição HTTP em uma SPA








Como começar?




Backend

Database e API REST

API REST






Recursos disponibilizados pelo servidor 
através do protocolo HTTP. 

Exemplo de API Rest





  • GET /users
  • POST /users
  • PUT /users/1
  • DELETE /users/1




Frontend

Chunking, Data Binding, Routing, Ajax







Chunking

Carregamento parcial




Data Binding

Ligação dos dados




Routing

Histórico de navegação




Ajax

Requisições assíncronas

Frameworks MV*










Muita teoria e pouca prática!

Vamos ver um pouco de código ;)





Backend
Mongodb + NodeJS + Restify + Mongoose

Frontend
AngularJS + Twitter Bootstrap

Dicas!




Qual framework escolher?
http://todomvc.com

Teste o seu código!
http://jasmine.github.io





Dúvidas?




Obrigado!


http://slides.com/gregperes/arquitetura-web-desacoplada





gregperes84@me.com
Made with Slides.com