Что это простыми словами

WPF — это инструмент для создания программ, которые запускаются на компьютере с Windows. Не сайты, не мобильные приложения, а именно настольные программы: текстовые редакторы, плееры, бухгалтерия, кассовые системы, программы управления оборудованием.

Аналогия: как React помогает собирать сайт из готовых блоков, так WPF помогает собирать программу для Windows из кнопок, форм, таблиц и графики. Интерфейс описывают отдельно от логики — дизайнер рисует внешний вид, программист пишет код, и они не мешают друг другу.

Полное название — Windows Presentation Foundation. Создан Microsoft как замена старому WinForms.

Официальное определение

Теперь, когда суть понятна, вот как WPF описывают в вакансиях и документации. Эту формулировку вы встретите у заказчика и в резюме.

«WPF — декларативный фреймворк для построения desktop-приложений на Windows с использованием XAML-разметки, data binding и паттерна MVVM».

Разберём по словам. «Desktop-приложения» — программы, которые устанавливают и запускают на компьютере, а не открывают в браузере. «Декларативный» — разработчик описывает, каким должен быть интерфейс, а не расписывает пошагово, как его нарисовать. «XAML» — язык разметки для описания интерфейса, похож на HTML для сайтов. «Data binding» — автоматическая связь данных с элементами интерфейса: изменилось число в коде — обновилось на экране, и наоборот. «MVVM» — способ разделения интерфейса и логики, чтобы дизайнер и программист работали независимо.

Зачем нужен и какую задачу решает

До WPF программы для Windows делали на WinForms — старой технологии с ограниченными возможностями дизайна. Хотели красивую кнопку с тенью и анимацией — приходилось мучиться. WPF это исправил: современная графика, плавные переходы, гибкая вёрстка, поддержка сенсорных экранов и 3D — всё встроено.

Главная боль, которую решает WPF: разделение внешнего вида и логики. Дизайнер меняет интерфейс в XAML, программист пишет код — они не ломают друг другу работу. Это особенно важно в больших сложных программах: ERP-системы, медицинские приложения, инженерное ПО.

К кому относится: язык, специальность, экосистема

WPF работает на языке C#. Специальность — desktop-разработчик или «WPF-разработчик». Это не backend и не веб: человек делает программы, которые живут на компьютере пользователя.

Важно: C# — кросс-доменный язык. На нём пишут backend (ASP.NET Core), игры (Unity), мобильные приложения (MAUI) и desktop (WPF). «Знаю C#» — недостаточная информация: backend-разработчик на C# и WPF-разработчик — это разные люди с разным опытом.

Экосистема WPF:

С чем взаимозаменяем

Главные конкуренты WPF в мире C#:

За пределами C#: Electron (на веб-технологиях), Qt (на C++), JavaFX (на Java).

Переход между WPF, WinForms и MAUI дорогой: они устроены по-разному, опыт переносится частично. WPF-разработчик не равен MAUI-разработчику, даже если оба знают C#. Это повод отсеивать при найме.

Что не путать

Насколько это важно при отборе

Короткий ответ: для desktop-вакансий — жёсткий фильтр.

Если вакансия требует WPF, это значит «делать desktop-программы для Windows». Опыт с WPF критичен, потому что это специфическая область: XAML, data binding, MVVM, работа с desktop API — всё это нужно знать. Предлагать на такую вакансию backend-разработчика на C# или Unity-разработчика — ошибка: язык один, а задачи и инструменты совсем другие.

И наоборот: если ищете backend-разработчика на C# (ASP.NET Core), опыт с WPF не поможет. Отсеивать кандидатов по фреймворку — нормальная практика.

Отдельная ситуация: WPF против WinForms или MAUI. Если кандидат знает WinForms, но не WPF — переход возможен, но займёт время. MVVM и XAML придётся учить с нуля. Если знает MAUI — ближе к WPF (оба используют XAML), но разница всё равно есть.

Библиотеки внутри WPF (Prism, Caliburn.Micro, MahApps) взаимозаменяемы: требовать конкретную при наличии опыта с аналогом — перебор.

Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.