Silverlight против Flex

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

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

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

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

7 ответов


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

  1. преимущество Second mover-так же, как Microsoft построила "лучшую Java" с .NET, они могут посмотреть, как вы будете проектировать плагин RIA с нуля, сегодня. Они имеют преимущество знания того, как люди используют сеть сегодня, то, что изобретатели Flash никогда бы точно не догадались. Flash может добавлять функции, но они не могут реально бросить платформу и начать все сначала.

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

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

  4. ScottGu-ScottGu загорелся о Silverlight. Больше сказать нечего.

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


здесь: приложения Silverlight и Flash в качестве платформы и Silverlight и Flex в качестве основы РИА.

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

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


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

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

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

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

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

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

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

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

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

  1. преимущество второго двигателя-как раз как Adobe построила " лучший Java-апплет" с Flash они могут смотреть на как бы Вы дизайн выполнения нуля, сегодня. Они имеют преимущество знать как люди используют паутина сегодня, что-то этот изобретатели существующего клиента платформы не могли точно угадал. .NET может добавить особенности, но они не могут реально chuck платформа и начать все сначала.

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

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

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

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


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

плюсы Silverlight:

  1. мощность C#, фрагменты кода, повторное использование существующих реализаций алгоритма C#
  2. власти других языках тоже, дженерики и LINQ и т. д.
  3. сила собственного исполнения CLR вместо интерпретатора сценария действия Flash
  4. одна интегрированная Visual Studio для всех разработок
  5. Смешать Выражение действительно классный и более продвинутый редактор, а затем 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 плохо проектировать что-то отличное UI

вывод

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

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

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


еще одним преимуществом разработки 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 Мастерская.)

обновление Q3 / 2017: haha wow, который даже использует Flash больше.


Не забывайте:

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

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