WPF Выбор для приложений Windows?

Я развиваюсь в Ironpython с Visual Studio 2010 через PTVS.

Я вижу, что WPF довольно медленный по сравнению с эквивалентом Silverlight... по крайней мере для меня. Моя программа выполняет множество вычислений, но пользовательский интерфейс очень прост. Я прочитал много вопросов WPF vs Silverlight и этот. Я слышал о режиме Silverlight вне браузера... Я не знаю, что об этом думать.

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

поэтому действительно является наилучшим выбором в этом случае?

Спасибо

Ответ 1

Честно говоря, вопреки всем остальным комментариям. Я использую WPF даже для простых приложений. Фактически, это действительно помогает избежать большого количества необходимого кода на других платформах ui. Мне нравится тот факт, что с помощью WPF я могу напрямую думать о данных, которые я собираюсь изменить, не записывая много обработчиков событий для добавления элементов в коллекцию, показывая их в списке и т.д. Также WPF не должен использовать MVVM, просто используйте класс, который сочетает в себе как модель представления, так и модель. После использования WPF alot, я не могу себе представить Windows Forms снова.

Но, конечно, это только мое личное мнение. В конце всегда используйте инструмент, наиболее подходящий для вашей проблемы. Если вы не знаете WPF и хотите использовать его только для небольших приложений, я бы предложил формы окон или что-то еще.

Ответ 2

В моем субъективном мнении нет. Лучшим вариантом будет winforms. Я нахожу его более быстрым в разработке, и у вас есть дополнительная документация и поддержка в Интернете. WPF больше основан на пользовательском интерфейсе и, естественно, использует парадигму MVVM. Для простого приложения это просто слишком много раздувается.

Ответ 3

Если ваш пользовательский интерфейс действительно прост, то я бы сказал, что winforms, вероятно, будет проще. WPF очень мощный, но с властью приходит сложность и кривая обучения.

Скорость не должна быть проблемой, хотя с учетом простого интерфейса.

Ответ 4

Если ваш пользовательский интерфейс действительно прост, и приложение на основе браузера подходит для Silverlight, так как silverlight использует усеченную версию .Net, он будет работать быстрее. Однако недавно я писал приложение с довольно сложным интерфейсом, используя довольно тяжелые сетки/древовидные структуры с большим количеством данных и реализации пользовательского поведения, я никогда лично не заметил, что приложение работает медленно или считается, что WPF работает медленно.

В сравнении он медленнее, чем silverlight, но если ваш пользовательский интерфейс довольно прост, насколько медленнее он будет на самом деле?

Кроме того, поскольку silverlight использует усеченную версию .Net, есть ли какие-либо функции, которые могут вам понадобиться за кулисами, которые silverlight не поддерживает?

Я бы не согласился с @Daniel Casserly о том, что WPF/MVVM слишком раздуты для простого приложения, MVVM прекрасно отделяет ваш интерфейс от логики, стоящей за ним, и позволит расширять это приложение, если это необходимо. Я предпочитаю WPF способ привязки данных, а также проектирование пользовательского интерфейса в XAML по методу Winforms, хотя это может быть только личное предпочтение.

Если вы никогда не использовали WPF, пока не сложно научиться создавать базовый интерфейс

Ответ 5

WPF - это "выбор" для приложений Windows, когда у вас есть разработчик и разработчик, которые хорошо знают WPF и могут кодировать абстракции, не повесив друг друга при разработке своей половины приложения.

В противном случае вы оба будете очень сердиты друг с другом, разработка будет медленной, и вы будете удивляться, почему вы не просто использовали старые добрые WinForms для начала.

Скорее всего, если у вас нет дизайнера, у которого отличное представление о пользовательском интерфейсе и много опыта работы с WPF, вы не будете использовать то, что может предложить WPF.

Edit

Просто понял, что вы сказали, что пользовательский интерфейс очень прост. Пропустите WPF на данный момент, используйте WinForms и создайте стиль Model View Presenter. Таким образом, если вам нужно будет обновиться до WPF позже, это не будет большим испытанием. (MVP отлично подходит для чтения и тестирования кода в любом случае).

Ответ 6

просто сказать, с помощью blend и всего инструмента, который вы получаете, вы делаете очень быстро. Изучение winforms, по крайней мере, не для будущего, xaml повсюду. Wpf берет относительно много ресурсов и медленно загружается, но с простым асинхронным программированием его более чем достаточно. Sl из браузера - еще один вариант, для большей гибкости.