Formulários do Windows - Windows Forms
Outros nomes | WinForms |
---|---|
Autor (es) original (is) |
.NET : Microsoft , Mono : Ximian / Novell |
Desenvolvedor (s) | .NET Foundation |
lançamento inicial | 13 de fevereiro de 2002 |
Versão estável | v5.0.0-rtm.20520.1 / 20 de outubro de 2020
|
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 |
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
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
- Microsoft Visual Studio
- ClickOnce
- Abstract Window Toolkit (AWT), a interface de programação de aplicativos (API) GUI equivalente para a linguagem de programação Java
- Biblioteca de componentes visuais (VCL) da Borland
- Teste visual , automação de teste