Silverlight против WPF - PullRequest
       12

Silverlight против WPF

5 голосов
/ 06 января 2010

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

Ответы [ 3 ]

7 голосов
/ 06 января 2010

Silverlight гораздо менее способен, чем WPF, даже в версии 4.

Он может работать в браузере или вне браузера и имеет некоторые преимущества, но основные преимущества Silverlight по сравнению с WPF связаны с развертыванием. Развернуть приложение Silverlight очень просто - просто обратитесь к XAP на веб-странице, расположенной на вашем сервере, и она развернута (при условии, что у ваших пользователей установлен Silverlight). WPF требует немного больше работы с точки зрения развертывания, поскольку это полнофункциональное настольное приложение.

При этом WPF предоставляет гораздо больше возможностей. Он предоставляет доступ ко всей платформе .NET (в отличие от [растущего] подмножества).

Мое личное предпочтение будет заключаться в использовании Silverlight - при условии, что приложению не требуется взаимодействие с устаревшим программным обеспечением, доступ к ресурсам в системе или другие вещи, недоступные в Silverlight. Однако, если вам нужно сделать что-либо, что обременит систему (например, тяжелые вычисления, где вам нужен параллелизм, использование графических ресурсов, сложная трехмерная работа и т. Д.), Тогда WPF - путь.

7 голосов
/ 06 января 2010

Как упоминают Габриэль (и Рид), Silverlight - уменьшенная версия WPF.

WPF предназначен в основном для настольных приложений и обладает расширенными функциями макета, анимации и привязки данных, которых у Silverlight еще нет. WPF может быть доставлен через браузер, но он не работает как плагин для браузера и поэтому не может взаимодействовать с любым другим контентом в браузере. Можно создавать приложения WPF, в которых размещаются элементы управления и окна WinForms - это может упростить перенос портфолио существующего кода WinForms (если это важно для вас). WPF также обладает более сложными 3D-возможностями, чем Silverlight, хотя и ненамного.

Siverlight , доступен на нескольких платформах (например, Linux и OSX) через среду выполнения Mono и порт Silverlight Moonlight. Silver light может работать как автономное приложение, так и в среде браузера, что позволяет создавать веб-приложения. При запуске в качестве плагина на основе браузера приложение Silverlight может взаимодействовать с содержимым в браузере и может отображаться рядом с HTML. Вы также можете управлять приложением Silverlight с помощью JavaScript - создавая практически бесшовную среду программирования. В приложениях Silverlight есть некоторые ограничения - например, все вызовы WCF являются асинхронными (из-за модели потоков Silverlight / Browser). Кроме того, не все SDK платформы .NET Framework доступны для приложений Silverlight.

Обе технологии очень похожи в том, что они используют комбинацию разметки и кода для предоставления функциональности. Чтобы выбрать между ними, вам нужно решить, создаете ли вы браузерное или автономное приложение, хотите ли вы быть переносимым на другие платформы, и нужен ли вам полный набор библиотек, доступных в .NET.

Что касается средств разработки, то лучшим из всех, на мой взгляд, Expression Blend, является элегантный и мощный пользовательский интерфейс для визуального создания пользовательских интерфейсов WPF или Silverlight. Он также интегрируется с Visual Studio, которая по-прежнему является превосходной средой разработки (Blend имеет ограниченные возможности редактирования кода). Существуют также такие инструменты, как Expression Design и Expression Encoder, которые помогают создавать графику и управлять видео для использования в приложениях WPF и Silveright.

3 голосов
/ 06 января 2010

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

Silverlight не обладает всеми возможностями WPF (частично из соображений безопасности - он используется в браузере). Однако с Silverlight у вас есть доступ ко всем остальным преимуществам веб-приложений (одно место обновления и т. Д. - JavaScript, CSS и HTML).

...