Нужно отказаться от Winforms и начать использовать WPF - PullRequest
2 голосов
/ 05 февраля 2011

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

Думаю, мне пора покинуть корабль Winforms и начать использовать WPF. Как только я закончу этот последний фриланс-проект, я начну использовать WPF исключительно для своих клиентов Windows.

У меня есть привилегия иметь клиентов с более новыми машинами, поэтому запуск WPF на их компьютере не будет проблемой. :)

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

Где вы рекомендуете начать? Что бы вы хотели знать, прежде чем использовать WPF для производства? Какую книгу вы бы порекомендовали о WPF (она должна быть новой! Ничего с 2007 года)?

Ответы [ 6 ]

1 голос
/ 05 февраля 2011

Как бы я начал учить кого-то WPF сегодня:

  1. Убедитесь, что они имеют прочное основание в XML. Если вы не знаете, как редактировать XML-документы, а также диагностировать и устранять проблемы в разметке, вы не сможете добиться прогресса с WPF. Вам особенно нужно уметь работать с пространствами имен XML и понимать префиксы пространств имен, не волнуясь.

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

  3. Добавление дополнительных типов объектов в приложение и демонстрация работы шаблонов данных и выбора шаблонов.

  4. Добавление стилей, особенно стилей, использующих триггеры данных, в пример приложения.

  5. Добавьте элементы управления элементами в пример приложения и продемонстрируйте, как работают панели элементов и стили контейнера элементов. Возможно, совершите небольшое путешествие по различным видам панелей. Прогуляйтесь по наблюдаемым коллекциям и INotifyCollectionChanged работе. На этом этапе я, возможно, мог бы создать фрагмент коллекции примеров, в котором использовалась ItemsControl с Grid в качестве панели элементов, чтобы я мог пройти по генерации контейнера элементов и присоединенным свойствам.

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

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

  8. Добавьте команды (используя шаблон RelayCommand) к внутренним объектам, чтобы продемонстрировать, как работает команда.

  9. Измените пример приложения для использования пользовательских элементов управления.

  10. Пройдите настройку шаблона элемента управления.

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

1 голос
/ 05 февраля 2011

Главный совет, который я могу дать, это «забыть» то, что вы узнали с помощью winforms.Не пытайтесь применить то, что вы сделали с winforms, к wpf ... Архитектура совсем другая, и вы рискуете попасть в ловушку.

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

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

1 голос
/ 05 февраля 2011

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

Кстати, я считаю, что это намного проще, чем я думал. Требуется некоторое привыкание, но я уже подсел (XAML очень крутой). Я убежден, что лучше всего научиться просто прыгать и начинать делать это.

0 голосов
/ 05 февраля 2011

«WPF в действии» - отличная книга для чтения, прежде чем начинать любое кодирование.Это очень просто понять, и если у вас есть терпение, вы можете просмотреть всю книгу за день или два.В нем нет ничего MVVM, так что для кого-то, выходца из winforms, было бы неплохо начать с.

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

1.Видео Джейсона Долингера

2.MSDN статья Джоша Смита

0 голосов
/ 05 февраля 2011

Я бы от всей души порекомендовал книгу Адама Натана WPF Unleashed.Это то, как я изучил WPF, и я до сих пор регулярно на него ссылаюсь, годы спустя.Отличное введение, которое объясняет вещи в ясном порядке, постепенно накапливая навыки.

Я повторяю сказанное выше - забуду многое из того, что вы знаете в WinForms.Если вы попытаетесь представить WPF «более привлекательной формой WinForms», вы не получите полного преимущества от платформы.Если вы научитесь немного «отпускать» и охватить привязку данных (так намного лучше в WPF) и принять идею о том, что элементы управления не имеют специальных визуальных элементов, тогда вы по-настоящему сможете использовать WPF в полной мере.

0 голосов
/ 05 февраля 2011

Что я считаю наиболее важным:

  1. Привязка данных , одна из самых выдающихся функций WPF, требует некоторого времени, чтобы привыкнуть к ней.
  2. Команды , не уверен, есть ли что-то подобное в WinForms ...
  3. Шаблоны данных , создание больших частей пользовательского интерфейса на лету на основе данных.
  4. Стиль , если вам нужны индивидуальные элементы управления.

Также вам, вероятно, следует приобрести базовые знания XML, если у вас их еще нет, чтобы иметь возможность писать XAML (я бы не использовал конструктор в VS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...