Конвертировать приложение WPF в SilverLight - PullRequest
18 голосов
/ 17 октября 2008

Возможно ли преобразовать существующее приложение WPF в SilverLight автоматически / с минимальными усилиями?

Ответы [ 5 ]

9 голосов
/ 18 октября 2008

Я бы сказал, что вы МОЖЕТЕ портировать 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 . Может дать вам некоторое представление о процессе.

8 голосов
/ 17 октября 2008

Не совсем. Я нашел несколько статей относительно опции multi-target для WPF и Silverlight одновременно. На данный момент, если вы не используете PRISM , нацелить их обоих - непростая задача, к счастью, достижимая.

Что нужно иметь в виду, так это то, что Silverlight использует меньшую (а значит, более ограниченную) библиотеку, чем WPF.

В ответ на комментарии: На самом деле уже есть поддержка silverlight в PRISM ( v2 ). Идея PRISM состоит в том, чтобы предоставить руководство для разработки приложений не только с использованием WPF, но и Silverlight , а также - Prism V2 формально был известен как Руководство по составным приложениям для WPF и Silverlight. Использование PRISM для возможностей silverlight даст вам гарантию того, что ваш код будет работать на обеих платформах с минимальными изменениями, если нет (за исключением, возможно, различных типов проектов для visual studio) .

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

7 голосов
/ 17 октября 2008

Воля и Богдан ответили правильно. Ключевое слово здесь - «минимальный». Роб Айзенберг имеет список различий здесь (хотя это было до RTW).

Список различий в WPF и Silverlight

6 голосов
/ 17 октября 2008

Нет. Silverlight работает в собственной урезанной версии CLR. Он также похож на WPF, а не на WPF. Вам придется проделать немалую работу для его преобразования.


Времена изменились. Посмотрите Portable Class Libraries , теперь поддерживаемые в .NET 4.0. Вы можете создавать сборки, которые можно использовать на разных поддерживаемых платформах: WP7, Silverlight WPF и даже приложениях XBOX.

0 голосов
/ 22 января 2009

Вот ветка об этом: http://silverlight.net/forums/t/3898.aspx

...