Перевага програми WPF проти Winform для бізнес-додатків? [зачинено]


84

Я знаю asp.net та розробку winform. Я не той тип розробника, який переходить до нової технології лише тому, що вона нова. Це повинно дати мені додаткові переваги, як вища продуктивність.

Які переваги WPF перед Winforms для чисто бізнес-додатків? Мене не цікавлять зайві цукерки для очей, анімація, градієнти, ефекти відображення зображення тощо, що пропонує WPF. Бізнес-програми призначені для введення даних, звітування даних і, можливо, деяких діаграм та статичного відображення фотографій.

Як WPF допоможе у цих програмах? Краще збагачення даних? WinForm - це зріла перевірена технологія, і мені подобається той факт, що я можу робити все у Visual Studio проти кількох IDE для WPF (сімейство VS & Blend). Плюс я думаю, що WPF не має таких розширених елементів керування прив'язкою даних, як їхні аналоги Winform (DataGridView..etc). AFAIK, Microsoft продовжуватиме підтримувати Winforms протягом багатьох років.

Спробуйте переконати когось, як я, змінити.


1
Я думаю, що є кілька вагомих причин перейти на WPF. Я не хочу повторювати щойно написаний щоденник , тому розміщу тут посилання.
Andy Brown

7
Це відмінне запитання. Має бути відкритим знову. Я розробник winform, який переходить на WPF. Крива навчання величезна. Але WPF - це майбутнє, оскільки за своєю природою це декларативна мова, подібно до HTML. Winform переважно процедурний, що більше підходить для алгоритмів, але більш детальний для відображення інтерфейсу користувача. Спробуйте розпакувати файл друку .XPS, там ви побачите WPF xaml. У Winforms просто занадто багато обмежень. Хоча це все ще працює, але WPF "цукерки для очей" може допомогти зменшити рівень стресу користувачів. Ви можете представити кілька рядків запису більш значущим чином, крім списку чи сітки даних.
Jeson Martajaya

Відповіді:


101

Я знаю asp.net та розробку winform. Я не той тип розробника, який переходить до нової технології лише тому, що вона нова. Це повинно дати мені додаткові переваги, як вища продуктивність.

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

WinForm - це зріла перевірена технологія, і мені подобається той факт, що я можу робити все у Visual Studio проти кількох IDE для WPF (сімейство VS & Blend).

Ви вважаєте себе ручним кодером, або перетягуючим кодером? Якщо ви вважаєте себе перетягувачем і крапельницею, тоді поточний урожай інструменту WPF може не підійти для вас. Може, почекати Visual Studio 2010? Я працюю майже виключно в XAML. Більшість користувачів WPF, мабуть, погодяться, що на даний момент це найефективніший спосіб створення додатків WPF. Але тоді я також створюю свій HTML вручну, так що це здається мені природним ...

Які переваги WPF перед Winforms для чисто бізнес-додатків? Мене не цікавлять зайві цукерки для очей, анімація, градієнти, ефекти відображення зображення тощо, що пропонує WPF.

Раніше я думав так, але нещодавно розробив бізнес-додаток, який має градієнти, базову анімацію та ефекти. Ці вигадливі функції були додані для покращення взаємодії з користувачем. Чому бізнес-програми повинні бути Battleship Grey? Чому вони повинні бути непридатними для використання? Звичайно, не колір, градієнти, анімація роблять бізнес-програму придатною для використання, але використання цих ефектів може допомогти користувачеві, і саме це для мене важливо. Я міг зробити все, що робив у програмі WPF в WinForms - це просто зайняло б набагато більше часу.

Краще збагачення даних?

Підтримка прив'язки даних справді дивовижна. Це моя найулюбленіша функція на платформі. Ознайомтеся з цією чудовою таблицею прив'язки даних .

Спробуйте переконати когось, як я, змінити.

Я вирішив, що не збираюся переконувати когось іншого перейти на WPF. Розробники, яких я намагався "переконати" (усі досвідчені розробники Winforms), як правило, борються з платформою. Вони не вкладаються в технології. Вони не "отримують". Я закликаю людей перевірити технологію, щоб зрозуміти, чи підходить вона їм як розробнику. Крива навчання величезна. Якщо ви дізнаєтесь за книгами, перегляньте цей SO-допис, щоб переглянути деякі міні-огляди книг WPF. Якщо ви дізнаєтесь за відео, перегляньте відео з WPF на windowsclient.net . Якщо ви дізнаєтеся, наприклад, перевірити це або цепост. Забудьте все, що ви знаєте про WinForms. WPF справді здається ближчим до ASP, ніж WinForms. Створіть кілька зразків додатків. Подивіться, чи це працює для вас та вашої команди.

Оскільки ви мультикваліфіковані (навички asp.net/winform), ви можете побачити перевагу підвищення кваліфікації у WPF, оскільки вона дуже тісно пов’язана із Silverlight. Silverlight заповнює цю прогалину між вашими багатими клієнтськими програмами та веб-додатками.

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

Удачі вам у прийнятті рішення.


10
Чудова відповідь Бред - наша компанія зараз бореться з цим рішенням. Ваші спостереження добре продумані і дуже відповідають тому, що ми бачили до цього часу. Ми ще не прийшли до рішення, але ваш абзац "Броненосець сірий" сильно резонує у нас, оскільки ми переконались у впливі чудового інтерфейсу на продажі. Дякуємо, що знайшли час написати прекрасну відповідь.
gidmanma

3
Існує величезна різниця між тим, щоб мати одного досвідченого розробника WPF в команді і не мати такого взагалі. Поєднуйте це з крутою кривою навчання, і якщо ви ведете бізнес, ви взагалі не збираєтеся багато чого досягти. Реально кажучи, WPF чудово підходить, якщо у вас є хтось, хто вас веде, і не стільки, якщо ви вчитесь, коли ходите. А якщо ви це зробите, готуйтеся до серйозного рефакторингу.
Сергій Акопов

3
+1 - "Чому бізнес-додатки повинні бути Battleship Gray?" - Повністю згоден!
Самуель Слейд

5
-1 Якщо єдина причина переходу до WPF заснована на можливості створювати градієнти та змінювати діалогові вікна програми із "сірого лінкора", то вам потрібно насправді навчитися користуватися WinForms.
deegee

1
+1, повна повна відповідь. Посилання на відео з windowsclient.net WPF недоступне, хтось знає, де їх знайти?
Демієн

11

Я маю досить великий досвід виграшних програм і грав лише трохи з WPF, але мене продали.

Чому?

  • НАБАГАТО більше гнучкості. Якщо ви хочете зробити щось нестандартне у виграшних формах, виникають біль і страждання, але в WPF це просто.

  • Набагато краще прив'язка даних

  • Легше розробляти (як тільки ви зрозумієте основні концепції, що, на жаль, займе трохи часу)


4

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

Серйозно - це набагато чистіше і простіше, якщо ви використовуєте такий шаблон, як Model-View-ViewModel. Детальніше читайте на The Orbifold , у цій темі Групи Google та Channel9

Тоді в якийсь момент ви отримаєте прозріння і почнете все прив'язувати дані. Ваш код позаду стане не набагато більше, ніж викликом InitializeComponent ().


4

Дякую за допис. Моя компанія має багато часу, вкладеного в WinForms. Я не уявляю, як отримати середню заявку за 32 людські дні; наші періоди сертифікації - це місяці по закінченню та цикли випуску, іноді щорічні чи довші (незважаючи на те, що ми дотримуємось якомога ближче до філософії розвитку Agile), така природа програм, які ми розробляємо.

Я тільки що вперше грав у WPF і виявив, що можу отримати деякі переваги WPF у WinForms, використовуючи ElementHost. Я розширив WPF TextBox, потім обгорнув свій розширений клас у програму Win Forms UserControl і тепер маю програму WinForms, використовуючи це текстове поле WPF, в комплекті з підтримкою перевірки орфографії.

Мені вражено, коли Microsoft думає про це (розміщення WPF в WinForms і навпаки), оскільки я дійсно не бачу, як моя компанія переходить на WPF, якщо ми не зможемо перейти протягом тривалого періоду часу; просто занадто багато вкладено в WinForms, щоб розпочати знову. З моїм недавнім досвідом я можу почати говорити з деякими іншими розробниками про свій недавній досвід і подивитися, що їх думки. Я думаю, що WPF знадобиться трохи часу, щоб звикнути, і це, здається, узгоджується з іншими коментарями.




0

Уявіть, якби ви могли використовувати той самий інтерфейс користувача (XAML) зі своєї сторінки ASP.NET/(Silverlight) із вашим настільним додатком. Ви б створили його лише один раз, але підключили до будь-якого .... це один із намірів WPF / XAML ... ми справді вже там? Ще не, але наближаючись.


4
Спроба використовувати один і той же інтерфейс в silverlight та настільний додаток - одна з тих речей, яка теоретично звучить приємно, але на практиці, я думаю, це просто призведе до безглуздого інтерфейсу на обох платформах.
Оріон Едвардс,

Так, перекриття між WPF та Silverlight2 велике, але недостатнє, щоб зробити ваш код портативним. Різниця у можливостях прив'язки надмірно обмежить ваш розвиток WPF.
geofftnz

1
Ну, я сказав, що ми ще не зовсім там ... але це кінцевий намір.
Веджеді,

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