Algumas pessoas devem se lembrar que originalmente o Silverlight era chamado de WPF/E ou WPF/Everywhere. Pois bem, isso parece que está cada vez mais chegando perto do que deveria ser. Existe hoje uma grande distância entre como era o silverlight 1.0 e o silverlight 4.0, num período tão curto de tempo(2 anos). E todos esses releases estão maduros e cheio de funcionalidades, e foram desenvolvidos com o feedback da comunidade.
Mas então, com toda essa atenção dada ao Silverlight, como fica o WPF? É uma tecnologia bem mais madura, e conseqüentemente, tende a sofrer poucas atualizações com menos funcionalidades. Se você olhar a última atualização do .NET 3.5 SP1, foi muito boa, mas com pouca coisa. Dá uma olhada na lista de novidades do WPF 4.0 beta2:
- DataGrid, Calendar, DatePicker
- Visual State Manager (saiu primeiro no Silverlight)
- Touch input in the core base classes
- Touch Manipulation input in UIElement-derived controls (scale, rotate, etc.)
- Layout Rounding
- Cached Composition
- Pixel Shader 3 Support
- InputBinding and KeyBinding
- Binding Run.Text
- Binding Dynamic Objects
- Easing Functions
- Xbap access to HTML and scripting, as well as Xbap full-trust elevation prompting
- Windows 7 Integration with the TaskBar using System.Windows.Shell
- A completely new text rendering stack giving us pixel-perfect clear type text as well as better support for animated text and control over snapping
- A completely new Xaml parser
- A much tighter and smaller client profile install (a .NET 4 feature)
Como podemos ver, a lista é relativamente pequena em relação ao silverlight, e ainda tem coisas que já estão até presentes no silverlight primeiro. Então a questão ainda paira no ar. Será que aos poucos essa tecnologia perderá o valor? E todo o seu estudo feito nessa tecnologia será perdido? Bom, se analisarmos bem, dois grandes produtos da Microsoft de Design e Desenvolvimento, foram desenvolvidos em WPF tirando vantagem dele, e conseqüentemente, isso gera uma dependência dessa tecnologia. São elas:
- Expression Blend: Feito do zero em WPF
- Visual Studio 2010: A interface foi completamente removida e trocada por uma super versão em WPF.
Além disso no PDC09 pôde ser visto mais uma série de outras aplicações novas em WPF, inclusive desenvolvidas por parceiros, com funcionalidades somente possível com WPF.
Agora o principal: WPF é a melhor e mais fácil opção para desenvolver aplicações FULL Windows 7. Portanto se você pensa numa solução que explore todos os recursos do Windows 7, essa é a tecnologia que você precisa considerar primeiro. Ah, isso sem falar no Surface e suas variações, ou seja, qualquer painel que use Multi Touch Screen.
Portanto, o WPF está vivo, apesar de não receber a mesma atenção de tecnologias novas e que movem rapidamente, como o silverlight, mas ele está aí e é muito forte. Isso também não é motivo para preocupação e dúvida sobre estudar ou não a tecnologia, pois se você estudar WPF, poderá usufruir no silverlight, afinal o Silverlight não é um subset do WPF?
E no futuro, convergência do WPF e Silverlight:
Pois bem, voltando ao começo deste post, onde eu lembrava que originalmente o Silverlight se chamava "WPF/e", parece que o rumo será exatamente esse, conforme algumas conversas entre o Ian Ellison-Taylor e o Pete Brown (Program Manager de Windows Client). Segundo Pete, é muito provável que WPF e Silverlight serão uma tecnologia única, com um único codebase. É muito difícil de dizer ainda quando isso vai acontecer, mas hoje já vemos código e idéias compartilhadas entre as duas tecnologias (ex. VSM e Datagrid). As duas tecnologias são excelentes, entretanto tem coisas ainda que o Silverlight não suporta para desenvolver uma grande aplicação e o WPF não roda num CLR Cross-plataform. Então a diferença ainda é considerável.
Tá, e qual o caminho a seguir?
Do ponto de vista de estudo, qualquer das duas tecnologias que você estudar, seu investimento não será perdido. Portanto lembre-se que, uma é parte da outra e são bem parecidas. Existe um white paper bem interessante que relata a diferença entre as duas: "Microsoft WPF and Silverlight Differences White paper".
Por outro lado, desenvolver uma nova aplicação hoje, é preciso considerar os diferentes cenários. Se você fizer uma matriz de requisitos, fica mais fácil escolher a tecnologia certa. Considere por exemplo, o tipo de serviço que você vai integrar, o nível de acesso a máquina local, se precisa ser cross-plataform, etc. Do lado dos gráficos, o silverlight é o melhor para aplicações RIA multi plataforma, de outro lado o WPF é a melhor opção para aplicação rica no Windows 7.
Lembre que agora no silverlight 4 você pode automatizar quase tudo na maquina local que tenha uma interface do tipo Idispatcher( pense numa automação do Office) e que no WPF 4 você tem uma instalação bem menor do framework e que roda side-by-side com versões anteriores.
Considere também que, no silverlight 4 e WPF 4, você pode compartilhar DLLs entre as duas tecnologias, tornando muito fácil de compartilhar funcionalidades, tendo versões otimizadas (ex. uma aplicação WPF com características mais client, enquanto na aplicação silverlight com as características mais cross-plataform). O conhecimento e as ferramentas são as mesmas.
Eu sempre participei mais em desenvolvimento de aplicações de negócios, principalmente ERPs. Com o passar do tempo, hoje temos vários ERPs já implantados, depois de longo tempo, colhendo resultados, mas que hoje precisam ser visualizados de outra forma. Aí que entra o Business Intelligence, com gráficos e dashboards, com interfaces cada vez mais ricas.
Eu comecei meus estudos pelo WPF para atender uma necessidade de aplicação rica para uma empresa, mas hoje vejo também no silverlight uma grande oportunidade para aplicações de negócios e principalmente por ser web.
Portanto, qualquer das duas tecnologias que você seguir ou começar primeiro, você já estará no caminho certo para o futuro de desenvolvimento na plataforma Microsoft. Pense nisso!
Abraços.
ps: Adaptado e resumido da leitura de outros blogs, junto com minhas proprias opiniões. Fontes: Blog do Pete brown VBandi’s Blog Elder’s Blog
1 comentário
Rumos do Silverlight / WPF e do Windows 8 | Gustavo Malheiros · 18/07/2011 às 02:24
[…] ainda existe grandes possibilidades delas rodarem de forma nativa no Windows 8. É aquele lance da convergência do Silverlight e WPF, que eu ja tinha falado nesse post em 2009. Portanto meu amigo, se você ainda não aprendeu, agora é a hora, pois o futuro de programação […]