Silverlight против Flex - PullRequest
       37

Silverlight против Flex

71 голосов
/ 21 августа 2008

Моя компания разрабатывает несколько типов приложений. Большая часть нашего бизнеса связана с созданием мультимедийных приложений, как правило, во Flash. Однако теперь эта сторона дома начинает переходить к разработке Flex.

Большая часть других наших разработок выполняется с использованием .NET. Вместо этого я пытаюсь продвинуться в разработке Silverlight, так как это позволит лучше использовать разработчиков .NET в штате. Я предпочитаю платформу Silverlight, а не платформу Flex, потому что Silverlight - это весь код .NET. У нас в штате больше разработчиков .NET, чем разработчиков Flash / Flex, и большинство наших разработчиков Flash / Flex являются художниками графики (а не настоящими программистами). Единственная причина, по которой они сейчас стремятся к Flex, заключается в том, что это кажется логичным шагом от Flash.

Я занимался разработкой, используя оба, и я искренне верю, что с Silverlight работать легче. Но я пытаюсь убедить людей, которые являются только разработчиками Flash.

Итак, вот мой вопрос: если я собираюсь пойти на собрание, чтобы похвалить Silverlight, почему компания хочет использовать Silverlight вместо Flex? Кроме очевидного "не у всех есть Silverlight", каковы плюсы и минусы для каждого?

Ответы [ 22 ]

52 голосов
/ 22 августа 2008

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

  1. Преимущество второго двигателя - точно так же, как Microsoft создала «лучшую Java» с помощью .NET, они могут посмотреть, как вы создадите плагин RIA с нуля, сегодня. У них есть преимущество в том, что они знают, как люди сегодня пользуются Интернетом, о чем изобретатели Flash никогда не могли бы точно догадаться. Flash может добавлять функции, но они не могут реально изменить платформу и начать все сначала.

  2. Знакомство с разработчиками. Хотя Silverlight - новая модель, она не совсем незнакома разработчикам. Они «поймут» способ, которым Silverlight работает намного быстрее, чем поймут, как запустить новую среду разработки с новым языком сценариев и новыми парадигмами событий.

  3. Избавляясь от временной шкалы во Flash, Flash изначально создавался для анимации на основе ключевых кадров, и хотя есть способы абстрагироваться от этого, он лежит в основе работы Flash. Silverlight отказывается от этой модели, ориентированной на приложения.

  4. ScottGu - ScottGu загорелся по поводу Silverlight. Нуфф сказал.

  5. Крутые новые функции - Хотя Silverlight все еще имеет некоторые преимущества, связанные с Flash, в отношении некоторых очевидных функций (таких как интеграция с веб-камерой / микрофоном или ускорение 3D / графики), в Silverlight встроены некоторые новые технологии Deep Zoom является одним из примеров. Я вижу больше «революционных» технологий на стороне Silverlight, в то время как Flash сейчас находится в режиме обслуживания.

30 голосов
/ 22 августа 2008

Здесь есть два вопроса: Silverlight против Flash в качестве платформы и Silverlight против Flex в качестве платформы RIA.

Первый вопрос зависит от ваших временных рамок. Flash Player имеет более 95% охвата, Silverlight не имеет никакого отношения к этому. Тем не менее, Silverlight может попасть туда, ведь он поддерживается Microsoft. Если вы хотите запустить сайт на следующей неделе и хотите иметь большую аудиторию, Silverlight не подходит. Если вы хотите запустить действительно классное приложение, которое все захотят использовать, оно будет немного другим, если ваше приложение достаточно хорошее, ваша целевая аудитория может установить Silverlight, чтобы иметь возможность его запускать.

Что касается второго вопроса, то это вопрос того, насколько легко разрабатывать приложений в Silverlight. Flex - это не просто набор виджетов, это очень большой фреймворк, который делает многое, что облегчает работу разработчика. Вы можете написать те же приложения, используя только основной API Flash, но это будет очень много работы. В зависимости от того, что доступно в Silverlight, это должно быть важным фактором при принятии решения. Если вы можете сократить время разработки, стоит ли иметь две платформы?

22 голосов
/ 22 августа 2008

Я думаю, что Silverlight наиболее выгоден для компаний, которые имеют разработчиков .NET, но не имеют опыта дизайнеров.

Наборы навыков будет легче найти, если найти разработчиков на C # или VB по сравнению с нахождением гуру ActionScript. Однако есть компромисс:

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

Сейчас инструменты дизайнера Silverlight наполовину испечены и могут быть головной болью. Например, ошибки Blend при попытке отобразить любой xaml, содержащий IValueConverter, это проблематично. Я понятия не имею, что опыт разработчика Adobe, я уверен, что это так же волосато.

Итак, на данном этапе игры все сводится к человеческим ресурсам:

Если у вас есть опыт работы с .NET и мало вложено в навыки проектирования, переходите на Silverlight. Навыки программирования / инструменты будут передаваться. Если у вас есть опыт проектирования и набор навыков, используйте Flex. Дизайнерские навыки / инструменты будут передаваться.

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

Перефразируя Мнение Джона с другой точки зрения:

Я думаю, вы должны смотреть на Flex как на долгосрочную игру, точно так же, как это делает Adobe. Существует очевидный баланс в том, когда использовать Silverlight против Flex, когда вы беспокоитесь о доступности и установке базы, но есть и другие причины, по которым Flex является хорошим направлением для продвижения:

  1. Преимущество второго двигателя - так же, как Adobe создала «лучший Java-апплет» с помощью Flash они могут смотреть на как бы вы спроектировали среду выполнения из царапина, сегодня. У них есть преимущество знания того, как люди используют сеть сегодня, что-то изобретатели существующего клиента платформы никогда не могли иметь точно угадал. .NET может добавить особенности, но они не могут реально забить платформу и начать заново.

  2. Дизайнерское знакомство - пока Flex / AIR - это новая модель программирования, это не совсем незнакомо дизайнеры. Они "доберутся" до пути Flex работает намного быстрее, чем они поймут, зажигая новый среда проектирования с новой функцией плохие инструменты и новая анимация парадигм.

  3. Избавление от цветовой модели RGB в Silverlight - .NET изначально построен для окон, и это на Суть того, как это работает. Флекс бросил давным-давно для дизайн-ориентированных модель.

  4. Все ваши инструменты работают на вашем Mac. Nuff сказал.

  5. Интересные функции - Silverlight по-прежнему имеет некоторое догоняющее отношение к Вспышка некоторых очевидных особенностей (например, интеграция с веб-камерой / микрофоном или 3D / графическое ускорение).

15 голосов
/ 02 октября 2009

Мы делаем и silverlight, и flex, и вот точка зрения разработчика для обоих.

Плюсы Silverlight:

  1. Мощность C #, фрагменты кода, повторное использование существующих реализаций алгоритма C #
  2. Мощность других языков, Generics, Linq и т. Д.
  3. Мощность собственного исполнения CLR вместо интерпретатора сценариев действий Flash
  4. Одна интегрированная Visual Studio для всех разработчиков
  5. Expression Blend действительно классный и более продвинутый редактор, чем Flex Builder
  6. XAML - дружественная поисковая система
  7. Довольно приятные переходы состояний и их легко определить
  8. Потоки и асинхронные задачи
  9. Доступность, никто не знает, что Microsoft всегда делала лучшие возможности доступа для всех своих продуктов, они всегда хорошо работали с людьми с ограниченными возможностями, сравнивая только браузеры, IE поддерживает полную доступность, а Safari / firefox и т. Д. Не где-то ближе.

Минусы Silverlight:

  1. Строго говоря, платформа Microsoft, я знаю, что многие будут спорить, но при нынешнем сценарии половина парней из Intel Mac не может работать с Silverlight 3.0, все парни из PPC Mac не могут использовать Silverlight 2.0 и более поздних версий, а Silverlight для Linux отсутствует.
  2. Существует моно, но официально не поддерживается Microsoft, он всегда будет отставать от реверс-инжиниринга .NET и его переноса на другую платформу, пока не готово.
  3. Большинство компонентов / элементов управления «запечатаны», поэтому их сложно расширить и переопределить, чтобы легко создавать новые компоненты.
  4. Плохая архитектура CustomControl / UserControl. Например. Вы не можете иметь корень XAML в качестве ComboBox или любого другого элемента управления и позволить ему иметь как дизайн, так и код, вы можете создать пользовательский элемент управления, но они слишком сложны
  5. Привязка требует именования компонентов и не поддерживает выражения экземпляров, как это делает flex, хотя двусторонняя привязка хороша в silverlight, но вы должны написать длинные коды для нескольких привязок для одного математического выражения
e.g.
// this is possible in flex..
// but not in silverlight
<mx:TextBox id="firstName"/>
<mx:TextBox id="lastName"/>

// display full name..
<mx:Label text="{firstName.text} {lastName.text}"/>

Плюсы Flex:

  1. По-настоящему независимый от платформы, поддерживается на различных аппаратных и операционных системах и действительно отлично работает везде.
  2. Открытый исходный код позволяет легко понять и расширить функциональность.
  3. Каждый элемент управления / компонент может быть расширен, и есть меньше ограничений, переопределяющих поведение по умолчанию.
  4. Самый простой способ создания новых компонентов, вы можете получить mxml из любого элемента управления и расширить их с помощью обширного связывания
  5. Flex содержит множество элементов управления, и вам не нужна сторонняя библиотека

Минусы Flex:

  1. Медленное выполнение для итеративного выполнения, без потоков !! нет асинхронных задач !!
  2. Исходя из пункта 1, отличная анимация или графика невозможны
  3. Нет дженериков, Нет других языков, Нет linq ..
  4. Числовой класс содержит ошибку, не может хранить полное 64-битное длинное значение
  5. Eclipse - плохой дизайн отличного интерфейса

Заключение

  1. Мы используем flex для приложений данных, это простые приложения для обработки форм
  2. Silverlight для чрезвычайно насыщенной графики и анимации
13 голосов
/ 21 августа 2008

Проблема с Silverlight заключается в том, что многие люди до сих пор не установили его. Кроме того, я не уверен, насколько хорошо ваши существующие разработчики .Net смогут использовать имеющиеся у них навыки, если они знакомы только с более традиционным кодированием .Net на стороне сервера.

Каковы ваши причины использовать Silverlight над Flex? Если вам нужно спросить у сообщества SOFlow о причинах, вам будет странно, что вы захотите это сделать.

11 голосов
/ 24 августа 2008

Еще одним преимуществом разработки Flex является то, что вы можете перейти к разработке настольных приложений (Adobe AIR) с тем же исходным кодом (и той же IDE) и распространять их из Интернета. Вы можете проверить это для будущего платформы Flash.
Обновление Q3 / 2011: Flash 11 поддерживает низкоуровневое 3D-ускорение, и уже существует множество платформ и основных движков (Unreal Engine 3, Unity), поддерживающих его. Однако в будущем можно ожидать, что приложение AIR будет работать на платформах Windows, Mac, Android, Playbook и iOS (поддержка Linux прекращена). С абсолютным минимумом хлопот между портированием между ними (по крайней мере, если у вас есть Adobe CS5.5 +).

Обновление Q2 / 2015: Silverlight официально мертв. Adobe AIR жив, но не процветает - это может быть полезно на основе ваших навыков и цепочки инструментов. И Microsoft, и Adobe признают, что HTML5 - это путь (будь то с AIR, Apache Cordova или Visual Studio).

Обновление Q3 / 2017: Ха-ха, кто даже больше не использует Flash.

7 голосов
/ 15 января 2009

Вы никогда не получите честного голосования по этому вопросу на SO, поскольку в нем так много разработчиков Microsoft.

Кроме того, люди, вероятно, проголосуют против этого ответа, который действительно все говорит.

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

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

7 голосов
/ 15 января 2009

Не забыть:

Flex очень кроссплатформенный, так как он компилируется с использованием компиляции Java, что означает, что вы можете легко использовать Mac или Linux при разработке приложений Flex. У меня есть текущие настройки круиз-контроля (в которых используется Linux). Я создаю сборки приложений Flex, но разработчики используют как Mac, Linux и Windows.

По моему опыту, Java-разработчики чувствуют себя как дома в Flex Builder, поскольку он основан на Eclipse.

6 голосов
/ 22 августа 2008

Программисты Silverlight не знают, что им не хватает, когда дело доходит до Flex. В Silverlight отсутствует модель компонентов и возможности запуска событий, которые есть у Flex. Используя XNA и C #, мой друг должен перепрыгнуть через все виды обручей, чтобы заставить его приложение Silverlight работать. Затем его нужно передать дизайнеру, чтобы он выглядел наполовину прилично.

Послушайте подкасты deepfriedbytes.com на Silverlight, и вы услышите, как даже пара парней, которые действительно используют Silverlight, признают некоторые из этих проблем. (Я думаю , если я правильно помню, один из парней работает на Microsoft, но я могу ошибаться - я слушал это на прошлой неделе). Они согласны с тем, что Silverlight не совсем готов к каким-либо огромным приложениям в его текущем состоянии.

Я бы пошел с Flex, чтобы получить хороший чистый, простой подход - особенно если вы уже знакомы с Flash и ActionScript 3.0. Flex, на мой взгляд, имеет больше смысла - Silverlight все еще нуждается в зрелости.

6 голосов
/ 13 мая 2009

В конце концов, ваши разработчики не должны диктовать вашу технологию. Это абсолютно решение о продукте, которое должно основываться на ваших пользователях.

Если вы развертываете в потребительском Интернете, Flash Player или AJAX - это путь. Если вы развертываете в частной локальной сети для .net предприятия, у вас есть варианты.

...