WPF або Windows Forms


75

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


Я знайшов цей сайт дуже цікавим
Даніель Меллер,

Відповіді:


74

Якщо ви тільки починаєте, стрибайте прямо в WPF.

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


2
+1 Я абсолютно згоден. WPF набагато гнучкіший, ніж Windows Forms, і це довгостроковий розвиток графічного інтерфейсу. Це дуже близько до HTML у тому, як ви використовуєте XML-макет. Найкращий аргумент для Windows Forms зараз - це якщо у вас є команда розробників, яка має великий досвід її використання. WPF - це майбутнє, і воно вже швидко випереджає Windows Forms.
sidney.andrews

2
+1, але WPF можна використовувати лише з .NET 4.0+ через проблеми зі шрифтами у попередніх версіях, тому майте це на увазі для розгортання програми.
Джош,

13
@Fauxide WPF можна використовувати в .NET 3.5. Було створено безліч корисних програм ... Проблеми зі шрифтами не є пробкою для всіх.
Джастін Нісснер

2
+1 - Виконано WinForms роками, тепер у WPF. Ніколи не озиратися назад;) WPF набагато приємніший, набагато швидший. Протягом багатьох років використовував лише елементи керування третьої сторони у формах winform - тепер я використовую їх, але НЕ ТІЛЬКИ (тобто стандартні елементи управління використовуються, 3r сторона - це не заміна, а нові речі). Особливо з .net 4.0 - wpf гірські породи. О, і я роблю високоефективну візуалізацію даних (вона ж відома як програма для торгівлі фінансовими інструментами).
TomTom

2
+1 WPF має трохи круту криву навчання, але як тільки ви це засвоїли, це фантастично потужно. Переконайтеся, що ви починаєте з шаблону MVVM, це просто має сенс.
Грокіс,

23

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


10

Обидві технології мають свої плюси і мінуси.

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

Але трохи більше задіяно створення інтерфейсу / підключення всіх подій тощо.

WinForms все ще є потужною технологією, яку часто можна розвивати швидше, ніж WPF, однак, зрештою, обидві технології можуть бути використані для досягнення одного і того ж. Однак WPF є "новішим" стандартом.

WinForms зазвичай використовується для розробки бізнес-додатків, тоді як WPF часто використовується для створення більшої кількості кінцевих користувачів на основі програмного забезпечення, програм тощо.


5

WPF пропонує дуже багаті можливості для створення надзвичайно складних користувальницьких інтерфейсів. Це спрощує інтеграцію апаратно прискореної графіки у ваш інтерфейс. Однак дизайнер Visual Studio WPF насправді поганий (я майже ніколи ним не користуюся). Я також думаю, що WPF набагато складніший, і починати з нього складніше. Але це суб’єктивно, звичайно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.