uma introdução sobre arquitetura ria rich internet...

31
1 Uma introdução sobre arquitetura RIA Rich Internet Applications Waldemir Cambiucci Arquiteto de Soluções Microsoft Brasil twitter.com/wcamb blogs.msdn.com/wcamb

Upload: lydung

Post on 03-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

1

Uma introdução sobre arquitetura RIA – Rich Internet Applications

Waldemir CambiucciArquiteto de SoluçõesMicrosoft Brasil

twitter.com/wcambblogs.msdn.com/wcamb

2

Agenda

Arquitetura RIA

Visão do .NET RIA Services

Camadas do .NET RIA Services

Conclusões

Recursos

Publicação: Outubro/2009

Architecture in a Box

3

Objetivos da Sessão

Apresentar uma introdução sobre arquiteturaRIA – Rich Internet Application.

Apresentar alguns recursos do novo middleware .NET RIA Services, paraaplicações RIA.

4

Estilos e Tipos de Arquitetura

App Arch Guide 2.0

Tipos de Aplicações Estilos de Arquitetura

Componentes de Arquitetura

RIA

patterns & practices: App Arch Guide 2.0http://www.codeplex.com/AppArch

5

Arquitetura RIA

Segundo o Application Architecture Guide 2.0 temos a seguintearquitetura de referência RIA:

6

O que é uma arquitetura 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

7

Exemplos de interfaces RIA

8

Principais características RIA

Roda sobre um browser web, não exigindo instalação da aplicação.

Roda localmente, num ambiente isolado de segurança chamado sandbox.

Atualização instantânea da aplicação.Beta constante do Web 2.0

Os usuários podem usar a aplicação RIA a partir de qualquer computador com uma conexão internet.

Disponível para múltiplas plataformas.

9

Principais características RIA

Interface com tempo de resposta mais rápido, sem necessidade de “refreshes”.

Comportamento comum a UI’s, como drag & drop e tratamento online e offline.

Suporte para cenários com usuários parcialmente conectados.

Solução interessante para cálculo e operações no cliente, por exemplo:

Simuladores, calculadoras, motores de análise, etc.

10

Aplicação Web tradicional

Aplicações Web são basicamente 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

11

Aplicação LOB/RIA n-tier

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

12

Um middleware para construçãode aplicações RIA.

13

Visão do .NET RIA Services

Simplificar o desenvolvimento RIA

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

Fornecer a mesma produtividade do estilo ASP.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

DB DB

RIA Application com Silverlight

My Code Behind

My XAML

Web Browser Web Server

Isolated Storage

SQLStorage

Silverlight 3.0 Plug-In.NET 3.5 CLR

My ASP.NET ou HTMLPage

My XAML e .NET Assembly(s)

My REST, RSS ou SOAP Service

(1) HTML/JS

(2) XAML/.NET Assembly

(3) POX, RSS, JSON, SOAP

15

Demo .NET RIA Services

Escolhendo o projeto

Silverlight Navigation

Application

16

Demo .NET RIA Services

Escolhendo o hosting da

aplicação Silverlight

Application no projeto

ASP.NET Web App.Ativando suporte para

.NET RIA Services

17

Demo .NET RIA Services

Projeto para o lado

cliente da aplicação RIA

Projeto para o lado

servidor

da aplicação RIA

18

Demo .NET RIA Services

Interface padrão da aplicação

Silverlight Navigation

Application, com Silverlight 3.0

19

Camadas do .NET RIA Services

Uma aplicação LOB utiliza dados que cruzam as camadas da aplicação.

Podemos criar operações básicas de Create, Read, Update e Delete (CRUD) ou acessar os dados via operações específicas de domínio (GetReport, SetActivities, GetCustomer, etc.).

No ambiente Web, essas operações são feitas através de um middleware confiável.

Um middleware entre cliente e servidor envolve proxies e operações conhecidas.

20

Camadas do .NET RIA Services

Middleware para operações de uma

aplicação RIA

21

Demo .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 exportadas

22

Demo .NET RIA Services

DomainContext gerado

automaticamente pelo .NET

RIA Services

23

Demo .NET RIA ServicesCriando o contexto para

acessar o middle tier do .NET

RIA Services

Acessando os dados via

DataGrid, para a entidade

Contacts

Um Pattern escalável

Suporte a múltiplas camadas de apresentação e tecnologias de acesso a 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

25

26

Conclusões

.NET RIA Services oferece um framework interessante para a construção de aplicações RIA, resolvendo alguns desafios comuns.

Operações CRUD

Unificação da lógica cliente/servidor

Geração de um middleware para transferência de dados

CTP do .NET RIA Services já publicados:Preview de Maio (trabalhando com Silverlight 3.0 Beta) e

Preview de Julho (trabalhando com Silverlight 3.0 Final)

Perguntas importantes...

O projeto exige alta interatividade com o usuário e execução a partir do browser?

Aplicações RIA oferecem grande interatividade via internet.

É uma aplicação inteligente ou apenas um display de imagens e animações?

Quanto mais interação e comunicação com a retaguarda, maior a vantagem no uso de RIA Services com Silverlight

O ambiente de retaguarda é .NET?

Fácil integração com serviços via WCF/REST e modelos EF

Se a aplicação for desktop no enterprise, usar WPF

Avaliar os recursos adicionais de uma interface rica (Smartclient) no desktop, usando WPF.

28

Recursos para o .NET RIA Services

Silverlight 3 Final Releasehttp://www.microsoft.com/silverlight/get-started/install/default.aspx

Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1 http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&displaylang=en

Microsoft .NET RIA Services July 2009 Previewhttp://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&displaylang=en#filelist

.NET RIA Services Walkthrough Sample http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=2387

Microsoft Silverlight 3 Offline Documentation http://www.microsoft.com/downloads/details.aspx?familyid=0A9773A7-C854-41FA-B73D-535ABFB73BAF&displaylang=en

29

Recursos (cont.)RiaServicesOverviewPreview.pdf

http://www.microsoft.com/downloads/info.aspx?na=40&p=1&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=76bb3a07-3846-4564-b0c3-27972bcaabce&u=http%3a%2f%2fgo.microsoft.com%2ffwlink%2f%3fLinkID%3d144687

Posts sobre .NET RIA Services no Blog:http://blogs.msdn.com/wcamb/archive/tags/.NET+RIA+Services/default.aspx

30

Recursos (cont.)

ArqBR.Groupshttp://arqbr.groups.live.com/

ArqCasts no Channel9/Brasilhttp://channel9.msdn.com/brasil/

ebook Arquitetura de Soluçõeshttp://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-sobre-arquitetura-de-solu-es.aspx

Centro de Arquitetura MSDNhttp://msdn.microsoft.com/pt-br/architecture/default.aspx

31

© 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.