TechNOIR
> Разница кардинальная вообще в плане написания кода между WPF и WF?
На WPF можно писать как на WinForms, но лучше пользоваться преимуществами биндигов и MVVM-архитектуры. Так что если писать ХОРОШО — то да, разница будет.
1 — если смотреть в будущее (вин10) и метить на витрину магазина МС — еще лучше сразу UWP
3 — если метить на трудоустройство в корпоративный сектор — все популярные библиотеки компонентов .net, типа DevExpress, Telerik, Syncfusion и тд — дают триалы, не грех поиграть (там и формы, и впф и увп, и веб..)
отдельно про Syncfusion — у них есть хитрая лицензия для практически не ограниченного бесплатного использования, даже коммерческого в каких то пределах (но подробности уже у них на сайте ищите)
если чисто для десктопа — формы+мордочки проще и мало в чем уступают, а работа с треем по дефолту доступна именно в формах
минус и форм и впф — встроенный браузер — это IE (тут отвечал подробно — придется осваивать или CEF# или GeckoFX, новичку это будет сложно)
. а в UWP — уже Edge, там все гораздо веселее
так что нюансы свои есть везде, стоит пробовать все, а по мере понимания уже выбирать платформу исходя из особенностей задачи
вот статья от крутого эксперта, первые два пункта как раз вам по теме почитать.. статья ооочень старая, но суть далеко не все "гуру" знают даже сегодня ;))
12 [2009-01-14 14:41:00]
WPF vs WinForms. Что вы думаете о будущем платформы Windows Forms?
12 ответов
Подсчитайте # раз, когда VS.NET 2008 вылетает на вас в течение дня разработки интерфейса WPF и сколько раз он падает на вас при разработке winforms. (здесь почти невозможно сделать серьезное развитие wpf, он падает много даже после sp1). У Winforms также есть много зрелых элементов управления. Уверен, что у этого нет фантастического блестящего 3D-материала wpf, но для LoB-приложений вам все равно не нужны. Добавьте к этому размытую проблему с текстом wpf, и вы поймете, что wpf имеет долгий путь, прежде чем он станет достаточно зрелым, чтобы заменить winforms.
В настоящее время я работаю с третьим клиентом для развертывания приложения WPF. Первым было приложение LOB для одного из 3 основных поставщиков доставки в США, а два других для небольших компаний.
Я считаю Visual Studio абсолютно стабильным, но я также никогда не использую конструктор в Visual Studio. Expression Blend совершенно стабилен, если не хватает многих функций, ожидаемых дизайнерами.
Поглощение WPF, безусловно, медленнее, чем языковые функции, представленные в Visual Studio и .NET, но намного превосходит WinForms во многих отношениях и будет в будущем.
Познакомьтесь с мышлением WPF, и вы никогда не вернетесь.
Формы Windows Honda.
WPF Orange County Chopper.
Это стоит больше, чтобы создать собственный ручной измельчитель, для работника требуется гораздо больше навыков, чтобы делать все эти компоненты вручную, это требует художественного смысла, самоотверженности и распределения работы по сравнению с работником в Honda factory, который только нажимает 3 кнопки и выдает байк.
"Orange County Chopper" уникален, красив, выделяется из толпы и делает его владельцем, но его труднее производить, стоит дороже, требуется больше талантов на стороне строителей, и не каждый может это сделать.
И точка этого разговора?
Используйте WPF, если вы хотите выделиться из толпы, и ваши клиенты могут себе это позволить; -)
Я должен согласиться с обоими постами выше. Кроме того, до тех пор, пока Microsoft не начнет действительно подталкивать WPF к собственным продуктам, на самом деле он не собирается взлетать. На мой взгляд, Microsoft, работающая с WPF, — это то, что приведет к тому, что они действительно решат проблемы, которые его поддерживают: сбои, проблемы с текстом и отсутствие предустановленных элементов управления.
3 [2009-01-14 14:46:00]
Мое собственное мнение заключается в том, что принятие WPF на данный момент довольно медленное.
3 revs [2009-01-14 16:37:00]
Я отказался от WPF, потому что визуальный редактор в VStudio 2008 настолько невероятно медленный!
2 Tom A [2009-01-15 00:07:00]
Я работал с WPF на нескольких приложениях (один LOB, один пользовательский интерфейс контроллера), и я считаю, что он очень изящный и эффективный инструмент для использования. Модель контейнера привязки данных и вложенных элементов управления очень эффективна.
Он сильно отличается от Winforms и имеет большую кривую обучения. Как только вы достигли определенного прогресса по этой кривой обучения, вы никогда не вернетесь к WinForms — на данный момент, когда я думаю об использовании WinForms, я думаю, "ugh!"
Я думаю, что WPF твердо нацелен на группу разработчиков, которые не склонны ее принимать. Я не считаю, что WPF был создан для приложений CRUD. CRUD намного сложнее в WPF, чем WinForms. Я видел примеры привязки данных, которые мне просто не нравятся. Вам нужно пройти промежуточную технологию (например, CSLA), чтобы она работала хорошо.
Нет, я думаю, что WPF был разработан для разработчиков, которые хотят поставлять супер-гладкие, супер фантазийные среды IDE для широкой публики. К сожалению, это именно та группа, которая больше всего зацикливается на C/С++ и наиболее невосприимчива к управляемому коду. По этой причине вы должны ставить под сомнение мнение Microsoft о маркетинге.
С другой стороны, Microsoft ест свою собачью пищу, и новые вкусы щенка-чаута часто являются ответом на сильные внутренние презервативы для лучшего материала. Вы можете понять, почему группа Windows Media и группа Zune хотели бы и хотели бы WPF.
1 terjetyl [2009-01-14 15:11:00]
Думаю, вам нужно посмотреть, что предлагает WPF над Web-формами. Единственное, что приходит на ум, — это больше возможностей GUI, но это снова делает WPF более сложным. Большинство приложений Webforms не выглядят хорошо, они предназначены для выполнения определенных операций простым и понятным способом, и там WPF на самом деле не дает вам много информации о Webforms.
Возможно, Silverlight может дать wpf толчок. Есть много интересных возможностей с приложениями полноэкранного siverlight (приложениями для фотографий, офисными приложениями, приложениями отчетов. ), и их, конечно, легко переносят в приложения WPF.
Я использовал как WinForms, так и WPF, и мне придется согласиться с тем, что WPF по-прежнему нуждается в большой работе, чтобы стать платформой UI для приложений LoB. В настоящее время WPF полезен для создания пользовательского интерфейса с богатыми эффектами и анимацией, но даже тогда есть проблемы.
Я видел демонстрацию MS приложения для здравоохранения с помощью Silverlight, и она великолепна. Я бы сказал, что, без сомнения, это будущее, поскольку оно основывается на опыте WinForm и реструктурирует вещи, чтобы обойти проблемы WinForm.
Тем не менее, в настоящее время WinForm явно более зрелая и, вероятно, имеет более короткое время выхода на рынок из-за стабильности платформы и богатства ресурсов, инструментов и знаний.
Я бы ожидал, что приложения WinForm будут медленно выходить в течение еще одного десятилетия, но пока это еще очень жизнеспособная платформа.
0 Jomit [2009-01-14 14:58:00]
Хотя кривая обучения для WPF немного длинная, я думаю, что люди начали серьезно рассматривать ее для создания новых приложений. Но все же нам нужна серьезная мотивация для перехода от Winforms к WPF.
Вот скажите, как это понимать, когда я только начал читать книги, мне писали "Начинайте с консольных приложений". Потом когда я прошёл этот курс, в другой книге уже начали говорить о WinForms, и сейчас я начал читать другую книгу, там автор вообще пишет:
Зачем писать под WinForms, ведь её элементы почти не менялись за последние 10 лет, учите лучше WPF
Я сейчас вообще как ёжик в тумане. Что учить? На чём остановиться? Что ждёт дальше? Может быть, я поучу WPF, а в другой книге уже будут говорить о новом более красочном написании приложений? Можете помочь распутаться и всё расставить по полочкам. пожалуйста.
4 ответа 4
Если Вас интересует программирование desktop-приложений под Windows, то лучше остановиться на WPF, так как:
- это просто самая новая технология на данный момент
- использует 3D-ускоритель для отрисовки интерфейса
- ну и готовых возможностей по "украшению" интерфейса здесь гораздо больше
Хотя, если Вы будете использовать WinForms, приложения будут также отлично работать, так что выбор за Вами.
Насчёт того что ждёт дальше, то до выхода Windows 8 нкаких изменений не планируется. Но как обещают в Microsoft, после её выхода появится возможность разрабатывать интерфейс desktop-приложений используя HTML+CSS+JS.
Да, смотря что ты хочешь создавать. WPF больше подходит для крутых компов, где стоит минимум XP, с .NET 3.0. Библиотека тяжелая, но в Windows Vista уже стоит по умолчанию. Но за эти неудобства WPF дает хорошие преимущества почти во всем, но только на Windows. WindowsForms проектировать можно и даже предпочтительнее, у него есть следующие преимущества над WPF (сколько помню, столько и напишу)
- SDI и MDI приложения (хотя есть библиотеки для эмуляции)
- легче организовывать интерфейс OpenGL, DirectX
- Теоретически кроссплатформенно за счет наличия MONO Framework
- GDI+ легче в обращении (но медленнее), чем накрученная render-система в WPF
- Вопреки распространённому заблуждению, поддерживают и полупрозрачные окна
Если нужны более глобальные сведения по выводу любых изображений, мне кажется, надо изучать DirectX и OpenGL. Если же надо попроще, то тогда WPF. Рад, если помогу определиться.
Лично я (правда, вместе с Microsoft) порекомендую приступать к изучению UWP, Universal Windows Platform. Microsoft усиленно (но, к сожалению, не слишком то эффективно) проталкивает эту технологию, и, судя по всему, будет проталкивать ее еще определенное время, пока в очередной раз не сменится top management.
Опять-таки, программирование для WPF и UWP имеет много общего, так, что освоив UWP, вы без особого труда сможете писать и стандартные Windows приложения, а не только совместимые с Microsoft Store.
Кроме того, умение программировать UWP приложения привлекательно еще в чисто практическом смысле: освоив это, вы сможете опубликовать свое приложение в магазине, и сделать его доступным (потенциально) сотням миллионов пользователей. Не факт, конечно, что ваше приложение будет пользоваться хоть каким-то успехом, но уж несколько сотен закачек получите по любому. А работа с реальным проектом, и реальной отдачей — это лучшая практика для начинающего программиста, на порядки полезнее выполнения "стандартных" упражнений из учебника, уж поверьте мне на слово!