WPF или Windows Forms

Я играю с консольными приложениями С# около года, и я хочу перейти к созданию графических приложений. Я никогда не делал никакого графического интерфейса, кроме базовых приложений Java, но я хочу продолжить использование С#. Должен ли я начать изучать Windows Forms или перейти прямо к WPF? Есть ли огромная разница? Создает ли WPF поверх Windows Forms или они совершенно разные?

Ответ 1

Если вы только начинаете, прыгайте прямо в WPF.

Это позволит вам начать создавать богатые интерфейсы, используя разметку, чтобы определить свой интерфейс, не обучая вас возможным вредным привычкам (для WPF), которые вы узнаете из Windows Forms.

Ответ 2

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

Ответ 3

WPF предоставляет очень богатые возможности для создания чрезвычайно сложных пользовательских интерфейсов. Это упрощает интеграцию аппаратно-ускоренной графики в вашем интерфейсе. Тем не менее, дизайнер WPF Visual Studio действительно плохой (я почти никогда его не использую). Я также считаю, что WPF намного сложнее, и начать с него сложнее. Но это, конечно, субъективно.

Ответ 4

Обе технологии имеют свои pro и con.

WPF лучше подходит для кросс-платформенной разработки и создания "кричащих" графических интерфейсов. Однако для этого требуется более новая инфраструктура .net, чем WinForms, и для нее требуется совместимый с dx9 графический процессор или выше (что большинство людей будет иметь).

Но это немного больше связано с созданием интерфейса/подключением всех событий и т.д.

WinForms по-прежнему является мощной технологией, которая часто может быть разработана быстрее, чем WPF. В конце концов, обе технологии могут использоваться для достижения того же. Однако WPF является "новым" Стандарт.

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