Windows Forms

Windows Forms
Логотип программы Windows Forms
Скриншот программы Windows Forms
Редактор форм Windows Forms в составе Visual Studio 2022
Тип библиотека виджетов[d] и фреймворк
Разработчик 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.

Архитектура

Этот API является частью .NET Framework 3.0

Приложение Windows Forms представляет собой событийно-ориентированное приложение, поддерживаемое Microsoft .NET Framework. В отличие от пакетных программ, большая часть времени тратится на ожидание от пользователя каких-либо действий, как, например, ввод текста в текстовое поле или клика мышкой по кнопке.

Альтернативные реализации

Mono — проект, финансируемый Novell (ранее — Ximian), одна из задач которого — создать стандарт Ecma, совместимый с набором инструментов .NET.

13 мая 2008 года API Mono System.Windows.Forms 2.0 была завершена (содержала 100 % классов, методов и т. д. из Microsoft System.Windows.Forms 2.0); также System.Windows.Forms 2.0 естественным образом работает и на Mac OS X.

См. также

Примечания

  1. Release 8.0.4 — 2024.
  2. https://api.github.com/repos/dotnet/winforms

Ссылки

  • MSDN: Windows.Forms reference documentation  (англ.)
  • MSDN: Windows Forms Technical Articles — Automating Windows Form with Visual Test  (англ.)
  • Official community site  (англ.)
  • Jeff Prosise: «Windows Forms: Современная модель программирования для создания GUI приложений»
Перейти к шаблону «.NET»
.NET
Реализации
Архитектура
Инфраструктура
Языки Microsoft
Другие языки
Windows Foundations
Компоненты
Сравнения
Будущие технологии
Информационные ресурсы
Перейти к шаблону «Свободное и открытое программное обеспечение Microsoft»
Общая информация
Программное
обеспечение
Приложения
Игры
  • Allegiance[англ.]
Языки
программирования
Фреймворки и
средства разработки
Операционные
системы
Прочее
  • ChronoZoom
  • Project Mu
  • SILK
  • TLAPS
  • TPM 2.0 Reference Implementation
  • WikiBhasha
Лицензии
Связанные темы
  • .NET Foundation
  • F Sharp Software Foundation
  • Microsoft Open Specification Promise
  • Outercurve Foundation
Категория Категория
Перейти к шаблону «Инструментарии виджетов»
Инструментарии (наборы) элементов графического интерфейса
Низко-
уровневые
Высоко-
уровневые
Amiga OS
Mac OS и
macOS
  • Cocoa
  • MacApp
  • MacZoop
  • PowerPlant
Windows
UNIX, под X
Кросс-
платфор-
менные
На основе Flash
На основе XML,
AJAX или SVG
На основе Java
На основе
C или C++
На основе Common Lisp
На основе Pascal
На основе Python
На основе Objective C