Boas Práticas em Aplicações Silverlight 2.0(baseado na sessão DevDays WUX301 por Pedro Fortes)28MAI09 - ViaTecla SoftwareSérgio Agostinho (sagostinho@viatecla.com)Gustavo Arranhado (garranhado@viatecla.com)www.viatecla.com
AgendaContexto/motivaçãoTópicosExperiência de InstalaçãoCarregamentoCarregamento assíncronoSearch Engine OptimizationIsolated StorageDesign Time ExperiencesParâmetros de InicializaçãoConclusãoMais informaçõesBrevementeDiscussãoUtilização de MediaAnimação do tamanho de caracteresVisibility vs OpacityXPerfMemória & Garbage CollectorLocalizaçãoCompressão XAP (extra)
CarregamentoAssíncrono (1)O XAP não deve conter ficheiros grandesVídeos e imagens devem ser carregados assíncronamente.O site é aberto mais rapidamente.É possível tirar melhor partido da cache do browser.
CarregamentoAssíncrono (2)Versus
Search Engine Optimization (1)Como tornar uma RIA indexável?Começar com tudo o que se aplica a uma página “normal”!
Search Engine Optimization (2)Como tornar uma RIA indexável?Ter um conteúdo alternativo numa DIV escondida
Isolated Storage (1)O que é isto?“Super Cookies” File system virtual dentro da sandbox do plug-in SilverlightEscopo por aplicação vs siteAcesso via ficheiro (FileStream) vs via dicionário (objecto)Quota de 1 MiBpor omissão (pode crescer a pedido)
Isolated Storage (2)Acesso via ficheiroSemelhante ao System.IO.File do .NET + quotas
Isolated Storage (3)Acesso via dicionárioSemelhante àConfigurationManager.AppSettings do .NET
Isolated Storage (4)Do lado do clienteClique direitoSilverlightApplication Storage
Parâmetros de Inicialização (1)O controlo Silverlighttêm diversos parâmetrosSintaxe à láSilverlight 1.0
Parâmetros de Inicialização (2)O controlo Silverlighttêm diversos parâmetrosSintaxe à láSilverlight 2.0
Parâmetros de Inicialização (3)O InitParameters é um campo abertoTrata-se de uma lista de pares chave/valor separados por ‘;’Como usar no código:
Memória & Garbage Collection (1)Como saber que memória é que o plug-in usa?O Chrome até diz, mas nem todos os browsers são assim…
Memória & Garbage Collection (2)Como saber que memória é que o plug-in usa?Perguntamos ao Almeida!
Memória & Garbage Collection (3)Por omissão não queremos ver esta informaçãoUsamos a query string para entrar em modo debug
Memória & Garbage Collection (4)Resultado: maior controlo sobre a memória(Se ignorarmos o princípio da incerteza…)
Localização (1)Como fazer sites multicultura?Com controlos nativos isso é “dado”: Datas, separadores, moeda…Como fazer sites multilingue?Não é óbvio, mas é só seguir a “receita”
Localização (2)Criar resources com as stringsUm por omissão e um para cada língua
Localização (3)Os resources têm de ser publicÉ preciso mudar o Access Modifier, mas não chega…É preciso mudar o código fonte automaticamente gerado sempre que se modifica o resource
Localização (4)Fazer o binding no componentePode ser feito em código XAML ou .NET
Localização (5)Definir as culturas suportadas no .csprojEste passo tem de ser feito num editor de XML externo:
Localização (6)Escolher a culturaPor omissão é usada a cultura do sistema operativo.Em ASP.NET pode-se usar a cultura do browser.Para uma página HTML fica hard-coded.
Localização (7)
Extra: Compressão do XAPUm ficheiro XAP é um ZIPNada nos impede de alterar a compressão Redução típica de ~25 % na VT
Experiência de InstalaçãoApresente ValorCrie expectativas, desvendando o que tem para oferecerApresente uma UX consistenteReduza a resistência e o “medo”Aborde o processo de instalação numa linguagem acessívelTorne o processo o mais transparente possívelSimplicidade, atenção e interacçãoRemova distracções e ajude o utilizador a tomar a decisão certaRecompensaEntregue o que prometeu!
CarregamentoEvite apresentar a animação de carregamento standardCrie uma animação de carregamento coerente com a estética da aplicação
Design Time ExperiencesCrie dados de teste em designer modepara que assim seja possível apresentar com maior fidelidade o que em runtime será visualizado
Utilização de MediaNão apresente video numa resolução diferente da origemNão especifique Width e Height diferentes da sourceO resize “tem um preço”Se precisar de alterar a resolução de um elemento, opte por efectuar um re-encode para as dimensões desejadas (use por exemplo o Expression Encoder)RenderO Silverlight tira partido de arquitecturas multi-core na renderização e apresentação de media, nestes sistemas o desempenho das suas aplicações será superior
Animação do tamanho de caracteresO Silverlight procura “suavizar” o rendering dos text glyphs o que pode levar à utilização extensiva de recursos e consequentemente reduzir o número dos FPSSe for imprescindível pode ser preferível a utilização de vector graphics
Visibility vs OpacitySe desejar colocar um objecto invisível modifique a propriedade Visibility para Collapsed em vez de colocar a Opacity a 0Opacity tem “custos” mais elevados uma vez que o objecto ainda é hit tested e tecnicamente renderedNão esquecer os StoryBoards que fazem fade in/out animando a Opacity
MaisinformaçõesDevDays 09 – Apresentação Original do Pedro Forteshttp://www.devdays09.com/Pesquisa/wux301Blog de Pedro Forteshttp://blogs.msdn.com/deviationsComunidade XAML-PThttp://xamlpt.comDevDays 09 – “Optimização de Performance de Web Sites” (Tiago Andrade e Silva)http://www.devdays09.com/Pesquisa/wux303MSDN – SilverlightPropertieshttp://msdn.microsoft.com/en-us/library/system.web.ui.silverlightcontrols.silverlight_properties(VS.95).aspxSearchEngineOptimization – Sessão Interna do Pedro Lameirashttp://sharepoint.viatecla.pt/devvt/Lists/Sessoes/DispForm.aspx?ID=12
Brevemente num cinema perto de siDesenvolvimento Web com Silverlight e WCFSilverlight3.0…
Obrigado pela vossa atenção!

Mais conteúdo relacionado

PPTX
DDD - Cicatrizes de guerra
PPTX
Palestra: Otimização de websites
PPTX
Cloud Computing & Windows Azure
PPTX
Surpreenda-se com o Silverlight 3
PPTX
Surpreenda-se com o Silverlight 3
PPTX
Conhecendo o silverlight
PPTX
Silverlight no MIC Summer 2011
DDD - Cicatrizes de guerra
Palestra: Otimização de websites
Cloud Computing & Windows Azure
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
Conhecendo o silverlight
Silverlight no MIC Summer 2011

Semelhante a Boas Práticas em Aplicações Silverlight 2 (20)

PPTX
Introdução ao silverlight
PDF
Apresentacao silverlight
PPTX
Silverlight 4 into
PPTX
Desenvolvimento RIA com Silverlight 4
PPTX
PDF
Construindo aplicações ricas com Silverlight
PPTX
Silverlight 4 e Expression Blend 4
PPTX
Silverlight desde o File - New Project
PPTX
Desenvolvimento de Software na Plataforma Microsoft .NET
PPT
Silverlight 2.0
PPTX
Introdução Ao Silverlight 3
PPTX
Introdução Silverlight Windows Phone
PPTX
Construindo aplicações para o Windows Phone com Silverlight
PDF
5 Pontos sobre desenvolvimento de software
PPTX
Windows Phone 7 Camp MICBH + MSPs
PPTX
Microsoft .Net
PPTX
Treinamento Windows Phone
PPSX
Introdução ao Microsoft Silverlight
PPSX
O desenvolvimento de aplicações móveis, antes da 1ª linha de código
Introdução ao silverlight
Apresentacao silverlight
Silverlight 4 into
Desenvolvimento RIA com Silverlight 4
Construindo aplicações ricas com Silverlight
Silverlight 4 e Expression Blend 4
Silverlight desde o File - New Project
Desenvolvimento de Software na Plataforma Microsoft .NET
Silverlight 2.0
Introdução Ao Silverlight 3
Introdução Silverlight Windows Phone
Construindo aplicações para o Windows Phone com Silverlight
5 Pontos sobre desenvolvimento de software
Windows Phone 7 Camp MICBH + MSPs
Microsoft .Net
Treinamento Windows Phone
Introdução ao Microsoft Silverlight
O desenvolvimento de aplicações móveis, antes da 1ª linha de código
Anúncio

Último (19)

PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PPTX
ccursoammaiacursoammaiacursoammaia123456
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PDF
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PDF
Banco de Dados 2atualização de Banco de d
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
PPT
Aula de Engenharia de Software principais caracteristicas
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PDF
Jira Software projetos completos com scrum
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Conceitos básicos de Redes Neurais Artificiais
SEMINÁRIO DE IHC - A interface Homem-Máquina
ccursoammaiacursoammaiacursoammaia123456
Processamento da remessa no SAP ERP, SCM610 Col15
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
Processos no SAP Extended Warehouse Management, EWM100 Col26
Tipos de servidor em redes de computador.pptx
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Banco de Dados 2atualização de Banco de d
Analise Estatica de Compiladores para criar uma nova LP
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
Aula de Engenharia de Software principais caracteristicas
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
Jira Software projetos completos com scrum
Anúncio

Boas Práticas em Aplicações Silverlight 2

  • 1. Boas Práticas em Aplicações Silverlight 2.0(baseado na sessão DevDays WUX301 por Pedro Fortes)28MAI09 - ViaTecla SoftwareSérgio Agostinho (sagostinho@viatecla.com)Gustavo Arranhado (garranhado@viatecla.com)www.viatecla.com
  • 2. AgendaContexto/motivaçãoTópicosExperiência de InstalaçãoCarregamentoCarregamento assíncronoSearch Engine OptimizationIsolated StorageDesign Time ExperiencesParâmetros de InicializaçãoConclusãoMais informaçõesBrevementeDiscussãoUtilização de MediaAnimação do tamanho de caracteresVisibility vs OpacityXPerfMemória & Garbage CollectorLocalizaçãoCompressão XAP (extra)
  • 3. CarregamentoAssíncrono (1)O XAP não deve conter ficheiros grandesVídeos e imagens devem ser carregados assíncronamente.O site é aberto mais rapidamente.É possível tirar melhor partido da cache do browser.
  • 5. Search Engine Optimization (1)Como tornar uma RIA indexável?Começar com tudo o que se aplica a uma página “normal”!
  • 6. Search Engine Optimization (2)Como tornar uma RIA indexável?Ter um conteúdo alternativo numa DIV escondida
  • 7. Isolated Storage (1)O que é isto?“Super Cookies” File system virtual dentro da sandbox do plug-in SilverlightEscopo por aplicação vs siteAcesso via ficheiro (FileStream) vs via dicionário (objecto)Quota de 1 MiBpor omissão (pode crescer a pedido)
  • 8. Isolated Storage (2)Acesso via ficheiroSemelhante ao System.IO.File do .NET + quotas
  • 9. Isolated Storage (3)Acesso via dicionárioSemelhante àConfigurationManager.AppSettings do .NET
  • 10. Isolated Storage (4)Do lado do clienteClique direitoSilverlightApplication Storage
  • 11. Parâmetros de Inicialização (1)O controlo Silverlighttêm diversos parâmetrosSintaxe à láSilverlight 1.0
  • 12. Parâmetros de Inicialização (2)O controlo Silverlighttêm diversos parâmetrosSintaxe à láSilverlight 2.0
  • 13. Parâmetros de Inicialização (3)O InitParameters é um campo abertoTrata-se de uma lista de pares chave/valor separados por ‘;’Como usar no código:
  • 14. Memória & Garbage Collection (1)Como saber que memória é que o plug-in usa?O Chrome até diz, mas nem todos os browsers são assim…
  • 15. Memória & Garbage Collection (2)Como saber que memória é que o plug-in usa?Perguntamos ao Almeida!
  • 16. Memória & Garbage Collection (3)Por omissão não queremos ver esta informaçãoUsamos a query string para entrar em modo debug
  • 17. Memória & Garbage Collection (4)Resultado: maior controlo sobre a memória(Se ignorarmos o princípio da incerteza…)
  • 18. Localização (1)Como fazer sites multicultura?Com controlos nativos isso é “dado”: Datas, separadores, moeda…Como fazer sites multilingue?Não é óbvio, mas é só seguir a “receita”
  • 19. Localização (2)Criar resources com as stringsUm por omissão e um para cada língua
  • 20. Localização (3)Os resources têm de ser publicÉ preciso mudar o Access Modifier, mas não chega…É preciso mudar o código fonte automaticamente gerado sempre que se modifica o resource
  • 21. Localização (4)Fazer o binding no componentePode ser feito em código XAML ou .NET
  • 22. Localização (5)Definir as culturas suportadas no .csprojEste passo tem de ser feito num editor de XML externo:
  • 23. Localização (6)Escolher a culturaPor omissão é usada a cultura do sistema operativo.Em ASP.NET pode-se usar a cultura do browser.Para uma página HTML fica hard-coded.
  • 25. Extra: Compressão do XAPUm ficheiro XAP é um ZIPNada nos impede de alterar a compressão Redução típica de ~25 % na VT
  • 26. Experiência de InstalaçãoApresente ValorCrie expectativas, desvendando o que tem para oferecerApresente uma UX consistenteReduza a resistência e o “medo”Aborde o processo de instalação numa linguagem acessívelTorne o processo o mais transparente possívelSimplicidade, atenção e interacçãoRemova distracções e ajude o utilizador a tomar a decisão certaRecompensaEntregue o que prometeu!
  • 27. CarregamentoEvite apresentar a animação de carregamento standardCrie uma animação de carregamento coerente com a estética da aplicação
  • 28. Design Time ExperiencesCrie dados de teste em designer modepara que assim seja possível apresentar com maior fidelidade o que em runtime será visualizado
  • 29. Utilização de MediaNão apresente video numa resolução diferente da origemNão especifique Width e Height diferentes da sourceO resize “tem um preço”Se precisar de alterar a resolução de um elemento, opte por efectuar um re-encode para as dimensões desejadas (use por exemplo o Expression Encoder)RenderO Silverlight tira partido de arquitecturas multi-core na renderização e apresentação de media, nestes sistemas o desempenho das suas aplicações será superior
  • 30. Animação do tamanho de caracteresO Silverlight procura “suavizar” o rendering dos text glyphs o que pode levar à utilização extensiva de recursos e consequentemente reduzir o número dos FPSSe for imprescindível pode ser preferível a utilização de vector graphics
  • 31. Visibility vs OpacitySe desejar colocar um objecto invisível modifique a propriedade Visibility para Collapsed em vez de colocar a Opacity a 0Opacity tem “custos” mais elevados uma vez que o objecto ainda é hit tested e tecnicamente renderedNão esquecer os StoryBoards que fazem fade in/out animando a Opacity
  • 32. MaisinformaçõesDevDays 09 – Apresentação Original do Pedro Forteshttp://www.devdays09.com/Pesquisa/wux301Blog de Pedro Forteshttp://blogs.msdn.com/deviationsComunidade XAML-PThttp://xamlpt.comDevDays 09 – “Optimização de Performance de Web Sites” (Tiago Andrade e Silva)http://www.devdays09.com/Pesquisa/wux303MSDN – SilverlightPropertieshttp://msdn.microsoft.com/en-us/library/system.web.ui.silverlightcontrols.silverlight_properties(VS.95).aspxSearchEngineOptimization – Sessão Interna do Pedro Lameirashttp://sharepoint.viatecla.pt/devvt/Lists/Sessoes/DispForm.aspx?ID=12
  • 33. Brevemente num cinema perto de siDesenvolvimento Web com Silverlight e WCFSilverlight3.0…
  • 34. Obrigado pela vossa atenção!