Це дві абсолютно різні технології. Вони дійсно пропонують деякі рівні сумісності в обох напрямках, але крім цього вони не мають нічого спільного. Windows Forms - це більш-менш легка обгортка поверх Win32 / MFC , що означає, що її розширюваність у .NET не настільки хороша у всіх випадках. WPF - це нова структура інтерфейсу користувача, реалізована з нуля. WPF також набагато гнучкіший, коли йдеться про налаштування існуючих типів.
Однак, принаймні з мого досвіду, Windows Forms, здається, є найбільш часто використовуваною структурою інтерфейсу робочого столу в галузі. Windows Forms не можна використовувати для веб-розробки, хоча WPF пропонує програми Silverlight та XBAP.
Якщо ви вже розробляли будь-який інтерфейс, то смію стверджувати, що Windows Forms легше засвоювати, оскільки він відповідає більш традиційним парадигмам програмування. Модель програмування WPF зовсім інша. Хоча WPF можна використовувати так само, як і Windows Forms, більшість його переваг не досягаються, поки ви не охопите прив'язку та інкапсуляцію даних, яку надає WPF.
Незважаючи на те, що я зазначив деякі моменти на користь Windows Forms, вибір WPF порівняно з Windows Forms для мене було б неважко, якщо все, що ви хочете зробити, це вивчити структуру інтерфейсу користувача. У всіх аспектах він перевершує Windows Forms. Я б просто хотів, щоб індустрія програмного забезпечення загалом адаптувала його в більших масштабах! (Хоча вже не так, як хтось пише настільні програми, оскільки ми отримали Інтернет.)