encontro de arquitetos belo horizonte -...

69
Encontro de Arquitetos Belo Horizonte Data: 10 de Novembro de 2009

Upload: lemien

Post on 30-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Encontro de ArquitetosBelo Horizonte

Data: 10 de Novembro de 2009

Page 2: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Agenda

Sessão 1: Arquitetura Web na plataforma Microsoft –Conceitos e Tendências

Waldemir Cambiucci - Arquiteto de SoluçõesHora: 14:30 h – 16:00 hBlog: http://blogs.msdn.com/wcamb

Coffee BreakHora: 16:00 h – 16:30 h

Sessão 2: Arquitetura Web na plataforma Microsoft –Tecnologias e Recomendações

Luciano Condé – Arquiteto de SoluçõesHora: 16:30 h – 18:00 h Blog: http://blogs.msdn.com/conde/

Page 3: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Sessão 1: Arquitetura Web na plataforma Microsoft – Conceitos e Tendências

Waldemir CambiucciArquiteto de SoluçõesMicrosoft

twitter.com/wcambblogs.msdn.com/wcamb

Page 4: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Objetivo da Sessão

Posicionar os recursos do mundo Web dentroda visão Software + Serviços.

Criar um vocabulário comum em torno das principais tecnologias para aplicações Web naplataforma Microsoft.

Page 5: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Visão Web segundo umaarquitetura Software + Serviços

Page 6: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Web 1.0

Server-sidecomputation

Client-siderendering

Static HTML

Page 7: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Web 1.0

7

Server-sidecomputation

Client-siderendering

Static HTMLDynamic HTML

Client-sidecomputation

→ Web 2.0 → RIA…

Page 8: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Visão Software + Serviços

PC

WEB

PHONE

Corporativo Nuvem

Page 9: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Forças do Software + Serviços

Web 2.0 e Redes Sociais

Aplicações RIA

Soluções LOB SaaS

Orientação a Serviços

Cloud Computing

Page 10: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Arquitetura Software + Serviçosa internet além da Web

Principais componentes:Software Cliente

Software Aplicativo

Serviços de Infraestrutura

Fundamentos da Arquitetura

Page 11: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Fundamentos da Arquitetura

Físico, dedicadoServiço único em hardware dedicado

Físico, compartilhadoVários serviços em hardware dedicado

Físico, HPCHardware físico suportando cenário HPC

Virtual, únicoInstância única de imagem virtual

Virtual, compartilhadoInstância múltipla de imagem virtual

Page 12: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Serviços de Infraestrutura

Identidade e acessoBaseada em diretórios, roles, declarações (CBA)

Sistema de mensagensBarramento de serviços, Ponto a Ponto (P2P)

ArmazenamentoTradicional, Relacional, Não-estruturado

WorkflowBaseado em eventos, Alto Desempenho

Page 13: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Software Aplicativo

Colaboração Pesquisa, Social, Conteúdo

Monetização Transação, Licenciamento, Publicidade, Assinatura

Composição Composição de serviços, LOB, regras de negócio

Business Intelligence Painel(Dashboards), Relatórios, Mining

AplicativoLógica de negócio, entidades, workflows,

processos

Page 14: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Software Cliente

Cliente Web Web Browser, Conteúdo Rico

Cliente MóvelBaseado em Web, Conteúdo Rico, Office,

SMS/IM, Voz

Cliente PCOffice, SmartClient, Desktop, Gadgets,

Mensagens instantâneas

Cliente Embarcado (Embedded)Dispositivos dedicados, consoles

Page 15: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Arquitetura Software + Serviços

Software Aplicativo

Software Cliente

Cliente PC

Browser

Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Page 16: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Arquitetura Software + ServiçosUm site Web dinâmico on-premise (infraestrutura local)

Software Aplicativo

Software Cliente

Cliente PC

Browser

Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Page 17: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Arquitetura Software + ServiçosUm site Web dinâmico na nuvem

Software Aplicativo

Software Cliente

Cliente PC

Browser

Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Page 18: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Arquitetura Software + ServiçosUma solução SaaS baseada na nuvem

Software Aplicativo

Software Cliente

Cliente PC

Browser

Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Page 19: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Visão Software + Serviços

A Internet além da Web:Colaboração e Redes Sociais (Web 2.0)

Diferentes dispositivos

Orientação a serviços

Software como serviços

Diferentes protocolos e formatos de dados

Combinação de infraestruturas (poder da escolha)On-premise, hosted, cloud computing

Page 20: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Combinação de arquiteturas

App Arch Guide 2.0

Tipos de Aplicações Estilos de Arquitetura

Componentes de Arquitetura

patterns & practices: App Arch Guide 2.0

http://www.codeplex.com/AppArch

Page 21: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Visão Web segundo as tecnologias disponíveis

ASP.NET, Silverlight, ASP.NET

MVC, ASP.NET AJAX, RIA, etc…

Page 22: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Arquitetura Software + ServiçosComponentes Web

Software Aplicativo

Software Cliente

Cliente PC

Browser

Acesso Programático

RSS REST Web Services VoiceXML

Apresentação Web

Static Dynamic RIA Streaming

Aplicação

Business Logic (Worker Role)Presentation (Web Role)

SMTP SMSSOAP

Office Client Gadgets IM

Cliente Mobile

Speech SMS/IM Browser Office Client

Embedded

Devices Consoles

Fundamentos

Serviços de Infraestrutura

Identity & AccessMessagingStorage Workflow

Async Queue/Bus Peer to PeerBlob Event Based Worker BasedRelationalFile

Computação

Physical, Dedicated Physical, Shared Virtual, Single Virtual, Scalable

Authentication Authorization

On Premises Hoster Cloud

Table

Page 23: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Tecnologias Web na plataforma Microsoft

Software Cliente (Browser, PC, Mobile, Dispositivos, Serviços/Bus)

ASP.NETWebForms

Silverlight WPFASP.NET

MVCWindows

LiveWeb Roles

ASP.NET AJAX

Dynamic Data

Interface de Serviços

Windows Communication

Foundation (WCF)

ADO.NET Data Services

.NET RIA Services

Serviços de Plataforma

.NET Framework

ASP.NET Services

SharePointSearch Server

Live Services

.NET Services

Capacidades de Infraestrutura

Windows Server, IIS, WAS, SQL ServerWindows Azure, Azure Storage, SQL Azure Database,

Live Services, .NET Services

Page 24: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Aplicações Web com ASP.NET e HTML

ASP.NET Web Forms

ASP.NET AJAX

ASP.NET MVC, etc.

Page 25: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Aplicações ASP.NET

ASP.NET suporta vários tipos de aplicações WEB

ASP.NET

WebForms

ASP.NET

AJAX

ASP.NET

MVC

ASP.NET

Dynamic Data

Page 26: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET WebForms

São basicamente soluções 2-Tier, envolvendo diversas interações com o servidor.

Web ApplicationBrowser

DB

Serviços

Outras Aplicações

Camada de

Acesso a

Dados

Lógica da

Aplicação

Serviços

HTMLLógica de

Apresentação

Page 27: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET WebForms

Sessão do Usuário

PáginaWeb

Modelo de Dados do Usuário

PáginaWeb

PáginaWeb

PáginaFinal

Encerrar

Iniciar

BrowserServidor

Camada de

Acesso a

Dados

Lógica da

Aplicação

Serviços

Lógica de

Apresentação

Page 28: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET WebForms

As páginas são criadas no servidor e enviadas para o browser a cada POSTBACK.

Pontos Fortes: Grande compatibilidade com inúmeros browsers (HTML)

Facilidade de desenvolvimento e suporte RAD – RapidApplication Development (drag and drop)

Compatibilidade e integração com aplicações legadas

Pontos Fracos:Responsividade: o usuário precisa aguardar o postback de cada página para poder interagir;

Performance: toda a página precisa ser criada para cada interação no lado do servidor;

Page 29: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET AJAXAsynchronous JavaScript And XML

Modelo de programação para aplicações Web ricas, baseado em JavaScript executado no browser, com interações assíncronas com o servidor e tratamento de eventos no cliente.

Web ApplicationBrowser

DB

Serviços

Outras Aplicações

Camada de

Acesso a

Dados

Lógica da

Aplicação

Serviços

HTML

Lógica de

ApresentaçãoLógica de

Apresentação

Renderização com o poderde computação no cliente

Page 30: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET AJAX

Sessão do Usuário

AplicaçãoCliente

Modelo de Dados do Usuário

Página Final

Encerrar

Iniciar

BrowserServidor

Camada de

Acesso a

Dados

Lógica da

Aplicação

Serviços

Lógica de

ApresentaçãoParte do

Modelo de Dados do Usuário

Requisições

de dados

Lógica de

Apresentação

Page 31: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET AJAX

Page 32: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET AJAX Server-Side

Renderização feita no servidor!As páginas são criadas no servidor e enviadas (parcialmente) por requisições AJAX em HTML.

Requisição inicial: HTML

HTMLForm POST

Page 33: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET AJAX Client-Side

Renderização feita no cliente!Menor roundtrip entre o cliente e o servidor

Menor bandwidth

Maior responsividade

HTML + JSON

JSONJSON

Page 34: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET AJAX

Pontos Fortes:Aplicações com menor tempo de resposta

Interfaces mais ricas, próximas ao desktop

Deployment simplificado em relação ao ambiente desktop

Compatibilidade com inúmeros browsersIE, Mozilla FireFox, Safari (Mac OS), Opera, Konqueror

Maior interação com o servidorDados são carregados sob demanda, sem onerar o carregamento inicial da página

Utilização mais eficiente de bandaSomente dados necessários são trafegados

Page 35: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET AJAX

Pontos Fracos:Grande número de decisões sobre a arquitetura da aplicação

Componentes client-side ou server-side?

Qual a granularidade das interações entre cliente e servidor?

Quando passar dados e quando passar conteúdo?

Como dividir o modelo em camadas?

Quando usar XML e quando usar JSON?

Patterns para paginação, ordenação, filtro, etc.

Necessidade de maior nível de capacitaçãoJavaScript, DHTML, Usabilidade, Protocolos, Modelos de Objetos, Padrões W3C, ECMA, etc.

Page 36: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

jQueryCriado por John Resig (Open Source, 2006)

Suportado na plataforma MicrosoftIncluído no Visual Studio 2008 e 2010

19KB JQuery JavaScript library

Pontos Fortes:Total integração com ASP.NET AJAX e ASP.NET MVC.

Síntaxe Javascript facilitada (seletores mais simples)

Suporte IE6+, FF2.0+, Safari 3.0+, Opera 9+, Chrome 1.0+

Pontos Fracos:Depende de plugins para animações mais complexas

Complexidade para rotinas AJAX mais pesadas

Page 37: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET AJAX Control Toolkit

2⁰ lugar em download de projetos no CodePlex.

Oferece controles:

Server-Side e Extenders

Client-Side e Behaviors

Disponível como Client-Only Library: AjaxControlToolkit-ScriptFilesOnly.zip

Source - May 2009 Release

Ref.: http://ajax.asp.net/ajaxtoolkit/

Page 38: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET MVCModel View Controller Pattern

Controller

View

Model

Request 1

Response

Page 39: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

URL RoutingBrowser ModelController View

Get / Post

Invoke ActionGet Data

Lookup View

Render

Html

Lookup Controller

ASP.NET MVCModel View Controller

Page 40: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET MVCModel View Controller

Oferece uma clara separação entre navegação, lógica e renderização de tela.

Separation of Concerns

Motivações para o uso de MVC:Maior controle sobre o HTML gerado.

Maior controle sobre a manutenção de estado.

Maior suporte a testes e TDD – Test DrivenDevelopment.

Maior aderência ao uso de boas práticas de desenvolvimento.

Page 41: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET MVCModel View Controller

Pontos Fortes:Permite uma maior testabilidade e suporte ao TDD

Testes facilitados

Total controle sobre código HTML e JavaScript

Páginas menores (sem ViewState)

Recurso de Routing já disponível no .Net 3.5

Maior integração com frameworks JavascriptSuporte integrado ao jQuery (jQuery Intellisense)

Orientação para o uso de boas práticas

Page 42: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

ASP.NET MVCModel View Controller

Pontos Fracos:Não compatível com o modelo RAD – RapidApplication Development

Sem o suporte ao drag and drop de controles visuais

Mais difícil de integrar com o Web Designer

O desenvolvedor precisa conhecer HTML, JavaScript, CSS, HTTP, XML

Exige uma maior capacitação do time de desenvolvimento.

Page 43: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Aplicações Web com RIA

Silverlight 3.0

Silverlight Toolkit

.NET RIA Services

Page 44: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

O que é uma aplicação RIA?

Rich Internet ApplicationUm cruzamento entre uma aplicação baseada em brower (web) e uma aplicação desktop tradicional

Melhores aspectos do mundo Web (browser)• Deployment facilitado• Sem instalação no cliente• Versionamento instantâneo• Navegação via browser, etc.

Melhores aspectos do mundo Desktop (local)• Processamento local• Cenários desconetados• Interface rica, etc.Melhores aspectos

de comunicação

Page 45: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Aplicação Silverlight / RIA

RIA evita as interações do modelo Web, usando uma lógica de negócio no lado do cliente.

Web ApplicationBrowser Rich Internet Application

DB

Serviços

Outras Aplicações

Camada de

Acesso a

Dados

Lógica da

Aplicação

Serviços

HTMLLógica de

ApresentaçãoNetwork

Serviços

Page 46: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Visão do .NET RIA Services

Simplificar o desenvolvimento RIA

N-tier é difícil e não trivial/natural.

Fornecer a mesma produtividade do estiloASP.NET/RAD para o desenvolvimento RIA

Foco em cenários fim-a-fim e soluções.

Criar uma visão unificada da aplicação RIA

Lógica no cliente e no servidor, através de um middleware de operações.

Aproveitar os recursos do Silverlight para a construção de aplicações RIA

Page 47: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

.NET RIA Services

Middleware para operações de uma

aplicação RIA

.NET RIA Services Samples

Ref.: http://code.msdn.microsoft.com/RiaServices

Page 48: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

.NET RIA Services

Um pattern escalável para múltiplas interfaces e fontes de dados.

Lógica da

Aplicação

Databases

ADO.NET,

ORMs (LTS, EF, …)

CLR Lists/Objects

Repository

(nHibernate, …)

Services

REST/SOAP

(Azure, …)

XML,

JSON,

Binary

.NET Clients

Silverlight, WPF

Standards Clients

JavaScript

Server Rendering

HTML, SEO,

Printing, …

Services

WCF

Código de

Teste

Unitário

Page 49: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

.NET RIA Services

Arquivo gerado

automaticamente para o

proxy no lado do cliente

Solução no lado do

servidor, com o

DomainService e o

EDMX Model

Solução no lado do

cliente, com o proxy

para acesso às regras

de negócio exportadasDeployment facilitado

da aplicação RIA

Page 50: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

.NET RIA Services

DomainContext gerado

automaticamente pelo .NET

RIA Services

Page 51: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

.NET RIA Services

Pontos Fortes:Middleware completo para a construção de aplicações RIA com Silvelight 3.0.

Facilidade no tráfego de dados via DomainServices e Entidades (paginação, ordenação, filtros, etc).

Geração automática do proxy cliente para acesso àsoperações do lado do servidor.

Pattern extensível, atendendo diversos tipos de interfaces clientes e fontes de dados no servidor.

Pontos Fracos:Ainda em CTP

Primeira carga da aplicação deve ser avaliada (download)

Cuidados na customização do proxy geradoautomaticamente para o cliente.

Page 52: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Aplicações Web com o ambiente Windows Azure

Web Roles

Worker Roles

Queues, Blobs, Tables

Soluções SaaS e MapReducing

Page 53: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

O que é a nuvem?

Datacenters com alta disponibilidade, escalabilidade e armazenamento ilimitado, acessível via Web.

Page 54: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

LiveConsumidor &

SOHO

OnlineDe pequenas a

grandes empresas

Variedade de serviços online

Plataforma de Serviços AzureServiços e

Ferramentas

para

Desenvolvedores

Page 55: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

O que é o Windows Azure?

Controle da Malha de Servidores

Page 56: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

CONTROLE E GERENCIAMENTO AUTOMATIZADO

Fabric: A Coleção dos

Servidores8 VMs por servidor

Cada VM roda um Hypervisor

Windows Server 2008 customizado

Fabric Controller é

responsável pelo

gerenciamentoVocê diz o que fazer— ele trata

do como fazer

Faz o scale up, scale down,

update ou roll back da aplicação

para uma versão prévia de forma

automática

Services Management no Windows Azure

Page 57: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Aplicações sobre o Windows Azure

Web Role e Worker Role interagindo via Queues e Tables.Internet

StorageTables

LB

Blobs

Worker Service

Worker Service

Worker Service

Web Site(ASPX, ASMX, WCF)Web Site

(ASPX, ASMX, WCF)Web Site(ASPX, WCF)

Queue

Windows Azure Datacenter

Page 58: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Web Role / Windows Azure

Pontos Fortes: Cenário de soluções de alta escalabilidade, com provisionamento dinâmico.

Suporte Web Role para todos os recursos ASP.NETWeb Forms, MVC, Silverlight, jQuery, AJAX, SOAP, REST.

Pontos Fracos: Hosting apenas no ambiente da nuvem (Azure).

Atenção para a composição de custos na aplicação.

Integração com API’s de interoperabilidade, como o Simple Cloud (PHP API).

Page 59: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Web Role no Windows Azure

Projeto em Staging com diversas roles

Projeto emprodução com uma

única instânciaWeb Role

Clique aqui para publicar a aplicação em produção.

Page 60: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Um mapa de decisão entre tecnologias…

Proposta para pensar…

Page 61: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Mapa de decisão Web…

Os números são ilustrações apenasFaça suas decisões, de acordo com seus cenários

Page 62: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Mapa de decisão Web…

Produtividade no desenvolvimento

Manutenção

Customização

Desempenho

Curva de Aprendizagem

Paginação, Filtros, Extensões

Efeitos Visuais, Animação, etc.

Testabilidade

Facilidade de depuração

Modelo de segurança …

Suporte a cenários off-line

Modelo de cache integrado

Respeito a padrões Web

Controle sobre o HTML gerado

ASP.NET WebForms

ASP.NET AJAX Server-Side

ASP.NET AJAX Client-Side

ASP.NET MVC

ASP.NET Dynamic Data

Silverlight 3.0

PRISM 2.0

Page 63: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma
Page 64: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Conclusões

A visão Software + Serviços envolve a Internet além da Web…

Para a escolha da tecnologia certa devemosconsiderar questões como:

Reusabilidade, Confiabilidade, Extensibilidade

Manutenabilidade, Segurança, Testabilidade,

Diminuição da complexidade geral do sistema, etc.

Assuntos relacionados que não vimos hoje:Composite Application Guidance for WPF & Silverlight

Aplicações Web sobre SharePoint Server

Doloto (otimização sobre AJAX), WebSiteSpark, etc.

Page 66: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Referências (cont.)

Application Architecture Guide 2.0

http://www.codeplex.com/AppArchGuide

Web Services Security Guidance

http://www.codeplex.com/WCFSecurityGuide

Composite Application Guidance for WPF & Silverlight

http://www.codeplex.com/CompositeWPF

Performance Testing Guidance for Web Applications

http://www.codeplex.com/PerfTestingGuide

Silverlight Toolkit

http://www.codeplex.com/Silverlight

ASP.NET AJAX Control Toolkit

http://ajax.asp.net/ajaxtoolkit/

Page 67: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

Perguntas e Respostas.

Page 68: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma
Page 69: Encontro de Arquitetos Belo Horizonte - api.ning.comapi.ning.com/files/tavtj1dOhTAdpRmuPvniMDul0C7I5rLZwkBR4TRBeDDI2hZ... · principais tecnologias para aplicações Web na plataforma

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.