DEV Community

Dário Prazeres
Dário Prazeres

Posted on

Por onde anda o WPF?

Para quem não sabe o WPF, Windows Presentation Foundation, é uma estrutura de de interface de usuário gratuita e de código aberto para Desktop baseados no Windows. Os aplicativos em WPF são baseados em .Net e são desenvolvidos principalmente usando o C# e XAML.

O XAML ou Extensible Application Markup Language é uma linguagem declarativa XML da Microsoft para inicializar valores e objectos estruturados.

Mas de um tempo para cá a Microsoft tem deixado de mandar as actualizações para o WPF com maior frequência do que antes, qual é a razão dessa situação?

  • Primeiro devemos saber que o WPF é usando para estruturar UI mais modernas em relação ao WinForms, visto que o Winforms é mais usado para Sistema Windows um pouco mais antigo, mas ainda tem suporte até hoje mas se desejares teres uma interface mais recente e com mais animações o Winforms já não entrega.

  • Segundo a ideia do WPF foi para ajudar ao desenvolvedor até mais domínio ao controle que ele esta a inserir em seu formulário, a conseguir moldar muitos aspectos que seja do componente na base do próprio código sem muito esforço.

  • Outro aspecto interessante no WPF é a modernidade em relação as funcionalidades, Suporte em Windows mais recentes como uma renderização elegante e moderna.

Mas algo que é tão bom assim como não esta popular?

Por causa de uma nova tecnologia chamada .NET MAUI. O .NET MAUI agora é a carta coringa da Microsoft como UI para aplicativos Nativos.
Imagine que és um desenvolvedor Desktop e estas a criar uma aplicação Desktop e logo desenvolves, mas a ideia se torna popular que chega até usuários de Mac OS, Linux e até Android (Sendo otimista). Terias que criar códigos para diferentes Sistema operacional e talvez com outras linguagens.

Este é o problema que muitos desenvolvedores .NET vêm se perguntando faz tempo e o .NET MAUI venho responder isso. Podemos dizer que terá uma curva maior de aprendizagem, outro problema do .NET MAUI é a por ser uma tecnologia nova, ainda não tem maturidade para estar como primeira opção.

O cenário mudou um pouco por conta na desaceleração ou mesmo na estagnação de tecnologias como o WPF e Winforms. Isto esta matando o WPF aos poucos.

Mas será que vale a pena estudar WPF ou aplicar em novos projectos?

Essa pergunta é relativa e depende da complexidade do projecto. Imaginamos que o projecto é multiplataformas, não seria sensato desenvolver este projecto em WPF.

Mas se este projecto requisitar coisas específicas (como versões mais antigas do Windows) e nativas apenas do Windows e com uma interface agradável pode usar muito bem WPF.

Uma outra razão que vale a pena continuar ou a começar á estudar WPF é que ele hoje é código aberto, isto ajuda com que a comunidade ajude a melhorar a concertar bugs e desenvolver novas features da tecnologia que amamos e usamos. Para se ter noção a Página do GitHub do WPF contém mais de 1200 issues e mais de 206 Pull Request. Isto é sinônimo de que esta tecnologia esta a ser bem aproveitada para quem ama.

Também por ser um tecnologia madura, existe vários produtos e serviços desenvolvido com ela o que leva a precisar a ter conhecimento dessa tecnologia e também ajudará na resolução de issues.

Conclusão

Apesar do WPF ser moderno e maduro aos olhos de muitos, mas torna-se uma tecnologia antiga para que hoje é o limiar das pessoas e para que hoje é o rumo da Microsoft. Mesmo com esses problemas iremos torcer que a Microsoft possa administrar bem o repositório do WPF afim de termos tais correções em versões mais recente.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more