2009-07-21 3 views
37

Я довольно хорошо знаком с множеством полнофункциональных клиентских приложений WPF. Я знаю, что клиентские приложения WPF поддерживают полную платформу .NET Framework 3.5, позволяют аппаратное ускорение 2D и 3D-графики, тематики, шаблонов, стилей, триггеров, работ.WPF vs XBAP vs Silverlight ... подходит для бизнес-приложений?

Что я не понимаю о том, какие функции и/или тонкости присутствуют или отсутствуют в приложениях XBAP и Silverlight. Я слышал, что XBAP по-прежнему ограничены в определенных целях из-за проблем с безопасностью, но об этом.

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

ответ

17

Wintellect написал хорошее сравнение между Silverlight и WPF опубликованы здесь: http://wpfslguidance.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28278

Из личного опыта WPF и Silverlight я обнаружил, что SL полностью поддерживает приложения LOB. .NET RIA Services - отличное дополнение к SL3 для приложений LOB. Чтобы ответить на ваши последние вопросы, в моем опыте нет ничего, что вернет SL из создания приложений LOB. Единственное существенное различие между WPF и SL в этом обсуждении заключается в том, что SL не имеет доступа к локальным ресурсам на клиентской машине, такой как реестр, и не может получить доступ к конкретным функциям Windows, которые могут использовать WPF, такие как списки или библиотеки для Windows 7 , Я думаю, что Silverlight - лучший выбор для приложений biz из-за простоты развертывания и возможности нацеливаться на несколько платформ.

+0

Очень полезно, спасибо! – Pwninstein

+0

2012 refresher: silverlight 5 теперь поддерживает надежные приложения, поддержку печати и другие интересные новые функции LOB. Да здравствует серебристый свет. http://stackoverflow.com/questions/7788099/silverlight-5-comprehensive-list-of-improvements-changes – felickz

9

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

Что касается Silverlight: я недавно использовал его для разработки сложного пользовательского интерфейса мониторинга телеметрической телеметрии - это скорее приложение для визуализации данных, чем традиционное деловое приложение, но в нем много CRUD, и не было ни одной функции что я хотел реализовать, но не мог из-за моего выбора технологии. И это было SL2.

Я уверен, что у вас будет больше колоколов & свистах, если вы используете XBAP, и если вы можете гарантировать, что ваши пользователи работают .NET 3.5 (или XBAP часть 3.0 тоже?) Я бы пошел для этого. В противном случае я бы не стал рекомендовать Silverlight.

(. Извиняюсь, если вы хотите больше матрицы сравнения особенность - но я думаю, что вы можете найти тех, кто в Microsoft)

+0

+1 Не требуется никаких извинений, хороший ответ! Благодаря! – Pwninstein

12

Что касается Silverlight, я расскажу о своем опыте до сих пор. (NB: перечитав это, это звучит немного негативно, но я указываю на недостающие функции. В целом мне нравится Silverlight, богатый пользовательский интерфейс в браузере с использованием C#? Rocks).

Значительные различия в том, что нет правой кнопки мыши, поддержки колесика мыши, функции печати, и вы не можете открыть новое окно. Приложение OOB SL не может находиться в области уведомлений. Вы можете обрабатывать события мыши в javascript, но не хотите, чтобы ваше приложение перемещало OOB.

Команда SL также, похоже, слишком обеспокоена безопасностью, чтобы окутать ее пригодность к LOB (никаких новых окон, настроек доверия для локального доступа к системе в OOB, области уведомлений и т. Д.).

Некоторые из них делают приложение Silverlight похоже, что он не совместим с окнами. Подумайте о выделенном тексте, щелкните правой кнопкой мыши копию. Или нажмите правую кнопку мыши. Эти основные операции, которые многие люди используют, отсутствуют. Он также чувствует себя как чужой пользовательский интерфейс, например.вы инстинктивно идите, чтобы прокрутить сетку с помощью колеса мыши, и это не сработает. Этот материал работает в любой таблице в браузере, но не в SL.

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

Расширения разметки отсутствуют в SL. Он также имеет целую индексацию привязки, поэтому никаких мешков с недвижимостью без каких-либо трюков. У вас нет триггеров, поэтому вам всегда нужно писать код для подключения событий (раздражая более динамические страницы) . У него нет наследуемого стиля, кроме ImplicitStyleManager в наборе инструментов, который не соответствует задаче.

Так что для некоторых приложений большого размера это нормально, для других вам нужно перепрыгнуть через несколько обручей (например, если вы хотите настроить для клиента). Но это, безусловно, не очень хорошо для ВСЕХ приложений LOB.

Мое впечатление также в том, что SL еще не чувствует себя готовым, есть много мелочей. Например, datagrid разочаровывает (не автоматически растягивается, очень сложно подклассу), блок автозаполнения немного беспорядочен, система навигации немного неуклюжая, combobox/treeview трудно привязать (они действительно не разобрались, если вы хотите связать SelectedItem с другим объектом с itemsSource).

В целом, Silverlight почти там, все в порядке, пока вы готовы принять несколько ограничений и обманов.

+0

У SL3 есть наследование стиля, триггеры и поведение, похожие на WPF. Согласитесь на поддержку без печати: это облом для приложений LOB. На заборе о событиях в системном трее/мыши (за исключением колеса, которое я хочу), так как SL работает на Mac. (Предоставлено большинством веб-пользователей Windows.) –

+0

Да, я понимаю, почему они это сделали, но я все еще ошибаюсь, почему они избавились от основного меню текстовых полей Windows. Не похоже, что они не знают, на какой платформе он работает! Они, похоже, вылетели от этих поведений под радаром, не присутствовали в бета-версии SL3. Выглядит хорошо! Как и поддержка blend. В стилях implict я ожидал, что все дети подберут стиль в соответствии с стилем родителя. Я не вижу ничего, что позволило бы это произойти? Материал BasedOn позволяет объединять, но не является имплантирующим стилем. Хотя я признаю, что я еще не выглядел так тяжело :) – mattmanser

+0

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

18

Я попытался сделать разработку XBAP примерно на 18 месяцев полный рабочий день для довольно амбициозного проекта и абсолютно ненавидел его.

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

В сочетании с ночными кошмарами для развертывания (по сей день для Firefox нет хорошей истории, даже после 3.5 SP1 все еще есть проблемы), я честно полагаю, что MS делает все возможное, чтобы убить XBAP в пользу Silverlight. Я не виню их, просто хочу, чтобы они были более откровенными.

Я бы избегать XBAPs, таких как чума. Это мертвый сценарий без будущего. Не было бы немного удивлен, если бы они были устаревшими в ближайшее время.

+8

Является ли идея запуска приложения Silverlight внутри элемента управления WebBrowser внутри приложения WPF, размещенного в приложении XBAP в firefox, передает тинглы по вашему позвоночнику? http://msdn.microsoft.com/en-us/library/cc656722(v=vs.90).aspx – felickz