Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Windows Forms or WPF.

414
06 июля 2012 года
CassandraDied
763 / / 24.05.2012
Доброго.
Пишу приложение с GUI. В интерфейсе будет выводиться на форму много превьюшек изображений.
Что должно быть реализовано:
1) Масштабируемость превьюшек в зависимости от их количества на форме.
2) Возможно, собственные контролы, например, как GridView с чекбоксами и изображениями в ячейках.
3) Эффекты плавного появления и исчезновения меню и новых элементов формы. Слайдеры, которые тоже должны медленно появляться и исчезать.
Какую технологию для этого выбрать? Если возможно реализовать необходимый интерфейс на Windows Forms, то выбрал бы его.
Но, если будет много секса с реализацией, а в WPF его будет меньше, то выбрал бы, конечно, второе.
Если верно понял, то в WPF всё примерно, как в ASP. В ASP мне не понравилось, что некоторых стандартных и необходимых контролов просто нет и приходится либо искать уже готовые, или писать свои. Например, редактируемого выпадающего списка там нет. Да и Text Box'a с возможностью подсветки строк, тоже.
Так что же выбрать, чтобы разработка была быстрой и простой?
297
07 июля 2012 года
koodeer
1.2K / / 02.05.2009
Выбирать нужно ту технологию, которую лучше знаешь. Я лучше знаю WinForms, поэтому бы взял их.
Всё перечисленное легко реализуется в обеих технологиях.. Конечно, способы будут сильно разные. Например, третий пункт в WPF можно сделать декларативно, заданием анимаций, а в WinForms для этого придётся вручную писать код с применением таймеров (или найти библиотеку, в которой подобное уже реализовано).
414
07 июля 2012 года
CassandraDied
763 / / 24.05.2012
У меня практически нет опыта работы ни с первой, ни со второй технологие. Пожалуй, выберу Windows Forms, всё-таки код мне ближе, если на обеих можно реализовать задуманное.
Тогда другой вопрос: при ресайзе формы, нужно будет самому писать ресайз для всех контролов или можно как-то сделать, чтобы, как в Qt, все само ресайзилось? Какие-нибудь лейауты?
40K
08 июля 2012 года
D129
228 / / 18.04.2012
Для новых проэктов - только WPF.

Не знаете ни то ни то - так учите более современную, будущее себе обеспечивайте.
Я уж не говорю о том, что любые ресайзы в винформ, сделанные самостоятельно, будут мерцать, мигать и всячески делать мелкие проблемки.

А заказчик будет думать, что "все возможно" - и попросит вас сделать круглую кнопочку (а видел он такое где нибудь).

И что вы ему скажете? Будете рассказывать об особенностях устаревшей технологии?
40K
08 июля 2012 года
D129
228 / / 18.04.2012
Причем в WPF вовсе не обязательно использовать MVVM ... можно для небольших утилиток делать так же, как и для винформ -
накидать контролов на форму, и работать с ними в коде, без заммеля.
:-)
Это был плохой совет, постарайтесь ему не следовать.
414
08 июля 2012 года
CassandraDied
763 / / 24.05.2012
Заказчик ничего не скажет, потому что это приложение пишу для себя. :)
Но и для себя его тоже писать долго не хочется.
297
08 июля 2012 года
koodeer
1.2K / / 02.05.2009
Цитата: CassandraDied
Тогда другой вопрос: при ресайзе формы, нужно будет самому писать ресайз для всех контролов или можно как-то сделать, чтобы, как в Qt, все само ресайзилось? Какие-нибудь лейауты?



Смотри свойства Dock и Anchor.
Смотри компоненты FlowLayoutPanel, TableLayoutPanel.
Смотря какие ресайзы нужны. Картинки обычно ресайзятся сами, будучи заданными в качестве BackgroundImage разных контролов (та же Panel), или Image контрола PictureBox.
Самостоятельно менять размер изображения - элементарно: просто задаёшь нужный размер в конструкторе, что-то вроде new Bitmap(image, size).

297
08 июля 2012 года
koodeer
1.2K / / 02.05.2009
Цитата: D129
Для новых проэктов - только WPF.

Не знаете ни то ни то - так учите более современную, будущее себе обеспечивайте.
Я уж не говорю о том, что любые ресайзы в винформ, сделанные самостоятельно, будут мерцать, мигать и всячески делать мелкие проблемки.


С этим полностью согласен. Разработка в .NET неумолимо мигрирует на WPF. Поэтому следует изучать эту технологию.

Однако, не могу не возразить: никогда не имел проблем с ресайзом. Никаких мерцаний. С чем действительно есть проблемы в WinForms - так это прозрачность.

Хотя с другой стороны - программеру в крупной конторе вовсе не зачем знать WPF: достоинство этой технологии в том, что наконец-то сделали чёткое разделение кода и GUI. В крупных конторах формошлёпством теперь могут заниматься дизайнеры, а программер пишет только код.


Цитата: D129
А заказчик будет думать, что "все возможно" - и попросит вас сделать круглую кнопочку (а видел он такое где нибудь).

И что вы ему скажете? Будете рассказывать об особенностях устаревшей технологии?


Круглая кнопочка элементарно создаётся в WinForms.

Мне не хочется вступать в спор (думаю, это моё последнее сообщение в этой теме), однако стоит вспомнить печальный опыт времён DOS, когда каждое приложение имело свой интерфейс, и пользователям было чрезвычайно сложно осваивать что-то новое. Именно тогда появился единый стиль интерфейса приложений.
К сожалению, с появлением WPF формы стали клепать дизайнеры, коим начхать на привычки пользователей, и ныне мы получаем массу пестрых аляповатых софтин, для начала работы с которыми нужно предварительно изучить их интерфейс, не похожий на всё привычное. Не спорю, иногда попадаются хоть и нестандартные интерфейсы, но чрезвычайно удобные, но это скорее исключение.
К тому же WPF намного требовательней к ресурсам, и неприменима на разных встроенных системах.

414
08 июля 2012 года
CassandraDied
763 / / 24.05.2012
Если бы не плюшки у FileSystemWatcher в .Net по сравнению с тем же классом в QT, этот вопрос бы вообще не появился.
Мнения разошлись. Пожалуй, можно попробовать и то, и другое.
Интересно, кто заминусовал первый ответ koodeer, хотя даже более интересно, почему.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог