Можно ли автоматически / с минимальными усилиями преобразовать существующее приложение WPF в SilverLight?
Преобразование приложения WPF в SilverLight
Ответы (5)
Не совсем. Я нашел несколько статей о параметре множественного таргетинга для WPF и Silverlight одновременно. В настоящий момент, если вы не используете PRISM, к счастью, довольно сложно настроить таргетинг на них обоих. достижимо.
Что вам нужно иметь в виду, так это то, что Silverlight использует меньшую (а значит, более ограниченную) библиотеку, чем WPF.
В ответ на комментарии: На самом деле, в PRISM уже есть поддержка silverlight (v2). Идея PRISM состоит в том, чтобы предоставить руководство по разработке приложений не только с использованием WPF, но и с использованием Silverlight также - Prism V2 формально назывался Composite Application Guidance для WPF и Silverlight. Использование PRISM для возможностей Silverlight дает вам гарантию, что ваш код будет работать на обеих платформах с минимальными изменениями, если нет (кроме, возможно, различных типов проектов для Visual Studio).
Но, конечно, если вы уже начали разработку своего приложения, вам нужно будет изменить свой код, чтобы использовать PRISM.
Я бы сказал, что вы МОЖЕТЕ перенести Silverlight в WPF с минимальными усилиями. Я потратил 2 часа на портирование, а на написание приложения - 3 недели. Я бы сказал, что эти 2 часа можно отнести к категории минимальных усилий.
Конечно, вам нужно создать новый проект, добавить файлы в новый проект и настроить их.
Поскольку Silverlight является подмножеством WPF, ему легче перейти с Silverlight на WPF, чем наоборот.
Для бизнес-логики и кода, не относящегося к пользовательскому интерфейсу, ваш код должен переноситься почти прямо. У меня возникли незначительные проблемы с аутентификацией, поскольку Silverlight 2 будет собирать любую информацию аутентификации в браузере, а в WPF вы должны настроить свой собственный экран входа в систему и управлять файлами cookie и т. д..
Для XAML он будет перенесен напрямую, если вы не стилизуете элементы управления. Если вы стилизуете элементы управления, использование диспетчера визуальных состояний, которого в настоящее время не хватает в WPF, немного усложнит задачу. Вы можете изменить стиль элементов управления в WPF с помощью триггеров или использовать Реализация VSM для WPF, выполненная Джоном Госсманом. Microsoft объявила, что добавит VSM в WPF, чтобы сделать две платформы более совместимыми.
Возможно, наиболее важными из трудностей повторного использования являются навыки и опыт. Поскольку две платформы очень похожи, вы сможете повторно использовать все свои навыки в WPF.
Ответы Уилла и Богдана верны. Ключевое слово здесь минимальное. У Роба Айзенберга есть список отличий здесь (хотя это было до RTW).
Список различий в WPF и Silverlight
Нет. Silverlight работает в собственной урезанной версии среды CLR. Он также похож на WPF, а не на WPF. Вам придется проделать изрядную работу, чтобы преобразовать его.
Времена изменились. Ознакомьтесь с переносимыми библиотеками классов, которые теперь поддерживаются в .NET 4.0. Вы можете создавать сборки, которые можно использовать на разных поддерживаемых платформах: WP7, Silverlight WPF и даже в приложениях XBOX.