André Alves de Lima

Talking about Software Development and more…

Windows Forms ou WPF? Qual utilizar?

Imagine que você, programador .NET, está começando um novo projeto desktop e surge a seguinte dúvida: qual plataforma de desenvolvimento eu devo utilizar? Windows Forms ou WPF?

Não se assuste. Apesar dessas duas plataformas já estarem bem disseminadas no mercado (afinal de contas, a primeira versão do Windows Forms saiu em 2002 e a primeira versão do WPF saiu em 2006), essa dúvida é muito mais comum do que você pode imaginar.

Algumas pessoas já escreveram sobre esse assunto no passado como, por exemplo, o Giovanni Bassi neste excelente artigo: WPF ou Windows Forms. Porém, mesmo assim, eu quero dar a minha perspectiva nesse assunto polêmico, baseado na minha experiência trabalhando com ambas as plataformas desde 2005.

Antes de discutirmos qual tecnologia é melhor em cada cenário, vamos dar uma olhada nas principais características de cada uma delas.

Características do Windows Forms

É mais velho: a primeira versão do Windows Forms foi lançada junto com o .NET Framework, em 2002. Podemos dizer que o Windows Forms já está “pronto” e estável há muito tempo, uma vez que não tivemos novas funcionalidades para essa plataforma desde aproximadamente o lançamento do .NET Framework 3.0.

A curva de aprendizado é tranquila: mesmo para programadores iniciantes, a curva de aprendizado do Windows Forms é extremamente tranquila. Por ser muito “visual“, a facilidade de arrastar os controles para dentro da tela e implementar funcionalidades por trás deles é muito grande.

Baixa barreira para alta produtividade: como a curva de aprendizado é muito tranquila, com pouco tempo você atinge uma produtividade alta no desenvolvimento dos seus projetos.

Suporte à herança visual: a herança visual no Windows Forms funciona até que bem. Se você tem vários formulários muito parecidos no seu projeto, é muito fácil criar um formulário “base” que servirá de “pai” para todos os outros formulários.

Bastante documentação, artigos e conteúdo técnico: por ser mais velho e mais disseminado, é muito mais fácil encontrar documentação e artigos técnicos sobre o Windows Forms. Se você está querendo fazer alguma coisa um pouco diferente do padrão no Windows Forms, muito provavelmente alguém já fez no passado e acabou documentando em algum lugar. Se você souber procurar, você vai encontrar.

Vasta biblioteca de controles de terceiros: existe uma quantidade absurda de componentes de terceiros para o Windows Forms. As principais opções são DevExpress, Telerik, Infragistics e ComponentOne. Apesar do preço ser um pouco salgado, a gama de componentes disponibilizada por essas bibliotecas vale cada centavo que você paga.

Apresenta problemas quando mudamos o DPI: uma das dificuldades quando programamos com o Windows Forms é o problema com resoluções/DPIs diferentes. Com a evolução das placas gráficas e monitores, isso está se tornando um problema muito comum. Existem algumas maneiras de resolver esse problema (eu até já escrevi um artigo sobre isso), mas, não é tão fácil como no WPF.

Dificulta a utilização de uma arquitetura mais robusta: como mencionei anteriormente, o Windows Forms é muito “visual” e baseado em eventos. Apesar de isso trazer uma facilidade no desenvolvimento, por outro lado, acaba trazendo uma dificuldade se quisermos utilizar uma arquitetura mais robusta, onde separamos todo o código de negócio da camada de apresentação. É possível utilizar arquiteturas como o MVVM no Windows Forms (inclusive, nós utilizamos em um projeto bem grande na empresa onde eu trabalho atualmente), mas, não é tão simples como no WPF.

Está em “modo manutenção”: a Microsoft não tem trazido novas funcionalidades para o Windows Forms desde o .NET Framework 3.0. Ele está em “modo manutenção“, o que quer dizer que somente bugs serão corrigidos. No .NET Framework 4.5 a Microsoft corrigiu alguns problemas de DPI dos controles nativos, mas, nada de funcionalidades novas. Quando novas features são adicionadas ao sistema operacional, o Windows Forms muito provavelmente não trará suporte a elas e a única opção é recorrer a gambiarras se quisermos utilizá-las.

A performance é melhor: algo que eu esqueci completamente quando escrevi este artigo é a questão da performance. Fui lembrado no Facebook pelo Rodrigo Vedovato que o Windows Forms ganha de longe do WPF quando o assunto é performance:

O Márcio Fábio Althmann também me lembrou desse detalhe da performance do WPF nos comentários aqui deste artigo (a propósito, se você ainda não conhece, eu recomendo que você dê uma olhada no blog dele):

Características do WPF

É mais novo, mas, mesmo assim, já é “velho”: a primeira versão do WPF saiu junto com o .NET Framework 3.0, em 2006. Apesar de ser mais novo que o Windows Forms, se levarmos em conta que estamos em 2016, ele já tem 10 anos!

Curva de aprendizado maior (se utilizado do jeito “certo”): a dificuldade no aprendizado do WPF se você quiser utilizá-lo corretamente (por exemplo, com uma arquitetura robusta como o MVVM) é bem maior. Para utilizar o WPF na sua capacidade total, você precisa aprender conceitos de programação que não são tão triviais assim.

Também está, de certa forma, em “modo manutenção”: apesar de ser mais novo, costuma-se dizer que o WPF também está “pronto“. Ou seja, muito dificilmente a Microsoft trará novas funcionalidades ou novos componentes nas próximas versões do .NET Framework.

Menos conteúdo disponível na internet: não é tão fácil encontrar conteúdo sobre WPF na internet, principalmente em português. O conteúdo disponibilizado em inglês até que é compatível com os materiais sobre Windows Forms, mas, em português ele fica devendo.

Controles de terceiros têm qualidade inferior: se você comparar a quantidade de features de componentes de terceiros entre WPF e Windows Forms, você verá que a qualidade dos componentes da mesma empresa é inferior no WPF. Por exemplo, se você comparar qualquer controle da DevExpress entre o Windows Forms e WPF, verá que os componentes do WPF ainda não conseguiram chegar 100% nas funcionalidades existentes para o Windows Forms.

XAML e sistema de binding extraordinário: apesar de parecer um tanto quanto complexo de início, o XAML é uma linguagem muito poderosa. Ela também pode ser utilizada no desenvolvimento de aplicativos móveis com a Xamarin, então, se você aprender o XAML do WPF, será mais fácil trabalhar com o XAML no desenvolvimento Xamarin. Sem falar no sistema de binding do WPF que é, de longe, a melhor funcionalidade dessa plataforma.

Capacidades gráficas bem melhores: o WPF não trabalha com a unidade de pixels (como o Windows Forms), mas sim, algo chamado “device independent units“. Essa diferença faz com que os aplicativos WPF consigam “escalar” sem problemas em diferentes resoluções e DPIs. Além disso, o WPF traz nativamente o suporte a transformações geométricas, efeitos 3D, manipulação de arquivos de mídia, entre outros.

Facilita a criação de um código melhor arquitetado: a separação brusca entre o código de design (XAML) e o código de negócio (C# ou VB.NET), além do sistema de binding mencionado anteriormente, facilita a criação de um código bem arquitetado. A utilização de arquiteturas como o MVVM cai como uma luva no desenvolvimento de aplicações WPF. Essa separação de responsabilidades possibilita que uma pessoa do time trabalhe somente no design das janelas enquanto outra pessoa trabalhe na lógica de negócios.

Quando utilizar Windows Forms?

Agora que já vimos as principais características do Windows Forms e do WPF, vamos ver a minha opinião sobre quando utilizar uma plataforma e quando utilizar a outra plataforma. Porém, antes de começar, vamos a um pequeno “disclaimer“:

As informações que apresentarei a partir desse ponto são baseadas na minha opinião trabalhando com desenvolvimento de aplicações em ambas as plataformas desde 2005. Ou seja, isso não quer dizer que elas são 100% corretas. Como toda opinião, cada um pode ter a sua e podemos, sem problema algum, discordar em alguns pontos. Pegue essas informações e utilize-as da melhor forma, sempre adaptando para o cenário dos seus aplicativos.

Aplicações de complexidade básica/intermediária até intermediária/avançada que devem rodar somente em Windows: se a sua aplicação não tem uma complexidade extremamente alta (pode até ser um aplicativo de negócios bem grande, mas, nada muito extremo como um ERP completo) e se você tem certeza que o aplicativo deverá rodar somente no Windows, vá de Windows Forms. Desenvolver com WPF nesse caso resultaria em uma aplicação que tem a mesma “cara“, só que com um código potencialmente mais complexo.

Aplicativos utilitários: pequenos aplicativos utilitários são mais facilmente desenvolvidos com Windows Forms.

Equipe com vasta experiência em Windows Forms e pouca/nenhuma experiência em WPF: se a sua equipe já tem uma vasta experiência com Windows Forms e pouca ou nenhuma experiência com WPF, não perca tempo durante o projeto para que a equipe aprenda WPF. Na minha opinião, o decorrer de um projeto não é hora de ficar aprendendo tecnologia do zero. Se você tem a intenção de utilizar WPF em um projeto no futuro, treine a sua equipe com antecedência, porque os conceitos não são aprendidos da noite para o dia.

Quando performance é importante: como mencionado anteriormente, a performance do WPF melhorou muito desde a primeira versão, mas, ainda está longe de ser o ideal. Dessa forma, se performance for um fator crítico para a sua aplicação, vá de Windows Forms.

Quando utilizar WPF?

Aplicações que tenham a chance de ter que rodar em várias plataformas: se você está desenvolvendo um aplicativo que deverá rodar em múltiplas plataformas, vá de WPF (mas utilize ele do “jeito certo“!). Isso te forçará a separar corretamente os códigos de negócio e design, facilitando o compartilhamento de código entre as diferentes plataformas. Além disso, se você pretende desenvolver aplicativos móveis com as ferramentas da Xamarin, muito provavelmente você conseguirá compartilhar uma boa parte das ViewModels entre as plataformas (sem falar do conhecimento de XAML que será útil se você escolher trabalhar com ele nas ferramentas da Xamarin).

Aplicações gigantescas ou de complexidade extrema: se a sua aplicação é gigantesca ou tem uma complexidade extremamente grande, a utilização correta do WPF fará com que você separe bem o código e tenha um projeto mais estruturado. A manutenção desses projetos ficará menos complexa caso você utilize o WPF com a arquitetura MVVM.

Aplicações com interfaces ricas: a sua aplicação precisa ter interfaces ricas, com transformações geométricas, 3D ou manipulação de mídia? Então não tem nem o que pensar. O WPF traz essas possibilidades nativamente, além de conseguir utilizar todo o poder da sua placa gráfica (coisa que não acontece com o Windows Forms).

Atenção! Evite isso:

Utilizar o Windows Forms ou WPF sem bibliotecas de terceiros: tanto os controles nativos do Windows Forms como do WPF são muito básicos e não são bons o suficiente para desenvolver um aplicativo comercial de qualidade. É importante investir um pouco de grana na compra de uma suíte de componentes. Dessa forma você acabará economizando tempo, uma vez que você não terá que ficar “reinventando a roda” toda vez que precisar de uma funcionalidade inexistente nos controles nativos.

Edit: em Outubro de 2017 o leitor Fausto Luís comentou que existem componentes muito bons que são gratuitos. Ele comentou especificamente sobre os controles da SyncFusion, que são gratuitos para desenvolvedores individuais e pequenas empresas. Ele tem toda a razão. Inclusive eu mencionei os controles da SyncFusion neste outro artigo que eu escrevi sobre suítes de componentes para .NET. Obrigado pelo toque, Fausto!

Escolher o WPF “só por escolher”: não escolha o WPF só porque ele é mais novo ou mais “elegante“. Os conceitos por traz do WPF são bem mais complexos que o Windows Forms e, como mencionei anteriormente, a curva de aprendizado é maior. Analise com cuidado o seu projeto para ver se o WPF realmente é a melhor escolha ou se você só está escolhendo ele porque “ouviu falar” que ele é melhor.

Programar aplicações WPF como você está acostumado a programar Windows Forms: se você escolher o WPF para a sua aplicação, não trabalhe com ele como se você estivesse programando Windows Forms! Não comece a arrastar controles e utilizar os seus eventos como você está potencialmente acostumado com o Windows Forms. Utilize uma arquitetura robusta (como o MVVM), tire proveito dos bindings, comandos, templates e tudo mais que o WPF traz de bom para você. Se você trabalhar com o WPF da mesma forma que está acostumado com o Windows Forms, o seu projeto ficará parecendo um Frankenstein e, o pior de tudo, a aparência da aplicação ficará igualzinha a uma aplicação Windows Forms. Ou seja, você terá uma aplicação idêntica com um código mais complexo. Não é uma boa ideia.

Programar aplicações Windows Forms sem separar o código de negócios da camada de apresentação: infelizmente, esse é um erro que ainda acontece muito frequentemente. O programador não separa a lógica de negócios e implementa tudo por trás do código do formulário. Se você ainda comete esse erro, pare agora mesmo! Sério. Esse é o pior erro que você pode cometer. Se você continuar persistindo nesse erro, quando a sua aplicação começar a ficar muito grande, ninguém vai conseguir dar manutenção nela (nem mesmo você)!

Ignorar o WPF ou falar mal dele sem conhecer: muita gente que já tem bastante experiência com Windows Forms e começa a estudar WPF acaba desistindo no meio (por causa da complexidade) e passa a falar mal do WPF. Isso é um tremendo erro. Para conseguir identificar qual é a melhor plataforma para cada tipo de aplicativo, você precisa conhecer muito bem as duas plataformas. Dessa forma, não ignore o WPF. Aprenda, treine, ponha em prática em um aplicativo de teste. Só assim você conseguirá tirar proveito de ambas as plataformas, independentemente de qual você escolher para cada projeto.

Concluindo

Tanto o Windows Forms quanto o WPF são plataformas de desenvolvimento de aplicações desktop que já estão “prontas“, ou seja, ambas estão estáveis e completas. Existe uma grande sobreposição de funcionalidades que estão presentes nas duas plataformas. Por isso, é importante conhecer ambas as plataformas para conseguir decidir qual delas utilizar em cada tipo de projeto.

Neste artigo você conheceu as principais características das duas plataformas, bem como a minha opinião sobre quando utilizar o Windows Forms e quando utilizar o WPF. E você? Concorda comigo ou tem uma opinião diferente? Deixe as suas observações na caixa de comentários abaixo.

Por fim, convido você a inscrever-se na minha newsletter. Ao fazer isso, você receberá um e-mail toda semana sobre o artigo publicado e ficará sabendo também em primeira mão sobre o artigo da próxima semana, além de receber dicas “bônus” que eu só compartilho por e-mail. Inscreva-se utilizando o formulário logo abaixo.

Até a próxima!

André Lima

Image by Pixabay used under Creative Commons
https://pixabay.com/en/chess-chessboard-game-strategy-424549/
https://pixabay.com/en/businessmen-silhouettes-meeting-1039905/
https://pixabay.com/en/board-school-mathematics-slate-1044088/
https://pixabay.com/en/japan-structure-monument-1419499/

Newsletter do André Lima

* indicates required



Powered by MailChimp

31 thoughts on “Windows Forms ou WPF? Qual utilizar?

  • Joel Rodrigues disse:

    Excelente artigo, André. Cheio de considerações importantíssimas sobre as duas opções.
    Parabéns.

  • Ewerton disse:

    Parabéns André, ótimo artigo.

    Quando a tecnologia UWP (Plataforma Universal do Windows). Qual a sua visão?

    • andrealveslima disse:

      Olá Ewerton, obrigado pelo comentário!

      Uma coisa que eu aprendi há pouco tempo é não falar sobre coisas que eu não conheço.. Dito isso, confesso que eu não tenho experiência comercial com UWPs, ou seja, eu nunca desenvolvi nenhum aplicativo “de verdade” utilizando essa plataforma.. Já fiz alguns testes, mas, somente para aprender os conceitos..

      Eu posso te contar que, no ambiente onde eu trabalho, nunca se cogitou o desenvolvimento utilizando com UWP e aparentemente a demanda é bem pequena.. Tenho a impressão que esse negócio de aplicações “modernas” do Windows não “pegou” e, pela demora, tenho dúvidas se um dia vai pegar..

      E você, tem alguma opinião sobre Universal Windows Apps?

      Abraço!
      André Lima

  • Alison disse:

    Belo texto! A depender da aplicação, normalmente uso Winforms + MVP, mas nunca usei Windows Forms + MVVM, valeria um texto sobre o assunto!

    Abraços!

    • andrealveslima disse:

      Olá Alison, obrigado pelo comentário! E obrigado também pela excelente sugestão.. Vou colocar aqui na minha lista e assim que possível escreverei sobre como utilizamos Windows Forms + MVVM aqui na empresa onde eu trabalho..

      Abraço!
      André Lima

  • Olá André, tudo bem por aí?

    Vou dar minha opinião também (desculpa hehe). Cara já trabalhei com as duas tecnologias, e um cenário que não pode deixar de ser pensado é a questão de performance.

    Acho que performance é uma variável muito importante na equação. Se você precisa que sua aplicação funcione de forma aceitável em vários tipos de hardware fuja do WPF.

    WPF melhorou? Sim! Mas ainda assim, dependendo dos cenários dos seus clientes vá de WinForms sem medo. É só fazer direito que é possível hehe.

    Abraços e parabéns pelo artigo.

    • andrealveslima disse:

      Fala Márcio, tudo tranquilo?

      Cara, valeu demais pelo comentário! Eu realmente tinha esquecido dessa questão da performance.. Um outro leitor tinha me alertado disso lá no Facebook.. Agora eu editei o artigo mencionando esse ponto..

      PS.: estou aguardando a continuação da sua série sobre post-mortem debugging.. ;)

      Abraço!
      André Lima

  • Cleidson disse:

    Ótimo artigo André.
    Na minha humilde opinião, mesmo sendo mais trabalhoso usar WPF ( e bota trabalhoso nisso) a diferença que se tem em termos de qualidade de design faz valer a pena o trabalho extra. Sempre gostei de criar interfaces ricas e com WPF sua criatividade é o limite. Sem contar que mvvm te obriga a ser mais organizado e em suas aplicações. Ainda não domíno 100% wpf. Vez ou outra ainda preciso recorrer ao code behind pra realizar alguma tarefa. Mesmo assim, acho que Wpf vale totalmente a pena. Adicionalmente, você ainda aprende a programar de forma mais parecida com asp e aplicações multi plataformas. Coisa que não existe com WinForms.

    • andrealveslima disse:

      Olá Cleidson, obrigado pelo comentário!

      Sem dúvida com o WPF dá para criar interfaces bem mais ricas mesmo.. Se esse for um requisito da aplicação, não tem muito o que pensar..

      Porém, para alguns tipos de aplicativos de negócios, nem sempre o usuário precisa de uma interface rica.. É bem melhor que a interface seja muito funcional e que a performance seja aceitável.. Nesses casos, acredito que o Windows Forms acaba encaixando melhor.. Ah, e dá para fazer uma arquitetura bem bacana com o Windows Forms sim, separando tudo direitinho nas camadas correspondentes.. E dá para fazer uma arquitetura extremamente porca com o WPF também.. Aí vai do capricho do(a) programador(a)..

      Enfim, como eu mencionei no artigo, nunca vai ter uma resposta 100%.. Só temos que ficar atentos para as diferenças para conseguirmos fazer a melhor escolha possível ao iniciarmos um novo projeto..

      Grande abraço!
      André Lima

  • Nelson Modro Jr disse:

    Oi, André.
    Bem interessante o artigo.
    Minha dúvida recai sobre a questão da performance. Quão ruim ou quão diferente é a diferença de performance pensando num sistema cliente/servidor com um servidor de dados dedicado (nuvem) e os clientes usando o sistema em várias cidades diferentes com conexão aos dados via internet. Por exemplo uma rede de hotéis ou uma rede de farmácias.

    Abraço.

    • andrealveslima disse:

      Olá Nelson, obrigado pelo comentário!

      A performance do WPF é pior no que se trata da interface.. Se você não faz muita frescura na interface, a performance é praticamente a mesma que a do Windows Forms (dependendo do hardware, uma vez que o WPF exige mais da placa gráfica, enquanto que o Windows Forms não).. Agora, se você faz muita transformação gráfica nas suas janelas (por exemplo, grids com cores de fonte diferentes dependendo de lógica de negócio) ou se você mostra muitas janelas abertas ao mesmo tempo, ou se você utiliza alguma biblioteca de controles, as chances de você encontrar problemas de performance aumentam significativamente..

      Abraço!
      André Lima

  • Kevin Matheus disse:

    aprendi no curso a usar windows form com c#, mas quando migrei para o WPF e usar a pattern MVVM, achei surpreendente essa tecnologia, temos que parar de usar o windows form e ir logo para o WPF, precisamos se atualizar, em questão de performance, acho isso um pouco dependente da maquina onde você vai colocar, ou até mesmo, depende de como você monta o seu projeto em WPF, se seus códigos tiver muita gambiarra, mas nem no windows form vai ter uma performance boa kkk

    • andrealveslima disse:

      Olá Kevin, muito obrigado pelo comentário!

      Eu diria que depende muito da equipe.. Se as pessoas já estão acostumadas a programar em Windows Forms, fica difícil fazer a transição porque a curva de aprendizado do WPF não é tão simples assim.. Principalmente em equipes com programadores de idade mais avançada..

      De qualquer forma, mesmo utilizando o Windows Forms, você consegue utilizar o padrão MVVM também (utilizamos aqui na empresa onde eu trabalho).. Não é tão “pronto” como no WPF, mas, com algumas classes extras você consegue utilizar ViewModels, Commands, etc no Windows Forms também..

      Enfim, cada caso é um caso, como eu expliquei no artigo.. O importante é analisar bem antes de começar qualquer projeto em qualquer tecnologia que seja..

      Abraço!
      André Lima

  • Jailson disse:

    Essa duvida estava me matando :/ Agradeço por compartilhar sua experiência :)

  • Cleidson disse:

    Pessoal, eu estou realmente tentanto desenvolver uma aplicação com WPF. Mas algo que está me tirando do sério é a lentidão do Editor de XAML. As vezes, quando rodo a aplicação e depois encerro, demora mais de 30 segundos até o editor aparecer novamente, isso mesmo com um simples user control, com pouquíssimos objetos. E eu tenho dois computadores com processador i7. Em ambos tenho esse problema. Estou pensando seriamente em deixar de trabalhar com o WPF só por causa disso. E já formatei computador, reinstalei tudo e me parece que não tem jeito. O Editor é realmente muuuuuuuito lento. A única coisa que ameniza é desabilitando o XAML Designer. Mas ai, você tem que desenhar as views na escura. Se alguém conhecer alguma solução para esse problema de lentidão, eu vou agradecer muito.

    • andrealveslima disse:

      Olá Cleidson, obrigado pelo comentário!

      Realmente o editor de XAML tem vários problemas de performance mesmo.. Você utiliza alguma extensão no Visual Studio (ou algo como o ReSharper)? Pode ser que alguma extensão esteja deixando a responsividade pior ainda..

      E você já testou o Visual Studio 2017 RC? Tente abrir esse mesmo projeto que está apresentando essa lentidão no Visual Studio 2017 RC.. De acordo com a Microsoft (neste artigo), ela corrigiu um problema de performance que acontecia ao parar o processo de debugging:

      Abraço!
      André Lima

  • […] com ele. Porém, o objetivo desse artigo não é fazer uma comparação entre WPF e Windows Forms (eu já escrevi sobre isso uns tempos atrás). O que eu quero realmente mostrar no artigo de hoje é o sistema de data binding no Windows […]

  • Edson Aguiar disse:

    Se o WPF saiu em 2006 como vc trabalha nela desde 2005?

    • andrealveslima disse:

      Olá Edson!

      Pode ser que o jeito que eu escrevi a frase tenha dado a ideia errada.. Eu trabalho com Windows Forms desde 2005.. Com o WPF eu não me lembro exatamente quando foi a primeira vez que eu brinquei com ele.. Eu sei que ele estava em beta ainda, então deve ter sido por volta de 2006 mesmo..

      Abraço!
      André Lima

  • Fausto Luís disse:

    Olá, André,

    Tenho acompanhado os seus artigos neste blog, e sou subscritor da sua newsletter.

    Já passou algum tempo sobre a publicação deste seu artigo mas, mesmo assim, achei por bem dar a minha opinião, uma vez que é assunto que vai continuar na ordem do dia por algum tempo..

    Em relação à escolha do WPF/WF: uso o WF há muito tempo, com “separação”, “factories”, usando “SOLID”, tudo direitinho; do mais simples ao mais complexo, acredite.
    Não tenho (quase) nada a contrapor ao que disse; apenas na frase: “É importante investir um pouco de grana…” não é bem assim :-); sem qualquer intenção de publicitar a empresa (Syncfusion), posso dizer que uso o “Syncfusion Essential Studio” há algum tempo e com grande proveito, e que o pacote é gratuito (desde que não ultrapasse o milhão de dólares de faturação…); a versão de 2017, então, está demais! Tem controlos para tudo: WPF/WF/UWP/MVC/… Claro que têm a versão “Enterprise” (pago) mas, caso não conheça, dê uma espreitadela… caso chegue à mesma opinião que eu, divulgue!

    HTH
    Abraço.

    • andrealveslima disse:

      Olá Fausto, muito obrigado pelo comentário!

      Concordo 100% com você.. Inclusive, eu já escrevi um artigo sobre suítes de controles para .NET onde eu mencionei o pacote gratuito da SyncFusion também..

      Já adicionei uma nota neste artigo aqui apontando essa observação que você fez e sugerindo que os leitores confiram o outro artigo sobre pacotes de controles..

      Valeu pelo toque!

      Um forte abraço!
      André Lima

  • PAULO disse:

    André, boa tarde!

    Excelentes esclarecimentos.

    Meu problema atual é o seguinte: desenvolver uma aplicação DeskTop universal, sem ter que ficar fazendo esses milhares de ajustes em controles e fontes para tentar se encaixar na resolução de vídeo do cliente.

    É lamentável que já não exista uma solução no próprio IDE para tal problema pois, pelo que percebi, muitos colegas desenvolvedores se deparam com o mesmo dilema: desenhar as telas em tamanho menor, controles com espaços grandes entre eles para não se sobreporem na hora do cálculo para a nova resolução, etc… e por aí vai…

    Resumindo, era só disponibilizar as funcionalidades de ajustes do WPF para o Windows Forms e estaria resolvido.

    Até+

    Paulo.

    • andrealveslima disse:

      Olá Paulo, muito obrigado pelo comentário!

      Pois é.. Esse negócio do DPI no Windows Forms realmente é um problema.. Mas, a Microsoft tem tentado consertar esses problemas nas últimas versões do .NET.. Não está uma maravilha como no WPF, mas está melhorando, principalmente se utilizamos Anchor e Docking nos controles (como mostrei neste artigo)..

      Vamos esperar que a Microsoft continue melhorando isso nas próximas versões.. É a única coisa que podemos fazer, a não ser partir para outra tecnologia.. :(

      Abraço!
      André Lima

  • Dmitry Babich disse:

    Hello André,
     
    I see that you have already mentioned DevExpress components in your article. I should say that we at DevExpress are working hard to remove this WinForms limitation and implement full High DPI support.Together with the SVG and DirectX (hardware acceleration) support, DevExpress components may be a good alternative for moving to another platform, especially for large Windows Forms applications.

    • andrealveslima disse:

      Hello Dmitry, thanks for your contact!

      Yes, I know that DevExpress is working hard to remove this limitation from Windows Forms. In the company where I work we use the DevExpress library in our Windows Forms applications for many, many years and we are quite happy with the result.

      Regards,
      André Lima

  • Jonatas Leonis disse:

    andrealveslima, Muito bom seu post e muito esclarecedor, parabéns pelo trabalho!

    O que vc diria sobre iniciar um novo projeto de um sistema ERP com Windows Forms? há alguma contra indicação? você acha que seria andar na contra mão de toda evolução tecnológica que estamos passando nos últimos anos? o que você recomendaria?

    • andrealveslima disse:

      Olá Jonatas!

      Eu acho que depende muito dos fatores que eu apresentei no artigo.. Por exemplo, qual a capacitação da equipe? O pessoal já tem domínio do Windows Forms ou vai aprender agora? Existe uma série de fatores que devem ser considerados nessa decisão.. Eu não tenho nada contra optar por começar o projeto em Windows Forms, a não ser que você esteja capacitando agora a equipe, aí eu optaria por partir para o WPF..

      Abraço!
      André Lima

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *