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