Взаимозаменяемость / возможность повторного использования приложений WPF, Silverlight и Silverlight OOB? - PullRequest
0 голосов
/ 08 октября 2010

Насколько опытны WPFers для повторного использования приложений и компонентов WPF, Silverlight и Silverlight OOB?Сколько там перекрытий?

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

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

1 Ответ

1 голос
/ 08 октября 2010

Упрощенная версия ответа:
1. Silverlight - это примерно подмножество WPF.
2. Silverlight в приложениях браузера и приложениях Silverlight OOB работают на одной и той же платформе.Это всего лишь разница в развертывании.
3. Некоторые приложения OOB могут быть установлены как «доверенные» приложения и имеют более строгие ограничения безопасности, чем в приложениях браузера.

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

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

Silverlight и Silverlight OOB-приложенияработают на той же основе.В обоих местах можно запускать один и тот же двоичный файл приложения.По большей части они будут вести себя одинаково.Некоторые отличия: приложения в браузере могут полагаться на такие функции браузера, как доступ к html dom, запуск javascript и т. Д. Приложение OOB не запускается в браузере, поэтому, очевидно, это не применимо.Кроме того, если мы имеем дело с «доверенным» OOB-приложением, оно может выполнять действия, которые запрещены по соображениям безопасности в браузере (например, COM-взаимодействие).

Если вы хотите создать приложение, которое работает во всехВ трех местах мой совет - начать создавать приложение как приложение Silverlight в браузере, которое является автономным, то есть оно не опирается на веб-страницу, на которой оно размещено, и включает в себя все необходимые ресурсы внутри пакета xap (скореечем полагаться на то, что они находятся рядом с пакетом на веб-сервере).Портирование такого приложения в приложение Silverlight OOB было бы непростым делом - достаточно просто установить флажок в Visual Studio, и все готово.Портирование его в WPF было бы значительным трудом, но это было бы намного лучше, чем идти другим путем.

...