Преобразование приложения WPF в SilverLight

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


person Salamander2007    schedule 17.10.2008    source источник


Ответы (5)


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

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

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

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

person Community    schedule 17.10.2008
comment
Спасибо, что указали на ПРИЗМ. Я посмотрю на это поближе. - person Salamander2007; 17.10.2008
comment
Prism - это руководство по разработке составных приложений с использованием WPF. Они планируют в какой-то момент получить руководство / библиотеки для Silverlight ... однако дело в том ... что PRISM не обязательно поможет вам написать приложение WPF, которое легко преобразовать в приложение Silverlight. . - person cplotts; 17.10.2008
comment
Я не понимаю, почему Prism имеет какое-либо отношение к переносу Silverlight на WPF. Prism - это библиотека и несколько вспомогательных классов - вы можете так же легко перенести простой код Silverlight и XAML в WPF без него. - person Jonas Follesø; 18.10.2008

Я бы сказал, что вы МОЖЕТЕ перенести Silverlight в WPF с минимальными усилиями. Я потратил 2 часа на портирование, а на написание приложения - 3 недели. Я бы сказал, что эти 2 часа можно отнести к категории минимальных усилий.

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

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

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

Для XAML он будет перенесен напрямую, если вы не стилизуете элементы управления. Если вы стилизуете элементы управления, использование диспетчера визуальных состояний, которого в настоящее время не хватает в WPF, немного усложнит задачу. Вы можете изменить стиль элементов управления в WPF с помощью триггеров или использовать Реализация VSM для WPF, выполненная Джоном Госсманом. Microsoft объявила, что добавит VSM в WPF, чтобы сделать две платформы более совместимыми.

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

Я недавно написал в блоге сообщение о примере приложения журнала погружений и о том, как я перенес его с Silverlight 2 на WPF . Может дать вам некоторое представление о процессе.

person Jonas Follesø    schedule 17.10.2008
comment
Я считаю, что это небольшая путаница. Речь идет о преобразовании WPF в Silverlight. Ваш ответ касается другого направления. - person Peter; 10.11.2010

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

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

person Christopher Bennage    schedule 17.10.2008
comment
Отличная оптимизация Google этой ссылки. ;) Но за ссылками НЕ СЛЕДУЕТ. Что, кстати, может и не должно быть после определенного уровня повторений. Или еще лучше, после того, как ответ достигнет определенного балла, например 8 или s0). - person Kevin Crumley; 12.11.2008

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


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

person Community    schedule 17.10.2008

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

person Community    schedule 22.01.2009