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