Convertendo WinForms para WPF: você deve considerar isso?
O WinForms tem sido uma maneira popular de desenvolver aplicativos baseados em formulário e GUI, geralmente para dispositivos baseados em Windows. Parte da estrutura .NET e originalmente vista como uma substituição para a MFC (Microsoft Foundation Class Library), os aplicativos WinForms são "controlados por eventos". Ou seja, eles se sentam e esperam que um usuário interaja com eles, antes de entrar em ação e reagir a essa entrada.
O WinForms tem sido uma maneira popular de desenvolver aplicativos baseados em formulário e GUI, geralmente para dispositivos baseados em Windows. Parte da estrutura .NET e originalmente vista como uma substituição para a MFC (Microsoft Foundation Class Library), os aplicativos WinForms são "controlados por eventos". Ou seja, eles se sentam e esperam que um usuário interaja com eles, antes de entrar em ação e reagir a essa entrada.
Embora ainda seja uma tecnologia útil para muitos (oferecemos toda uma gama de controles úteis e populares), o WinForms é oficialmente uma tecnologia em 'modo de manutenção'. De acordo com a Microsoft, o produto não está mais sujeito a desenvolvimento ativo, não verá novos recursos no futuro, mas se beneficiará de correções de bugs.
Com isso em mente, qual é o argumento para converter um aplicativo WinForms em uma tecnologia mais moderna como o Windows Presentation Foundation (WPF)? Neste post, vamos dar uma olhada neste tópico, pesando as várias opções e prós e contras.

Windows Presentation Foundation
O Windows Presentation Foundation é uma API diferente para a criação de GUIs. Separado do WinForms, mas também incluído no .NET Framework, ele é baseado no DirectX e usa uma linguagem chamada XAML para descrever seus componentes e elementos. Muitos desenvolvedores costumam fazer a pergunta: "Posso converter facilmente meu aplicativo WinForms?" Vejamos algumas respostas e dicas úteis:
1. Uma chance de melhorar seu código
Depois de decidir "converter" seu aplicativo WinForms para o WPF, dê um passo para trás e decida se a melhor abordagem não é simplesmente reescrever seu código do zero. Sem dúvida, você aprenderá muito durante o processo, e o resultado final provavelmente será um código totalmente melhor. Mudar de WinForms para WPF envolve uma mudança de mentalidade, este artigo analisa como sua abordagem deve ser diferente. O WPF é, em sua essência, muito diferente do WinForms, entender os conceitos básicos do WPF antes de começar a migrar qualquer código é uma etapa vital.
2. Converting C#.NET WinForms designer code
Se você estiver procurando por uma abordagem mais 'automatizada', existem utilitários que converterão o código do designer C#.NET em XAML. Este é um bom exemplo, embora também aconselhemos uma boa verificação manual do código. Esse projeto CodePlex também é capaz de lidar com conversões básicas, usar controles de formulário WinForms básicos e até mesmo transportar código de manipulação de eventos. Cuidado, o projeto não é atualizado há vários anos. Uma opção mais atualizada pode ser encontrada aqui, e essa ferramenta vem com suporte para vários controles diferentes.
3. Hosting WinForms inside a WPF application
Em vez de converter um aplicativo inteiro, é possível reutilizar o código do WinForms hospedando controles dentro de um aplicativo WPF. A Microsoft ofereceum passo a passo muito detalhado sobre como hospedar controles compostos do WinForms dentro de um aplicativo WPF.
4. Validando os resultados
Se você é novo no WPF ou está convertendo/portando código do WinForms, é uma boa ideia verificar novamente os resultados finais. Algumas ferramentas úteis para fazer isso incluem:
- Última atualização há alguns anos,Snoop ainda é, no entanto, uma maneira útil de depurar visualmente aplicativos WPF.
- Shazzam ajuda a testar sombreadores de pixel do WPF
- Qualquer bom desenvolvedor .NET conhecerá o Reflector
- O Microsoft Blend começou como uma ferramenta de interface do usuário autônoma, mas agora faz parte do Visual Studio. De qualquer forma, é uma maneira interessante de projetar aplicativos WPF e pode ser uma ajuda útil para aqueles que estão migrando do WinForms.
- O WPF Performance Suite ajuda a analisar o comportamento dos aplicativos WPF e fornece um meio de implementar melhorias. Útil para quem está começando com WPF ou refatoração de aplicativos WinForms de formulário de código.
Multiple options
Como os desenvolvedores experientes saberão, o .NET Framework oferece vários métodos e soluções para resolver qualquer problema. Quando se trata de aplicativos GUI, WinForms e WPF ainda são escolhas muito válidas e, como vimos neste post, existem meios de converter entre as duas abordagens. Seja qual for o caminho seguido, o Infragistics oferece uma variedade de componentes de interface do usuário pré-construídos para ajudar a tornar os resultados finais ainda mais impressionantes.
