Formulários do Windows - Windows Forms

Formulários do Windows (WinForms)
Captura de tela do WinForms Designer conforme visto no Visual Studio 2019.png
Outros nomes WinForms
Autor (es) original (is) .NET : Microsoft ,
Mono : Ximian / Novell
Desenvolvedor (s) .NET Foundation
lançamento inicial 13 de fevereiro de 2002 ; 19 anos atras ( 13/02/2002 )
Versão estável
v5.0.0-rtm.20520.1 / 20 de outubro de 2020 ; 10 meses atrás ( 2020-10-20 )
Repositório
Escrito em C #
Sistema operacional Microsoft Windows
Plataforma .NET Framework , .NET Core
Modelo Framework de software
Licença Licença MIT
Local na rede Internet docs .microsoft .com / en-us / dotnet / framework / winforms /

Windows Forms (WinForms) é uma biblioteca de classes gráfica (GUI) gratuita e de código aberto incluída como parte do Microsoft .NET , .NET Framework ou Mono Framework , fornecendo uma plataforma para escrever aplicativos cliente para desktops, laptops e tablets. Embora seja visto como um substituto para o Microsoft Foundation Class Library anterior e mais complexo baseado em C ++ , ele não oferece um paradigma comparável e apenas atua como uma plataforma para a camada de interface do usuário em uma solução multicamadas .

No evento Microsoft Connect em 4 de dezembro de 2018, a Microsoft anunciou o lançamento do Windows Forms como um projeto de código aberto no GitHub . É lançado sob a licença do MIT . Com esta versão, o Windows Forms tornou-se disponível para projetos voltados para a estrutura .NET Core . No entanto, a estrutura ainda está disponível apenas na plataforma Windows, e a implementação incompleta do Mono do Windows Forms continua sendo a única implementação multiplataforma.

Arquitetura

Esta API é parte do .NET Framework 3.0

Um aplicativo Windows Forms é um aplicativo orientado a eventos com suporte pelo .NET Framework da Microsoft . Ao contrário de um programa em lote , ele passa a maior parte do tempo simplesmente esperando que o usuário faça algo, como preencher uma caixa de texto ou clicar em um botão . O código do aplicativo pode ser escrito em uma linguagem de programação .NET, como C # ou Visual Basic .

O Windows Forms fornece acesso aos controles comuns da interface de usuário nativa do Windows , envolvendo a API do Windows existente em código gerenciado . Com a ajuda do Windows Forms, o .NET Framework fornece uma abstração mais abrangente acima da API do Win32 do que o Visual Basic ou o MFC.

O Windows Forms é semelhante à biblioteca Microsoft Foundation Class (MFC) no desenvolvimento de aplicativos cliente. Ele fornece um wrapper que consiste em um conjunto de classes C ++ para o desenvolvimento de aplicativos Windows. No entanto, ele não fornece uma estrutura de aplicativo padrão como o MFC. Cada controle em um aplicativo Windows Forms é uma instância concreta de uma classe.

Recursos

Todos os elementos visuais na biblioteca de classes do Windows Forms derivam da classe Control. Isso fornece a funcionalidade mínima de um elemento de interface do usuário, como localização, tamanho, cor, fonte, texto, bem como eventos comuns como clicar e arrastar / soltar. A classe Control também tem suporte de encaixe para permitir que um controle reorganize sua posição sob seu pai. O suporte do Microsoft Active Accessibility na classe Control também ajuda os usuários com deficiência a usar melhor os Formulários do Windows.

Além de fornecer acesso a controles nativos do Windows, como botão, caixa de texto, caixa de seleção e exibição de lista, o Windows Forms adicionou seus próprios controles para hospedagem ActiveX , arranjo de layout, validação e vinculação de dados ricos. Esses controles são renderizados usando GDI +.

História e futuro

Assim como o Abstract Window Toolkit (AWT), a API Java equivalente , o Windows Forms foi uma maneira rápida e fácil de fornecer componentes de interface gráfica do usuário ao .NET Framework . O Windows Forms é construído na API do Windows existente e alguns controles apenas envolvem componentes básicos do Windows. Alguns dos métodos permitem acesso direto a retornos de chamada Win32 , que não estão disponíveis em plataformas não Windows.

No .NET Framework 2.0, o Windows Forms ganhou controles de layout mais ricos, controles de barra de ferramentas no estilo do Office 2003, componente multithreading, tempo de design mais rico e suporte de vinculação de dados, bem como ClickOnce para implantação baseada na web.

Com o lançamento do .NET 3.0, a Microsoft lançou uma segunda API paralela para renderizar GUIs: Windows Presentation Foundation (WPF) baseada em DirectX, junto com uma linguagem declarativa de GUI chamada XAML .

Durante uma sessão de perguntas e respostas na Conferência Build 2014 , a Microsoft explicou que o Windows Forms estava em modo de manutenção, sem novos recursos sendo adicionados, mas os bugs encontrados ainda seriam corrigidos. Mais recentemente, o suporte aprimorado de alto DPI para vários controles do Windows Forms foi introduzido nas atualizações do .NET Framework versão 4.5.

Compatibilidade com versões anteriores de XAML com Windows Forms

Para o desenvolvimento futuro, a Microsoft conseguiu o Windows Forms com uma entrada GUI baseada em XAML usando estruturas como WPF e UWP . No entanto, o posicionamento de arrastar e soltar dos componentes da GUI de maneira semelhante ao Windows Forms ainda é fornecido em XAML, substituindo o elemento XAML raiz da Página / Janela por um controle de IU "Canvas". Ao fazer essa alteração, o usuário pode construir uma janela de maneira semelhante ao Windows Forms, arrastando e soltando diretamente os componentes usando a GUI do Visual Studio.

Embora o XAML forneça compatibilidade retroativa de posicionamento de arrastar e soltar por meio do Controle de Tela, os Controles XAML são semelhantes apenas aos Controles de Formulários do Windows e não são compatíveis com versões anteriores um-para-um. Eles executam funções semelhantes e têm uma aparência semelhante, mas as propriedades e métodos são diferentes o suficiente para exigir o remapeamento de uma API para outra.

Implementação alternativa

Mono é um projeto liderado por Xamarin (anteriormente por Ximian , depois Novell ) para criar um conjunto de ferramentas compatível com .NET Framework compatível com o padrão Ecma .

Em 2011, o suporte do Mono para System.Windows.Forms a partir do .NET 2.0 foi anunciado como completo; System.Windows.Forms 2.0 funciona nativamente no Mac OS X. No entanto, System.Windows.Forms não foi desenvolvido ativamente no Mono. A compatibilidade total com .NET não era possível, porque o System.Windows Forms da Microsoft é principalmente um invólucro em torno da API do Windows , e alguns dos métodos permitem acesso direto a callbacks do Win32 , que não estão disponíveis em plataformas diferentes do Windows. Um problema mais significativo é que, desde a versão 5.2, o Mono foi atualizado para que seu padrão seja assumir uma plataforma de 64 bits. No entanto, System.Windows.Forms on Mono para a plataforma Macintosh OS X foi criado usando um subsistema de 32 bits, Carbon . A partir desta data, uma versão de 64 bits de System.Windows.Forms para uso no Mac OS X permanece indisponível e apenas aplicativos .NET construídos para a plataforma de 32 bits podem ser executados.

Veja também

Referências

links externos