Подтвердить что ты не робот

WPF vs Silverlight 3.0

Бета-версия Silverlight 3.0 только что была анонсирована на конференции Microsoft Mix Mix в Лас-Вегасе.

Две функции новой бета-версии - это 3D-графика и возможность запуска приложений за пределами браузера, что для меня показалось, что это две из основных функций, которые ранее предлагал WPF (Windows Presentation Foundation) поверх silverlight.

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

Кто-нибудь внедрил новое приложение с использованием WPF в последнее время, и если да, то что привело вас к такому решению? Учитывая объявленные изменения в silverlight, изменилось бы ваше решение, если бы вы сделали это сейчас, а если нет, то почему?

Любые советы будут оценены.

4b9b3361

Ответ 1

Самая большая разница, которую я нахожу, - это асинхронная модель, которую вы должны принять в приложении Silverlight. Это похоже на преимущество (и это может быть), но оно делает иногда бывает очень сложно.

Существуют также некоторые ограничения, которые могут быть реальной проблемой, например, отсутствием поддержки печати. ​​

Я бы порекомендовал Silverlight над WPF, когда:

- Нет необходимости в максимально возможной производительности (включая графику) - Может обойти отсутствие поддержки печати (она придет, мы просто не знаем, когда) - Поддержка камеры/микрофона не требуется - Может переносить модель приложения/разработки assync. - Может переносить ограничения на WCF (без поддержки WS-Security на данный момент) - Нет необходимости хранить огромное количество данных на клиенте. - Нет необходимости направлять интеграцию с приложениями на стороне клиента, такими как Office. - имеет сервер для размещения вашего приложения

Ответ 2

Я бы сказал, что основное отличие заключается в том, что WPF требует, чтобы клиент имел .Net 3.0+ framework. Silverlight требует только времени выполнения. Теперь, когда сказано, WPF больше ориентирован на контролируемые среды, такие как интрасеть. Silverlight предназначен для публичной сети. Другое отличие в том, что Silverlight - это кросс-платформа (Windows, Mac, Linux в будущем и Cross Browser). WPF предназначен только для Windows.

.Net framework может быть огромной загрузкой для некоторых пользователей. Silverlight - всего 4-5 МБ. Это большая разница для запуска вашего приложения в Интернете, но не большая проблема, если это внутреннее приложение в вашей компании.

Silverlight - это песочница, предназначенная для использования в Интернете. Поэтому, если вашему приложению требуется больше разрешений, вам понадобится WPF.

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

Ответ 3

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

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

Silverlight

  • Выполняется полностью на клиенте с помощью AJAX вызовы на сервер для данных
  • Может работать на любом сервере, включая Windows и Linux/Apache
  • Использует платформу COMPACT.NET

WPF

  • Работает на клиенте... обычно вызывает службы для данных
  • Работает в Windows XP/Vista с .NET 3.5
  • Использует всю платформу .NET

Ответ 4

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

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

Если запуск в качестве веб-приложения не является обязательным требованием, тогда решение будет без проблем - WPF полностью.

Ответ 5

  • Кто-нибудь реализовал новое приложение, использующее WPF в последнее время, и если да, то что привело вас к этому решению: ну, поскольку WPF был только настольным (или браузером на основе XBAPS), но это была скорее система развертывания, чем реальная система), было хорошей причиной для этого.
  • "Ваше решение изменилось бы, если бы вы сделали это сейчас, а если нет, то почему?" - Silverlight, даже на рабочем столе в v3, по-прежнему сильно изолирован и поэтому некоторые функции будут трудно/невозможны из-за песочницы. Также возможность использования частей DirectX в WPF по-прежнему даст еще одну область оптимизации, которую Silverlight и ее 3d не смогут использовать.

Ответ 6

Стоит отметить, что Silverlight 3D не является полной 3D-поддержкой WPF, а только проекцией 2D в 3D - т.е. принимает 2D-плоскость и допускает вращение в направлениях X, Y и Z. WPF имеет полное 3D-моделирование с материалами, просмотр портов, освещение и позиционную поддержку камеры и т.д.

Ответ 7

Я хорошо разбираюсь в разработке нашего первого приложения WPF для выпуска. Silverlight 3 выглядит великолепно, но для этого приложения я все равно бы выбрал WPF. Приложение сосредотачивается на представлении и обработке очень больших наборов изображений, размещенных на центральном сервере в сетях наших клиентов. Кроме того, скорость обновления/изменения программного обеспечения будет минимальной. Массовый импорт новых изображений с локального диска, отсутствие требований к подключению к Интернету, проблемы с производительностью и т.д. Делают этот проект хорошо подходящим для WPF.

Однако один из наших предстоящих проектов потребует от многих удаленных пользователей доступа к одному хранилищу данных в нашей сети. Данные, с которыми они работают, требуют значительной проверки и обработки ошибок, поэтому запуск этого кода в локальном режиме является идеальным. Им потребуется возможность работать как в автономном режиме, так и в автономном режиме и оставаться в синхронизации (возможно, с SQL Data Services). SLOOB (Silverlight Out Of the Browser), скорее всего, будет нашим выбором для этого, чтобы они могли использовать все преимущества Silverlight, но использовать его, как регулярно устанавливаемое приложение, даже без подключения к Интернету.

Оба формата имеют свое место: трюк будет заключаться в том, чтобы избежать использования Silverlight для всего - у нас есть больше инструментов, чем только один молот.: -)

Ответ 8

Другое отличие состоит в том, что с SL у вас есть только одно "окно", вы не можете иметь диалоги (ими можно моделировать, но их размер ограничен главным окном), и вы не можете добавить поддержку нескольких мониторов.

Если вам нужно взаимодействовать с существующими бизнес-приложениями (например, открыть документ в средстве просмотра архива), вам необходимо использовать WPF.

Ответ 9

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

Ответ 10

Хранение. У вас есть только 25 МБ изолированного хранилища вне браузера. Если я правильно помню из некоторого видео mix09, это ограничение ниже, если ваше приложение находится в браузере.

http://bliny.net/blog/post/Out-of-Browser-with-Silverlight-3.aspx

Нет FlowDocument. Таким образом, существуют ограничения.