Каковы лучшие чтения, должны начать использовать WPF вместо WinForms?

При учете, что CannibalSmith однажды заявил - "Во всех ответах говорится, что "WPF отличается". Это - огромное преуменьшение. Не только необходимо изучить много нового материала - необходимо забыть все, что Вы узнали из Форм. Это - абсолютно новый способ сделать UI".

.. и наличие многих лет опыта с визуальной разработкой настольных приложений Windows (VB6, Разработчик Borland C++ VCL, WinForms) (который трудно забыть), как я быстро перемещаюсь в разработку для высказывания правильно построенных приложений WPF с Visual Studio?

Мне не нужна пьянствующая одурманенная графика для предоставления моего стиля приложения голливудского блокбастера или пижамы за миллион долларов. Я всегда любил опрятность стандартных стандартных элементов управления Windows и руководства по проектированию UI, конец еще больше, я наслаждался ими под Стеклом Vista Аэро Графитовый соус.

Я совершенно удовлетворен WinForms, но я хочу к своим приложениям быть созданным из самых эффективных и актуальных стандартных технологий и architectured согласно самым эффективным и гибким шаблонам сегодня и завтра, усиливая основанное на интерфейсе повторное использование интеграции и функциональности и воспользоваться всеми преимуществами современных аппаратных средств и API для максимизации производительности, удобства использования, надежности, пригодности для обслуживания, расширяемости, и т.д.

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

Но... в то время как перемещение от VB6 до Разработчика Borland C++ было очень легко (никакие книги/учебные руководства не должны были включать его и начинать работать) (предположение, что я уже знал C++), перемещающийся от BCB до WinForms было бесшовное то же, не кажется никем очевидным для меня, как сделать с WPF.

Таким образом, как я лучше всего преобразовываю меня от разработчика WinForms в правильный путь думать и сделать разработчика WPF?

9
задан Ivan 5 May 2010 в 06:37
поделиться

5 ответов

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

Я обнаружил несколько недостатков

1) не существует официального набора инструментов MVVM. Их много, и все они поддерживаются человеком. Год назад попытка использования инструментария Microsoft была отложена на задний план, а поддержка VS2010 отсутствует.

2) программирование многооконного приложения, вроде простого мастера с перемоткой вперед и назад, - просто кошмар. Я вышел из этого с чистым дизайном, определяя делегата для каждого действия пользовательского интерфейса и команды для каждого бизнес-действия, но все же я думаю, что это слишком большое участие во фреймворке, чтобы его можно было оправдать, и вы не можете показать результат своих тестов. этот покупатель ожидает волнения.

3) Вы отказываетесь от привычки дважды щелкать кнопку и добавлять код. Это оставляет неприятное ощущение того, что IDE используется против ее природы.В основном вы используете Visual Studio в качестве текстового редактора и дизайнера интерфейса, но при этом вам очень помогает этот инструмент.

На данный момент есть следующие преимущества:

1) определение визуальных компонентов очень гибкое, быстрое и простое, и вы можете выбирать между VS и Expression Blend. Создать анимацию просто.

2) привязка данных упрощает приложение. Вы определяете DataContext и привязки, и вам не нужно самостоятельно перемещать данные из бизнес-логики в интерфейс, если у вас есть свойство для всего, что должно отображаться.

3) Вы можете уменьшить объем бизнес-логики в интерфейсе до нуля. Легко отделить поведение приложения от его внешнего вида, поэтому вы можете с легкостью настроить свой интерфейс десятью различными способами и протестировать всю свою логику, не открывая окно.

4) вы оставляете дверь открытой для использования Silverlight, если вас попросят.

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

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

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

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

2
ответ дан 4 December 2019 в 21:48
поделиться

Начав работать с WPF в этом году, самым важным для меня было научиться использовать паттерн Модель-Вид-Модель для отделения представления от логики приложения. Как правило, если вы обнаружите, что размещаете много кода в коде позади представления, значит, вы "делаете это неправильно".

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

Именно статьи вроде этой от Джоша Смита помогли мне начать путь к MVVM:

http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

После того, как вы начали разбираться с привязками MVVM для отображения данных, посмотрите на команды и, в частности, на интерфейс ICommand. Они являются основным механизмом, с помощью которого действия пользователя запускают операции на выполнение. Поэтому вместо того, чтобы иметь обработчик OnClick для кнопок, вы связываете свойство Command кнопки в XAML со свойством в вашей модели представления, которое раскрывает реализацию ICommand.

My 2c - Donovan

1
ответ дан 4 December 2019 в 21:48
поделиться

Попробуйте этот сокрушительный хит.

Windows Presentation Foundation - Unleashed By Adam Nathan

alt text
(источник: adamnathan.net)

1
ответ дан 4 December 2019 в 21:48
поделиться
4
ответ дан 4 December 2019 в 21:48
поделиться

если вы ищете книги, посмотрите предыдущее сообщение

Какие книги по WPF вы бы порекомендовали?

1
ответ дан 4 December 2019 в 21:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: