Windows Forms
| Windows Forms | |
|---|---|
![]() | |
Редактор форм Windows Forms в составе Visual Studio 2022 | |
| Тип | библиотека виджетов[вд] и фреймворк |
| Разработчик | Microsoft |
| Написана на | C# и Visual Basic |
| Аппаратные платформы | .NET Framework и .NET |
| Последняя версия | |
| Репозиторий | github.com/dotnet/winfor… |
| Лицензия | лицензия MIT[2] |
Windows Forms —интерфейс программирования приложений (API), отвечающий заграфический интерфейс пользователя и являющийся частьюMicrosoft.NET Framework. Данный интерфейс упрощает доступ к элементам интерфейсаMicrosoft Windows за счет создания обёртки для существующегоWin32 API вуправляемом коде. Причём управляемый код — классы, реализующиеAPI для Windows Forms, не зависят от языка разработки. То есть программист одинаково может использовать Windows Forms как при написании ПО на C#, C++, так и на VB.Net, J# и др.
С одной стороны, Windows Forms рассматривается как замена более старой и сложной библиотекеMFC, изначально написанной на языкеC++. С другой стороны, WF не предлагает парадигмы, сравнимой сMVC. Для исправления этой ситуации и реализации данной функциональности в WF существуют сторонние библиотеки. Одной из наиболее используемых подобных библиотек являетсяUser Interface Process Application Block, выпущенная специальной группой Microsoft, занимающейся примерами и рекомендациями, для бесплатного скачивания. Эта библиотека также содержит исходный код и обучающие примеры для ускорения обучения.
Внутри .NET Framework Windows Forms реализуется в рамкахпространства имёнSystem.Windows.Forms.
История и развитие
[править |править код]Как иAbstract Window Toolkit (AWT) (схожий API для языкаJava), библиотека Windows Forms была разработана как часть.NET Framework для упрощения разработки компонентовграфического интерфейса пользователя. Windows Forms построена на основе устаревающегоWindows API и представляет собой, по сути, обертку низкоуровневых компонентов Windows.
Windows Forms предоставляет возможность разработкикроссплатформенного графического пользовательского интерфейса. Однако, Windows Forms фактически является лишь оберткой Windows API-компонентов, и ряд её методов осуществляет прямой доступ к Win32-функциям обратного вызова, которые недоступны на других платформах.
В .NET Framework версии 2.0 библиотека Windows Forms получила более богатый инструментарий разработки интерфейсов, toolstrip-элементы интерфейса в стилеOffice 2003, поддержку многопоточности, расширенные возможности проектирования и привязки к данным, а также поддержку технологииClickOnce для развертывания веб-приложений.
С выходом.NET Framework 3.0 Microsoft выпустила новый API для рисования пользовательских интерфейсов:Windows Presentation Foundation, который базировался наDirectX 11 и декларативном языке описания интерфейсовXAML. Однако, даже несмотря на все это, Windows Forms и WPF всё ещё предлагают схожую функциональность, и поэтому Windows Forms не был упразднен в пользу WPF, а продолжает использоваться как альтернативная технология построения интерфейсов наряду с WPF.
Отвечая на вопросы на конференцииBuild 2014, Майкрософт пояснила, что Windows Forms будет поддерживаться, ошибки будут исправляться, но новые функции добавляться не будут. Позже улучшенная поддержка высокого разрешения для различных элементов интерфейса Windows Forms все же была анонсирована в релизе.NET Framework 4.5.
Архитектура
[править |править код]
Приложение Windows Forms представляет собойсобытийно-ориентированное приложение, поддерживаемое Microsoft.NET Framework. В отличие отпакетных программ, большая часть времени тратится на ожидание от пользователя каких-либо действий, как, например, ввод текста втекстовое поле или клика мышкой покнопке.
Альтернативные реализации
[править |править код]Mono — проект, финансируемыйNovell (ранее —Ximian), одна из задач которого — создать стандартEcma, совместимый с набором инструментов.NET.
13 мая 2008 года APIMono System.Windows.Forms 2.0 была завершена (содержала 100 % классов, методов и т. д. из Microsoft System.Windows.Forms 2.0); также System.Windows.Forms 2.0 естественным образом работает и на Mac OS X.
См. также
[править |править код]- Microsoft Visual Studio
- ClickOnce
- Abstract Window Toolkit
- Visual Component Library (VCL)
- Visual Test, инструмент автоматизации тестирования ГПИ
