Desenvolvimento RIA com
Silverlight 4
do básico ao acabamento...
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
Developer Evangelist, Pai e Gamer.
Foco em Ferramentas e Soluções Microsoft
Agenda
• First steps
• RIA
• Sketflow: Tudo começa com a Prototipação
• Padrão MVVM
• WCF RIA Services
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
Microsoft .NET Application Platform
Tecnologia e Ferramenta
DesignDevelop
Ferramentas &
Modelo de Aplicações
Deploy
Browser ClientUser Experience
ALM
RIA
RIA – Rich Internet Applications
Back Button and Refresh
Visual 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 layout
Hype
App RIA
Blend + SketchFlow
Protótipos não lineares
Compatível com as principais ferramentas de criação
Presença de comportamentos
Padrão de wireframes
Comportamentos extensíveis
Solução Silverlight e WPF
Reutilização de sketchs
SketchFlow player
Feedbacks
Documentação
+SketchFlow
Sketchflow
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
Controles
Controles 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
Expression Blend
Layout , Bind e Controles
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
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
• 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
Cenário MVVM: O que está envolvido?
Silverlight client
View
(Pessoa Master/Details)
XAML Code
Precisa ser desenhado
model
Model
(PessoaModel)
Pessoa
Camada
Dados/
Serviço
Camada
de
Negócios
Precisa ser testável e
sustentável
MVVM
View (Pessoa
Master/Details)
XAML
Code
puro
“Display”
Model
(PessoaModel/Pessoa)
puro
“Dados
ViewModel
ViewModel é o
DataContext da View.
Bind to data, commandsDesigners e
Ferramenta
s de Design
como
XAML 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
(ViewModelLoc
ator)
INotifyPropertyCh
anged
Envia para a
View quando há
mudanças de
dados
Vinculando View com a ViewModel
MVVM
View (Pessoa
Master/Details)
XAML
Code
puro
“Display”
Model
(PessoaModel/Pessoa)
puro
“Dados
ViewModel
ViewModel é o
DataContext da View.
Bind to data, commands
Designers e
Ferramenta
s de Design
como
XAML 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
(ViewModelLoc
ator)
INotifyPropertyCh
anged
Envia para a
View quando há
mudanças de
dados
+
Services
Services
Fornece serviços
para realizar
operações como
RetornaPessoa
Camadas e camadas…
XAML
Code behind
ViewModel
Model
Data Access
Network client
Database
Network server
Model Server Validation rules
Client Validation rules
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
A próxima grande onda
7
Plataforma
Consistente
Windows Phone
Hardware
Elementos de
Hardware
Foco na
Qualidade
Silverlight no Windows Phone 7
HTML 5 x Silverlight x Flash
Amigo ou inimigo?
• Spark’s
• DreamSpark
• WebSiteSpark
• BizSpark
• WebsiteSpark
• Software
• Visibilidade
• Suporte
• WebsiteSpark
• WebsiteSpark
• WebsiteSpark
www.microsoft.com/web/websitespark/
XAMLCast
Podcast sobre Silverlight, WPF e XAML
www.xamlcast.net
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
Twitter:
@fernandomartin
@rodrigokono
Apoio
Agradecimentos
Patrocinadores
Realização

Desenvolvimento RIA com Silverlight 4

  • 1.
    Desenvolvimento RIA com Silverlight4 do básico ao acabamento...
  • 2.
    Rodrigo Kono • MVPda 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
  • 3.
    Developer Evangelist, Paie Gamer. Foco em Ferramentas e Soluções Microsoft
  • 4.
    Agenda • First steps •RIA • Sketflow: Tudo começa com a Prototipação • Padrão MVVM • WCF RIA Services
  • 5.
    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
  • 6.
    Microsoft .NET ApplicationPlatform Tecnologia e Ferramenta DesignDevelop Ferramentas & Modelo de Aplicações Deploy Browser ClientUser Experience
  • 7.
  • 8.
  • 9.
    RIA – RichInternet Applications
  • 10.
    Back Button andRefresh Visual 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 layout Hype
  • 11.
  • 12.
    Blend + SketchFlow Protótiposnão lineares Compatível com as principais ferramentas de criação Presença de comportamentos Padrão de wireframes Comportamentos extensíveis Solução Silverlight e WPF Reutilização de sketchs SketchFlow player Feedbacks Documentação +SketchFlow
  • 13.
  • 14.
    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
  • 15.
    Controles Controles 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
  • 16.
    Expression Blend Layout ,Bind e Controles
  • 17.
    Dica #1: Escolhaum 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
  • 18.
    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
  • 19.
    • O padrãoMVVM 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
  • 20.
    Cenário MVVM: Oque está envolvido? Silverlight client View (Pessoa Master/Details) XAML Code Precisa ser desenhado model Model (PessoaModel) Pessoa Camada Dados/ Serviço Camada de Negócios Precisa ser testável e sustentável
  • 21.
    MVVM View (Pessoa Master/Details) XAML Code puro “Display” Model (PessoaModel/Pessoa) puro “Dados ViewModel ViewModel éo DataContext da View. Bind to data, commandsDesigners e Ferramenta s de Design como XAML 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 (ViewModelLoc ator) INotifyPropertyCh anged Envia para a View quando há mudanças de dados
  • 22.
  • 23.
    MVVM View (Pessoa Master/Details) XAML Code puro “Display” Model (PessoaModel/Pessoa) puro “Dados ViewModel ViewModel éo DataContext da View. Bind to data, commands Designers e Ferramenta s de Design como XAML 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 (ViewModelLoc ator) INotifyPropertyCh anged Envia para a View quando há mudanças de dados + Services Services Fornece serviços para realizar operações como RetornaPessoa
  • 24.
    Camadas e camadas… XAML Codebehind ViewModel Model Data Access Network client Database Network server Model Server Validation rules Client Validation rules
  • 25.
    Melhorando isto… XAML Code behind ViewModel Model DataAccess Network client Database Network server ModelModel Server Validation rules Client Validation rules Data Access WCF RIA Services
  • 26.
    A próxima grandeonda 7 Plataforma Consistente Windows Phone Hardware Elementos de Hardware Foco na Qualidade
  • 27.
  • 28.
    HTML 5 xSilverlight x Flash Amigo ou inimigo?
  • 29.
    • Spark’s • DreamSpark •WebSiteSpark • BizSpark
  • 30.
    • WebsiteSpark • Software •Visibilidade • Suporte
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
    XAMLCast Podcast sobre Silverlight,WPF e XAML www.xamlcast.net
  • 36.
    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
  • 37.
  • 38.

Notas do Editor

  • #19 Separation of Concerns (SoC): é o processo de agrupar códigos com características distintas, separando em blocos de códigos especialistas, responsáveis por interesses específicos. Separa Design/Apresentação da Logica de Negócios Data Binding via XAML Teste unitário Sinergia de trabalho entre Designer e Developer
  • #20 Model: Objeto de Domínio, Properties, Entidades com RIA Services View: A Tela ou a Página ou Controle. Apresentação amigável da informação. Interação com o usuário em bindings, events, behaviors. Themes e Styles ViewModel: Cola, conecta a view na model. Ligação com a View através de properties, commands, methods. Contém o Model. Pode comunicar com o Serviço e ler/salvar o modelo.