Formularze systemu Windows — Windows Forms

Formularze Windows (WinForms)
Zrzut ekranu programu WinForms Designer w programie Visual Studio 2019.png
Inne nazwy WinForms
Pierwotny autor (autorzy) .NET : Microsoft ,
Mono : Ximian / Novell
Deweloper(zy) Fundacja .NET
Pierwsze wydanie 13 lutego 2002 ; 19 lat temu ( 2002-02-13 )
Wersja stabilna
v5.0.0-rtm.20520.1 / 20 października 2020 ; 10 miesięcy temu ( 2020-10-20 )
Magazyn
Napisane w C#
System operacyjny Microsoft Windows
Platforma .NET Framework , .NET Core
Rodzaj Ramy oprogramowania
Licencja Licencja MIT
Strona internetowa dokumenty .microsoft .com /en-us /dotnet /framework /winforms /

Windows Forms (WinForms) to bezpłatna i graficzna biblioteka klas typu open source (GUI) zawarta jako część Microsoft .NET , .NET Framework lub Mono Framework , zapewniająca platformę do pisania aplikacji klienckich na komputery stacjonarne, laptopy i tablety. Chociaż jest postrzegana jako zamiennik wcześniejszej i bardziej złożonej biblioteki klas Microsoft Foundation Class Library opartej na C++ , nie oferuje porównywalnego paradygmatu i działa jedynie jako platforma dla warstwy interfejsu użytkownika w rozwiązaniu wielowarstwowym .

Podczas wydarzenia Microsoft Connect, które odbyło się 4 grudnia 2018 r., firma Microsoft ogłosiła udostępnienie Windows Forms jako projektu open source w serwisie GitHub . Jest wydany na licencji MIT . W tej wersji Windows Forms stały się dostępne dla projektów przeznaczonych dla platformy .NET Core . Jednak struktura jest nadal dostępna tylko na platformie Windows, a niekompletna implementacja Windows Forms w Mono pozostaje jedyną implementacją międzyplatformową.

Architektura

Ten interfejs API jest częścią .NET Framework 3.0

Aplikacja Windows Forms to aplikacja sterowana zdarzeniami obsługiwana przez platformę .NET Framework firmy Microsoft . W przeciwieństwie do programu wsadowego większość czasu spędza po prostu czekając, aż użytkownik coś zrobi, na przykład wypełni pole tekstowe lub kliknie przycisk . Kod aplikacji można napisać w języku programowania .NET, takim jak C# lub Visual Basic .

Windows Forms zapewnia dostęp do natywnych formantów wspólnego interfejsu użytkownika systemu Windows, otaczając istniejący interfejs API systemu Windows w kodzie zarządzanym . Za pomocą Windows Forms .NET Framework zapewnia bardziej wszechstronną abstrakcję ponad interfejsem API Win32 niż Visual Basic lub MFC.

Windows Forms jest podobny do biblioteki Microsoft Foundation Class (MFC) w opracowywaniu aplikacji klienckich. Dostarcza wrapper składający się z zestawu klas C++ do tworzenia aplikacji Windows. Nie zapewnia jednak domyślnej struktury aplikacji, takiej jak MFC. Każda kontrolka w aplikacji Windows Forms jest konkretnym wystąpieniem klasy.

Cechy

Wszystkie elementy wizualne w bibliotece klas Windows Forms pochodzą z klasy Control. Zapewnia to minimalną funkcjonalność elementu interfejsu użytkownika, taką jak lokalizacja, rozmiar, kolor, czcionka, tekst, a także typowe zdarzenia, takie jak kliknięcie i przeciągnięcie/upuszczenie. Klasa Control ma również obsługę dokowania, aby umożliwić kontrolce zmianę jej pozycji pod swoim rodzicem. Obsługa Microsoft Active Accessibility w klasie Control pomaga również użytkownikom niepełnosprawnym lepiej korzystać z Windows Forms.

Oprócz zapewniania dostępu do natywnych kontrolek Windows, takich jak przycisk, pole tekstowe, pole wyboru i widok listy, Windows Forms dodał własne kontrolki dla hostingu ActiveX , rozmieszczenia układu, walidacji i bogatego wiązania danych. Te kontrolki są renderowane za pomocą GDI +.

Historia i przyszłość

Podobnie jak Abstract Window Toolkit (AWT), odpowiednik Java API, Windows Forms był wczesnym i łatwym sposobem na dostarczenie graficznych komponentów interfejsu użytkownika do .NET Framework . Windows Forms jest zbudowany na istniejącym interfejsie API systemu Windows, a niektóre kontrolki tylko otaczają podstawowe składniki systemu Windows. Niektóre metody umożliwiają bezpośredni dostęp do wywołań zwrotnych Win32 , które nie są dostępne na platformach innych niż Windows.

W .NET Framework 2.0 Windows Forms zyskał bogatsze kontrolki układu, kontrolki paska narzędzi w stylu pakietu Office 2003, składnik wielowątkowości, bogatszą obsługę czasu projektowania i powiązań danych, a także funkcję ClickOnce do wdrażania opartego na sieci Web.

Wraz z wydaniem .NET 3.0, Microsoft wydał drugi, równoległy interfejs API do renderowania GUI: Windows Presentation Foundation (WPF) oparty na DirectX, wraz z deklaratywnym językiem GUI o nazwie XAML .

Podczas sesji pytań i odpowiedzi na konferencji Build 2014 Microsoft wyjaśnił, że Windows Forms jest w trybie konserwacji, bez dodawania żadnych nowych funkcji, ale znalezione błędy będą nadal naprawiane. Ostatnio w aktualizacjach programu .NET Framework w wersji 4.5 wprowadzono ulepszoną obsługę wysokiej rozdzielczości DPI dla różnych kontrolek Windows Forms.

XAML wsteczna kompatybilność z Windows Forms

W celu przyszłego rozwoju firma Microsoft odniosła sukces w Windows Forms z wpisem GUI opartym na XAML przy użyciu platform, takich jak WPF i UWP . Jednak umieszczanie składników GUI metodą przeciągania i upuszczania w sposób podobny do Windows Forms jest nadal udostępniane w języku XAML przez zastąpienie głównego elementu XAML strony/okna kontrolką interfejsu użytkownika „Canvas”. Podczas wprowadzania tej zmiany użytkownik może zbudować okno w podobny sposób, jak w Windows Forms, bezpośrednio przeciągając i upuszczając składniki przy użyciu graficznego interfejsu użytkownika programu Visual Studio.

Chociaż XAML zapewnia zgodność z poprzednimi wersjami umieszczania metodą przeciągania i upuszczania za pośrednictwem kontrolki kanwy, kontrolki XAML są podobne do kontrolek Windows Forms i nie są zgodne z poprzednimi wersjami jeden do jednego. Pełnią podobne funkcje i mają podobny wygląd, ale właściwości i metody są na tyle różne, że wymagają przemapowania z jednego interfejsu API do drugiego.

Alternatywne wdrożenie

Mono to projekt prowadzony przez Xamarin (wcześniej przez Ximian , a następnie przez Novella ), którego celem jest stworzenie zestawu narzędzi zgodnego ze standardem Ecma zgodnego z .NET Framework .

W 2011 r. ogłoszono , że obsługa systemu Mono dla System.Windows.Forms w wersji .NET 2.0 jest zakończona; System.Windows.Forms 2.0 działa natywnie w systemie Mac OS X. Jednak System.Windows.Forms nie był aktywnie rozwijany w systemie Mono. Pełna kompatybilność z .NET nie była możliwa, ponieważ Microsoft System.Windows Forms to głównie wrapper wokół Windows API , a niektóre metody umożliwiają bezpośredni dostęp do wywołań zwrotnych Win32 , które nie są dostępne na platformach innych niż Windows. Bardziej znaczącym problemem jest to, że od wersji 5.2 Mono zostało zaktualizowane tak, że domyślnie przyjmuje platformę 64-bitową. Jednak System.Windows.Forms on Mono dla platformy Macintosh OS X został zbudowany przy użyciu 32-bitowego podsystemu Carbon . Od tego dnia 64-bitowa wersja System.Windows.Forms do użytku w systemie Mac OS X pozostaje niedostępna i można oczekiwać, że będą działać tylko aplikacje .NET utworzone dla platformy 32-bitowej.

Zobacz też

Bibliografia

Zewnętrzne linki