Windows Form - Windows Forms

Windows Form (WinForms)
Screenshot di WinForms Designer visto in Visual Studio 2019.png
Altri nomi WinForms
Autori originali .NET : Microsoft ,
Mono : Ximian / Novell
Sviluppatore/i Fondazione .NET
Versione iniziale 13 febbraio 2002 ; 19 anni fa ( 2002-02-13 )
Rilascio stabile
v5.0.0-rtm.20520.1 / 20 ottobre 2020 ; 10 mesi fa ( 2020-10-20 )
Repository
Scritto in C#
Sistema operativo Microsoft Windows
piattaforma .NET Framework , .NET Core
Tipo Struttura software
Licenza Licenza MIT
Sito web docs .microsoft .com /en-us /dotnet /framework /winforms /

Windows Forms (WinForms) è una libreria di classi grafica (GUI) gratuita e open source inclusa come parte di Microsoft .NET , .NET Framework o Mono Framework , che fornisce una piattaforma per scrivere applicazioni client per desktop, laptop e tablet PC. Sebbene sia visto come un sostituto della precedente e più complessa libreria Microsoft Foundation Class basata su C++ , non offre un paradigma comparabile e funge solo da piattaforma per il livello dell'interfaccia utente in una soluzione multilivello .

All'evento Microsoft Connect del 4 dicembre 2018, Microsoft ha annunciato il rilascio di Windows Form come progetto open source su GitHub . È rilasciato sotto la licenza MIT . Con questa versione, Windows Forms è diventato disponibile per i progetti destinati al framework .NET Core . Tuttavia, il framework è ancora disponibile solo sulla piattaforma Windows e l' implementazione incompleta di Windows Form da parte di Mono rimane l'unica implementazione multipiattaforma.

Architettura

Questa API fa parte di .NET Framework 3.0

Un'applicazione Windows Forms è un'applicazione basata su eventi supportata da .NET Framework di Microsoft . A differenza di un programma batch , trascorre la maggior parte del tempo semplicemente aspettando che l'utente faccia qualcosa, come riempire una casella di testo o fare clic su un pulsante . Il codice per l'applicazione può essere scritto in un linguaggio di programmazione .NET come C# o Visual Basic .

Windows Forms fornisce l'accesso ai controlli comuni dell'interfaccia utente Windows nativa racchiudendo l' API Windows esistente nel codice gestito . Con l'aiuto di Windows Form, .NET Framework fornisce un'astrazione più completa rispetto all'API Win32 rispetto a Visual Basic o MFC.

Windows Form è simile alla libreria Microsoft Foundation Class (MFC) nello sviluppo di applicazioni client. Fornisce un wrapper costituito da un insieme di classi C++ per lo sviluppo di applicazioni Windows. Tuttavia, non fornisce un framework applicativo predefinito come MFC. Ogni controllo in un'applicazione Windows Form è un'istanza concreta di una classe.

Caratteristiche

Tutti gli elementi visivi nella libreria di classi Windows Form derivano dalla classe Control. Ciò fornisce la funzionalità minima di un elemento dell'interfaccia utente come posizione, dimensione, colore, carattere, testo, nonché eventi comuni come clic e trascina/rilascia. La classe Control ha anche il supporto per l'attracco per consentire a un controllo di riorganizzare la sua posizione sotto il suo genitore. Il supporto di Microsoft Active Accessibility nella classe Control aiuta anche gli utenti con problemi a utilizzare meglio Windows Forms.

Oltre a fornire l'accesso ai controlli nativi di Windows come pulsante, casella di testo, casella di controllo e visualizzazione elenco, Windows Forms ha aggiunto i propri controlli per l' hosting ActiveX , la disposizione del layout, la convalida e l'associazione dati avanzata. Questi controlli sono resi utilizzando GDI +.

Storia e futuro

Proprio come Abstract Window Toolkit (AWT), l' API Java equivalente , Windows Forms è stato un modo semplice e precoce per fornire componenti dell'interfaccia utente grafica a .NET Framework . Windows Forms è basato sull'API di Windows esistente e alcuni controlli si limitano a racchiudere i componenti di Windows sottostanti. Alcuni dei metodi consentono l'accesso diretto ai callback Win32 , che non sono disponibili nelle piattaforme non Windows.

In .NET Framework 2.0, Windows Form ha ottenuto controlli del layout più completi, controlli della barra degli strumenti in stile Office 2003, componente multithreading, supporto più completo per la fase di progettazione e l'associazione dei dati, nonché ClickOnce per la distribuzione basata sul Web.

Con il rilascio di .NET 3.0, Microsoft ha rilasciato una seconda API parallela per il rendering delle GUI: Windows Presentation Foundation (WPF) basata su DirectX, insieme a un linguaggio dichiarativo della GUI chiamato XAML .

Durante una sessione di domande e risposte alla conferenza Build 2014 , Microsoft ha spiegato che Windows Forms era in modalità di manutenzione, senza l'aggiunta di nuove funzionalità, ma i bug rilevati sarebbero stati comunque corretti. Più di recente, negli aggiornamenti a .NET Framework versione 4.5 è stato introdotto un supporto DPI elevato migliorato per vari controlli Windows Form.

Compatibilità con le versioni precedenti di XAML con Windows Forms

Per lo sviluppo futuro, Microsoft ha sostituito Windows Forms con una voce GUI basata su XAML utilizzando framework come WPF e UWP . Tuttavia, il posizionamento di trascinamento dei componenti della GUI in modo simile a Windows Form viene ancora fornito in XAML sostituendo l'elemento XAML radice della pagina/finestra con un controllo dell'interfaccia utente "Canvas". Quando si apporta questa modifica, l'utente può creare una finestra in modo simile a quello di Windows Form trascinando e rilasciando direttamente i componenti utilizzando la GUI di Visual Studio.

Sebbene XAML fornisca la compatibilità con le versioni precedenti del posizionamento tramite trascinamento tramite il controllo Canvas, i controlli XAML sono simili solo ai controlli Windows Form e non sono retrocompatibili uno a uno. Eseguono funzioni simili e hanno un aspetto simile, ma le proprietà e i metodi sono abbastanza diversi da richiedere la rimappatura da un'API all'altra.

Implementazione alternativa

Mono è un progetto guidato da Xamarin (precedentemente da Ximian , poi Novell ) per creare un set di strumenti compatibile con .NET Framework conforme allo standard Ecma .

Nel 2011, il supporto di Mono per System.Windows.Forms a partire da .NET 2.0 è stato annunciato come completo; System.Windows.Forms 2.0 funziona in modo nativo su Mac OS X. Tuttavia, System.Windows.Forms non è stato sviluppato attivamente su Mono. La piena compatibilità con .NET non è stata possibile, perché System.Windows Forms di Microsoft è principalmente un wrapper per l' API di Windows e alcuni metodi consentono l'accesso diretto ai callback Win32 , che non sono disponibili in piattaforme diverse da Windows. Un problema più significativo è che, dalla versione 5.2, Mono è stato aggiornato in modo che la sua impostazione predefinita presuma una piattaforma a 64 bit. Tuttavia, System.Windows.Forms su Mono per la piattaforma Macintosh OS X è stato creato utilizzando un sottosistema a 32 bit, Carbon . A partire da questa data, una versione a 64 bit di System.Windows.Forms per l'utilizzo su Mac OS X rimane non disponibile e solo le applicazioni .NET create per la piattaforma a 32 bit possono essere eseguite.

Guarda anche

Riferimenti

link esterno