BT

WPF vs. Silverlight – Qual é a real diferença?

por Jonathan Allen , traduzido por Carlos Mendonça em 17 Nov 2009 |

Conforme a importância tanto do WPF quanto do Silverlight cresce entre os desenvolvedores .NET, a confusão sobre a diferença entre ambos também aumenta. Em julho, a Wintellect lançou um whitepaper pouco conhecido mas incrivelmente importante sobre este tópico e que era intitulado Whitepaper sobre Comparação entre o Microsoft WPF e Silverlight. Recomendamos que desenvolvedores de interfaces gráficos com o usuário leiam as 69 páginas, mas oferecemos um resumo das principais que impactam o negócio destes desenvolvedores.

Propriedades de dependência são componentes-chave para ambas as plataformas, com o PropertyMetadata sendo usado para propriedades de plano de fundo ao invés de campos normais. Enquanto o Silverlight oferece apenas uma classe, o WPF possui alguns sub-tipos.

  • UIPropertyMetadata adiciona uma flag que determina "se animações devem ser desabilitadas na propriedade de dependência onde a instância do metadado contido é aplicado."
  • FrameworkPropertyMetadata adiciona uma flag para indicar que a propriedade afeta o pipeline, incluindo o posicionamento, medição e renderização do controle. Também pode indicar se o data-binding é permitido na propriedade e qual é seu tipo padrão. Uma vez que o Silverlight não suporta esta classe, todas as ligações de dados são, por padrão, de mão-única.

O Silverlight não suporta o tunelamento de eventos. Ambas as plataformas suportam eventos diretos e "bubbling".

O WPF suporta vários tipos de triggers. Um trigger básico é anexado a uma propriedade de dependência e aplica automaticamente mudanças de estilo quando sua condição é atendida. Além de triggers básicos, o WPF também suporta trigger que respondem a eventos roteados e triggers que funcionam com data-binding. Ao invés de triggers, o Silverlight utiliza uma tecnologia chamada Visual State Manager em seu lugar. O WPF não oferece isso no momento, mas oferecerá na versão 4.0.

O Silverlight suporta apenas algumas extensões de markup. Além das extensões StaticResource compartilhado, Binding e TemplateBinding, o WPF adiciona o DynamicResource, RelativeSource, x:Type, x:Static, and x:Array.

Há inúmeros eventos para teclado e mouse disponíveis apenas no WPF. Como há eventos demais para listar aqui, nós deixamos a listagem para o texto completo do whitepaper.

A classe UIElement e a interface IinputElement. Quando o controle está desabilitado, o WPF utiliza isso para desabilitar todos os controles filhos. O Silverlight não oferece este comportamento, então os desenvolvedores devem conversar com a árvore de controles manualmente.

No lado da comunicação, o WCF no Silverlight está limitado ao BasicHttpBinding e PollingDuplexHttpBinding. O WPF, evidentemente, suporta todas as bindings disponíveis.

Por fim, a funcionalidade de impressão é completamente diferente no WPF em relação ao Silverlight. O WPF permite impressão direta de árvores visuais enquanto o Silverlight se aproveita dos recursos do browser.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT