Это две совершенно разные технологии. Они предлагают некоторые уровни взаимодействия в обоих направлениях, но кроме этого не имеют ничего общего. 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 во всех аспектах. Я просто хотел бы, чтобы индустрия программного обеспечения в целом адаптировала его в более широком масштабе! (Хотя больше никто не пишет настольные приложения, так как у нас есть сеть.)