Я бы сказал, что вы МОЖЕТЕ портировать Silverlight на WPF с минимальными усилиями. Я потратил 2 часа на портирование, а на разработку приложения я потратил 3 недели. Я бы сказал, что эти 2 часа будут отнесены к категории минимальных усилий.
Конечно, вам нужно создать новый проект, добавить файлы в новый проект и настроить их.
Поскольку Silverlight является подмножеством WPF, его намного проще перейти от Silverlight к WPF, чем наоборот.
Для бизнес-логики и кода, не относящегося к интерфейсу пользователя, ваш код должен быть почти прямым. У меня возникли некоторые незначительные проблемы с аутентификацией, поскольку Silverlight 2 получит любую информацию для аутентификации в браузере, в то время как в WPF вы должны использовать свой собственный экран входа в систему и управлять файлами cookie и т. Д. .
Для XAML он будет портироваться прямо, если вы не стилизуете элементы управления. Если вы стилизируете свои элементы управления, то использование Visual State Manager, которого в настоящее время нет в WPF, немного усложнит ситуацию. Вы можете изменить стиль элементов управления в WPF с помощью триггеров или использовать реализацию VSM для WPF, выполненную Джоном Госсманом . Microsoft объявила, что добавит VSM в WPF, чтобы сделать две структуры более совместимыми.
Возможно, самое важное повторное использование - это навыки и опыт. Поскольку две платформы очень похожи, вы сможете использовать все свои навыки в WPF.
Я недавно сделал запись в блоге о примере приложения Dive Log и о том, как я перенес его из Silverlight 2 в WPF . Может дать вам некоторое представление о процессе.