Vés al contingut

Windows Forms

De la Viquipèdia, l'enciclopèdia lliure
Windows Forms

Tipusjoc de ginys i entorn de treball Modifica el valor a Wikidata
Versió estable
10.0.0 (11 novembre 2025) Modifica el valor a Wikidata
Llicènciallicència MIT Modifica el valor a Wikidata
Característiques tècniques
PlataformaMicrosoft .NET i .NET Modifica el valor a Wikidata
Escrit enC# i Visual Basic Modifica el valor a Wikidata
Més informació
Stack ExchangeEtiqueta Modifica el valor a Wikidata

Windows Forms, també conegut com a WinForms, és una biblioteca de classes d'interfície gràfica d'usuari (GUI) de codi obert i gratuïta per crear aplicacions d'escriptori de Windows, inclosa com a part de Microsoft.NET,.NET Framework o Mono,[1] que proporciona una plataforma per escriure aplicacions client per a ordinadors d'escriptori, portàtils i tauletes.[2] Tot i que es considera un substitut de l'anterior i més complexa Microsoft Foundation Class Library basada en C++, no ofereix un paradigma comparable[3] i només actua com a plataforma per al nivell d'interfície d'usuari en una solució multinivell.[4]

A l'esdeveniment Microsoft Connect del 4 de desembre de 2018, Microsoft va anunciar el llançament de Windows Forms com a projecte de codi obert a GitHub. Està publicat sota la llicència MIT. Amb aquest llançament, Windows Forms ha passat a estar disponible per a projectes dirigits al framework.NET Core. Tanmateix, el framework encara només està disponible a la plataforma Windows, i la implementació incompleta de Windows Forms per part de Mono continua sent l'única implementació multiplataforma.[5][6]

Arquitectura

[modifica]
Aquesta API forma part de.NET Framework 3.0

Una aplicació Windows Forms és una aplicació basada en esdeveniments compatible amb.NET Framework de Microsoft. A diferència d'un programa per lots, passa la major part del temps simplement esperant que l'usuari faci alguna cosa, com ara omplir un quadre de text o fer clic a un botó. El codi de l'aplicació es pot escriure en un llenguatge de programació.NET com ara C# o Visual Basic.

El Windows Forms proporciona accés als controls comuns de la interfície d'usuari de Windows nadius mitjançant l'embolcall de l'API de Windows existent en codi gestionat.[7] Amb l'ajuda del Windows Forms, el.NET Framework proporciona una abstracció més completa per sobre de l'API de Win32 que el que feien el Visual Basic o l'MFC.[8]

El Windows Forms és similar a la biblioteca Microsoft Foundation Class (MFC) en el desenvolupament d'aplicacions client. Proporciona un contenidor que consisteix en un conjunt de classes C++ per al desenvolupament d'aplicacions de Windows. Tanmateix, no proporciona un marc de treball d'aplicació per defecte com el MFC. Cada control d'una aplicació Windows Forms és una instància concreta d'una classe.

Característiques

[modifica]

Tots els elements visuals de la biblioteca de classes de Windows Forms deriven de la classe Control. Aquesta proporciona la funcionalitat mínima d'un element d'interfície d'usuari, com ara la ubicació, la mida, el color, la font, el text, així com esdeveniments comuns com ara fer clic i arrossegar/deixar anar. La classe Control també té compatibilitat amb l'acoblament per permetre que un control reorganitzi la seva posició sota el seu pare. La compatibilitat amb Microsoft Active Accessibility a la classe Control també ajuda els usuaris amb discapacitats a utilitzar millor Windows Forms.[9]

A Visual Studio, els formularis es creen mitjançant tècniques d'arrossegar i deixar anar. S'utilitza una eina per col·locar controls (per exemple, quadres de text, botons, etc.) al formulari (finestra). Els controls tenen atributs i controladors d'esdeveniments associats. Els valors per defecte es proporcionen quan es crea el control, però el programador els pot canviar. Molts valors d'atributs es poden modificar durant el temps d'execució en funció de les accions de l'usuari o dels canvis a l'entorn, proporcionant una aplicació dinàmica. Per exemple, es pot inserir codi al controlador d'esdeveniments de redimensionament del formulari per reposicionar un control de manera que romangui centrat al formulari, s'expandeixi per omplir el formulari, etc. En inserir codi al controlador d'esdeveniments per a una pulsació de tecla en un quadre de text, el programa pot traduir automàticament la majúscula i minúscula del text que s'introdueix o fins i tot impedir que s'insereixin certs caràcters.

A més de proporcionar accés a controls nadius de Windows com ara botons, quadres de text, caselles de selecció i vista de llista, Windows Forms ha afegit els seus propis controls per a l'allotjament ActiveX, la disposició del disseny, la validació i l'enllaç de dades enriquit. Aquests controls es renderitzen mitjançant GDI+.[10]

Història i futur

[modifica]

Igual que Abstract Window Toolkit (AWT), l'API equivalent de Java, Windows Forms va ser una manera primerenca i fàcil de proporcionar components d'interfície gràfica d'usuari al.NET Framework. Windows Forms es basa en l'API de Windows existent i alguns controls simplement envolten els components subjacents de Windows.[11] Alguns dels mètodes permeten l'accés directe a les retrollamades de Win32, que no estan disponibles en plataformes que no són Windows.[11]

A.NET Framework 2.0, els Windows Forms van obtenir controls de disseny més rics, controls de barra d'eines d'estil Office 2003, components de multithreading, compatibilitat més rica en temps de disseny i enllaç de dades, així com ClickOnce per a la implementació basada en web.[12][13]

Amb el llançament de.NET Framework 3.0, Microsoft va llançar una segona API paral·lela per renderitzar GUI: Windows Presentation Foundation (WPF) basada en DirectX,[14] juntament amb un llenguatge declaratiu GUI anomenat XAML.[15]

Durant una sessió de preguntes i respostes a la conferència Build 2014, Microsoft va explicar que Windows Forms estava en mode de manteniment, sense afegir noves funcions, però que els errors trobats es corregirien.[16] Recentment, s'ha introduït una millora de la compatibilitat amb DPI alts per a diversos controls de Windows Forms a les actualitzacions de la versió 4.5 de.NET Framework.[17]

Referències

[modifica]
  1. Sells, Chris. Windows Forms Programming in C# (en anglès). 1st. Addison-Wesley Professional, September 6, 2003, p. xxxviiii. 
  2. «Design and Implementation Guidelines for Web Clients by Microsoft Pattern and Practices» (en anglès). Microsoft, 01-11-2003.
  3. Sells, Chris. «Appendix B». A: Moving from MFC, Windows Forms 2.0 Programming (en anglès). 2nd. Addison-Wesley Professional, May 16, 2006. 
  4. «Introduction to Windows Forms» (en anglès). Microsoft 2003.
  5. Martin, Jeff. «Microsoft Open Sources WPF, WinForms, and WinUI» (en anglès). InfoQ, 04-12-2018. [Consulta: 6 desembre 2018].
  6. Hanselman, Scott. «Announcing WPF, WinForms, and WinUI are going Open Source» (en anglès), 04-12-2018. [Consulta: 6 desembre 2018].
  7. De Smet, Bart. «Chapter 5». A: C# 4.0 Unleashed (en anglès). Sams Publishing, January 4, 2011. 
  8. Griffiths, Ian. NET Windows Forms in a Nutshell (en anglès). O'Reilly Media, March 2003, p. 4. 
  9. Griffiths, Ian. NET Windows Forms in a Nutshell (en anglès). O'Reilly Media, March 2003, p. 27–53. 
  10. Griffiths, Ian. NET Windows Forms in a Nutshell (en anglès). O'Reilly Media, March 2003, p. 27–53. 
  11. 11,0 11,1 «FAQ: Winforms» (en anglès). mono-project.com.
  12. Sells, Chris. «Appendix A. What s New in Windows Forms 2.0». A: Windows Forms 2.0 Programming (en anglès). 2nd. Addison-Wesley Professional, May 16, 2006. 
  13. Noyes, Brian. «Preface». A: Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET (en anglès). 1st. Addison-Wesley Professional, January 12, 2006. ISBN 978-81-317-4823-7. 
  14. Hall, Gary. «DirectX, not GDI+». A: Pro WPF and Silverlight MVVM: Effective Application Development with Model (en anglès). 2010. Apress, December 27, 2010, p. 2. 
  15. Smith, Josh. «WPF vs. Windows Forms» (en anglès). Josh Smith on WPF, 05-09-2007. [Consulta: 25 agost 2011].
  16. «A WPF Q&A» (en anglès). infoq.com, 03-04-2014. [Consulta: 21 abril 2014].
  17. Allen, Jonathan. «High DPI Improvements for Windows Forms in .NET 4.5.2» (en anglès). InfoQ, 06-05-2014. [Consulta: 10 febrer 2015].