Desenvolvimento RIA com Silverlight 4

38
Desenvolvimento RIA com Silverlight 4 do básico ao acabamento...

Transcript of Desenvolvimento RIA com Silverlight 4

Page 1: Desenvolvimento RIA com Silverlight 4

Desenvolvimento RIA com Silverlight 4

do básico ao acabamento...

Page 2: Desenvolvimento RIA com Silverlight 4

Rodrigo Kono• MVP da Microsoft• MCP – MCTS – MCPD – MCT• Fundador do grupo de usuários DevGoiás .NET• 7 anos de comunidade .NET • Mais de 12.000 pessoas nesse tempo• Pensou.NET Treinamentos e Consultoria• Torcedor do Goiás (Uhuu série B)• Bonitão• www.rodrigokono.net

Page 3: Desenvolvimento RIA com Silverlight 4

Developer Evangelist, Pai e Gamer.Foco em Ferramentas e Soluções Microsoft

Page 4: Desenvolvimento RIA com Silverlight 4

Agenda

• First steps• RIA• Sketflow: Tudo começa com a Prototipação• Padrão MVVM• WCF RIA Services

Page 5: Desenvolvimento RIA com Silverlight 4

Microsoft Silverlight é um runtime cross-browser, cross-platform que permite desenvolver aplicações ricas para internet e potencializar a experiência de media na Web, Desktop e Devices.

Media e RIA

Page 6: Desenvolvimento RIA com Silverlight 4

Microsoft .NET Application PlatformTecnologia e Ferramenta

DesignDevelo

p

Ferramentas & Modelo de Aplicações

Deploy

Browser

ClientUser Experience

Page 7: Desenvolvimento RIA com Silverlight 4

ALM

Page 8: Desenvolvimento RIA com Silverlight 4

RIA

Page 9: Desenvolvimento RIA com Silverlight 4

RIA – Rich Internet Applications

Page 10: Desenvolvimento RIA com Silverlight 4

Back Button and RefreshVisual Vocabulary

State management

Browser Sandbox Business Logic in UI

Component Level Logic

Animation

Desktop Developers Web Developer

O que tem de diferente com RIA?

Limited Runtime

Service Orientation

Non-text based layoutHype

Page 11: Desenvolvimento RIA com Silverlight 4

DEMOApp RIA

Page 12: Desenvolvimento RIA com Silverlight 4

Blend + SketchFlow

Protótipos não linearesCompatível com as principais ferramentas de criaçãoPresença de comportamentosPadrão de wireframesComportamentos extensíveisSolução Silverlight e WPFReutilização de sketchsSketchFlow playerFeedbacksDocumentação

+SketchFlow

Page 13: Desenvolvimento RIA com Silverlight 4

DEMOSketchflow

Page 14: Desenvolvimento RIA com Silverlight 4

Entendendo o Layout

• Essencial para a criação da sua UI• Renderização/organização do conteúdo• Panels são usados para receber conteúdo• Margin e Padding• Posicionamento Fixo (Canvas) é

raramente usado

Page 15: Desenvolvimento RIA com Silverlight 4

ControlesControles são Faceless. Crie o seu!

Subset do WPF, porém muitos controles do Silverlight não existem no WPF

Silverlight Toolkit possui vários controles

Existem ótimos controles de terceiros

Page 16: Desenvolvimento RIA com Silverlight 4

DEMOExpression BlendLayout , Bind e Controles

Page 17: Desenvolvimento RIA com Silverlight 4

Dica #1: Escolha um padrão e respeite-o

• Silverlight Line-of-Business (LOB) pode crescer fora do controle e sem planejamento adequado:– Normalmente muitas telas de código– Código de validação– Código para chamar serviços da aplicação– Código de Serviço– Código do Modelo– Código de acesso aos dados

Page 18: Desenvolvimento RIA com Silverlight 4

O Padrão MVVM

• O Model-View-ViewModel (MVVM) funciona muito bem com apps para Silverlight LOB:– Fornece consistência em código– Permite uma melhor reuso de código– Permite a separação de preocupações (SoC)– Suporta Testes Unitários– Usado como um tipo de controller para view– Silverlight 4 fornece suporte ICommand

Code-behind não é ruim, mas minimiza o código que você adicionar

Page 19: Desenvolvimento RIA com Silverlight 4

• O padrão MVVM tem 3 elementos chaves:• Model: domínio de negócio (regras de negócio,

acesso a dados, modelo de classes)• View: Interface de usuário (telas Silverlight)• ViewModel: Elemento do meio. Fica entre a View e

o Model – similar a um controller

MVVM Pattern Players

View ViewModel Model

Presentation Layer Business Domain

Page 20: Desenvolvimento RIA com Silverlight 4

Cenário MVVM: O que está envolvido?

Silverlight client

View(Pessoa Master/Details)

XAML Code

Precisa ser desenhado

model

Model(PessoaModel)

Pessoa

CamadaDados/Serviço

Camada de

Negócios

Precisa ser testável e sustentável

Page 21: Desenvolvimento RIA com Silverlight 4

MVVM

View (Pessoa Master/Details)

XAMLCode

puro “Display”

Model(PessoaModel/Pessoa)

puro “Dados”

ViewModel

ViewModel é o DataContext da View.Bind to data, commandsDesigners

e Ferramentas de Design comoXAML para maximizar a utilização.

Aberto para aplicar técnicas

como injeção de

dependência, testes, etc

Difícil de testar este Código sem retirar/Minimizar ele da UI

Vincula a View com a ViewModel(ViewModelLocator)

INotifyPropertyChangedEnvia para a View quando há mudanças de dados

Page 22: Desenvolvimento RIA com Silverlight 4

DEMOVinculando View com a ViewModel

Page 23: Desenvolvimento RIA com Silverlight 4

MVVM

View (Pessoa Master/Details)

XAMLCode

puro “Display”

Model(PessoaModel/Pessoa)

puro “Dados”

ViewModel

ViewModel é o DataContext da View.Bind to data, commandsDesigners

e Ferramentas de Design comoXAML para maximizar a utilização.

Aberto para aplicar técnicas

como injeção de

dependência, testes, etc

Difícil de testar este Código sem retirar/Minimizar ele da UI

Vincula a View com a ViewModel(ViewModelLocator)

INotifyPropertyChangedEnvia para a View quando há mudanças de dados

+ Services

Services

Fornece serviços para realizar operações como RetornaPessoa

Page 24: Desenvolvimento RIA com Silverlight 4

Camadas e camadas…XAML

Code behind

ViewModel

Model

Data Access

Network client

Database

Network server

Model Server Validation rules

Client Validation rules

Page 25: Desenvolvimento RIA com Silverlight 4

Melhorando isto…XAML

Code behind

ViewModel

Model

Data Access

Network client

Database

Network server

ModelModel Server Validation rules

Client Validation rules

Data Access

WCF RIA Services

Page 26: Desenvolvimento RIA com Silverlight 4

A próxima grande onda7

Silverlight nativo no Windows Phone 7 Criação rápida de aplicações visuais

fantásticasMetro-themed UI controlsHTML/JavaScript500.000 developers Windows e WebDesenvolvimento para o MarketPlace

Plataforma Consistente

Windows Phone

Hardware

Elementos de Hardware

Foco na Qualidade

Page 27: Desenvolvimento RIA com Silverlight 4

DEMOSilverlight no Windows Phone 7

Page 28: Desenvolvimento RIA com Silverlight 4

HTML 5 x Silverlight x Flash

Amigo ou inimigo?

Page 29: Desenvolvimento RIA com Silverlight 4

• Spark’s

• DreamSpark• WebSiteSpark• BizSpark

Page 30: Desenvolvimento RIA com Silverlight 4

• WebsiteSpark

• Software• Visibilidade• Suporte

Page 31: Desenvolvimento RIA com Silverlight 4

• WebsiteSpark

Page 32: Desenvolvimento RIA com Silverlight 4

• WebsiteSpark

Page 33: Desenvolvimento RIA com Silverlight 4

• WebsiteSpark

Page 34: Desenvolvimento RIA com Silverlight 4

www.microsoft.com/web/websitespark/

Page 35: Desenvolvimento RIA com Silverlight 4

XAMLCastPodcast sobre Silverlight, WPF e XAML

www.xamlcast.net

Page 36: Desenvolvimento RIA com Silverlight 4

Links

• Cases: www.microsoft.com/silverlight/case-studies/business

• Site oficial do produto– www.microsoft.com/silverlight

• Free Windows Phone Developer Tools– http://developer.windowsphone.com

• Blog: Rodrigo Kono - www.rodrigokono.net• Blog do Kelps Sousa - blog.kelps.net

Page 37: Desenvolvimento RIA com Silverlight 4

P&R Twitter: @fernandomartin@rodrigokono

Page 38: Desenvolvimento RIA com Silverlight 4

Apoio

Agradecimentos

Patrocinadores

Realização