Пройдя подобное упражнение, я скажу вам, что это можно сделать, но есть некоторые проблемы.
Шаг 1: Просто для пояснения, когда мы говорим WPF, некоторые люди имеют в виду Silvelright / web. WPF не Silverlight, поэтому вам нужно уточнить, что я хочу перенести существующие приложения в приложения толстых клиентов WPF. Так как вы указали WPF, я предполагаю, что вы имеете в виду те приложения, основанные на клиенте / Windows, поэтому мы пойдем по этому пути. (Я упомяну SL в конце)
Шаг 2: Оценить свои проекты на уровне кода, по большей части рефакторинг кода довольно прост. Поскольку вы переходите с .net 2.0 на .net 4.0, я бы действительно посмотрел, сколько ваших классов определено, и увидел бы, что может быть реорганизовано или, в некоторых случаях, полностью переработано. Это приводит нас непосредственно к шагу 3.
Шаг 3: Выберите шаблон дизайна. Одна из хитрых частей заключается в разработке новых шаблонов проектирования, таких как MVVM для WPF. Более того, вы захотите раздеть и перепроектировать весь пользовательский интерфейс. В результате вы также захотите использовать правильный шаблон проектирования (MVVM) или что-то вроде этого. Это также свяжет вас со вторым шагом, так как часть вашего кода необходимо будет изменить, чтобы он поддерживал ваш шаблон проектирования.
В сети есть масса ресурсов для MVVM, а также для разработки пользовательского интерфейса. Если вы ищете материалы для чтения, я бы посмотрел на развязанный WPF 4, а также на иллюстрированный WPF. И то, и другое - хорошее прочтение, чтобы помочь вам быстрее понять, как работают компоненты пользовательского интерфейса и как правильно их использовать в проекте.
Познакомьтесь с .net 4 и используйте коллекции, типы и, конечно, многочисленные новые классы для wpf.
Отказ от ответственности: во многих случаях вы можете создать приложение WPF, использующее традиционный формат и методы winform. Является ли это правильным или неправильным, зависит от разработчика. Мое личное мнение таково, что да, вы можете отказаться от изучения новых шаблонов проектирования и использовать подход winform, но вы не сможете полностью использовать преимущества и возможности фреймворка, используя этот подход.
И, наконец, если вы планируете перенести эти приложения в Интернет (Silverlight), ваша работа будет немного сложнее. Silvelright имеет немного более высокую кривую обучения, и есть еще несколько правил (безопасность, асинхронные вызовы, веб-сервисы и т. Д.), Которые необходимо выучить и соблюдать. Я убежден, что при создании миграции легче перейти с Siverlight на WPF, и наоборот. Поскольку Microsoft продолжает совершенствовать Sivelright, я думаю, мы дойдем до того, что код будет взаимозаменяемым между двумя шаблонами, однако сейчас его там нет.
Проведите поиск в Интернете, но вот несколько ссылок, которые помогут вам начать работу:
Скотт Гатри (Silverlight) http://weblogs.asp.net/scottgu/default.aspx
Джош Смит (WPF MVVM) http://joshsmithonwpf.wordpress.com/
удачи