Выбор между Ajax, Flex и Silverlight

Аякс, Flex и Silverlight - это несколько способов сделать более интерактивные веб-приложения. Какие факторы вы бы приняли во внимание, решая, какие из них использовать для нового веб-приложения?

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
11
0
1 498
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

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

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

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

Кросс-платформенная совместимость - это не проблема, которая раньше была проблемой, поэтому проблема заключается в следующем: Получите ли вы больше возможностей от библиотеки подключаемых модулей, чем потеряете от исключенной аудитории?

Мой собственный ответ до сих пор всегда был JavaScript / Ajax, но я бы пересмотрел это в любом новом проекте.

Какова ваша аудитория: общедоступный веб-сайт или бизнес-приложение в интранете? Показатели принятия не актуальны, если у вас есть контролируемая аудитория, которая установит то, что необходимо для запуска вашего приложения. Однако, если вам нужна максимально большая аудитория для успеха вашего веб-стартапа, это может иметь решающее значение.

Какова ваша цель? Строить что-то по самой низкой цене? Осваиваете новую технологию?

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

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

Ответ принят как подходящий

Вот краткое изложение каждой области (с множеством полезных ссылок):

Кросс-платформенная совместимость

Аякс работает в любой современный браузер, который может запускать JavaScript. Flex требует Flash или чего-либо еще, что может обрабатывать SWF, но после его установки это тотальный фрирайд, что касается совместимости. Silverlight - это сложно и неправильно, поэтому внимательно рассмотрите свой база пользователей, прежде чем идти с этим набегом MS в гонку вооружений богатых веб-приложений. Также имейте в виду, что Silverlight все еще находится в стадии бета-тестирования, поэтому он может стать более широко используемым и установленным в будущем по мере его разработки.

Спектакль

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

Инструменты разработчика

Для каждого из трех предусмотрены инструменты разработки «золотого стандарта»:

  • Ajax имеет практически неограниченные возможности, в зависимости от остальных ваших технологий и архитектуры. Большие вопросы, с которыми вы действительно сталкиваетесь, - это то, на какие библиотеки положиться, и Google озвучил довольно хорошо принятый ответ с такими вещами, как Веб-инструментарий. Если сразу перейти к делу, это всего лишь XML и JavaScript, верно?

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

  • Microsoft разместила Microsoft Expression Blend версий 2.0 и 2.5 для разработки пользовательского интерфейса приложений Silverlight 1.0 и 2 соответственно. Visual Studio 2008 можно использовать для разработки и отладки приложений Silverlight (из Википедии).

Поддержка сообщества

Для всех трех вариантов существует поддержка как официального, так и неофициального сообщества, корпорации и открытого исходного кода. То, с чем вы уже интегрированы и что заставляет вас чувствовать себя как дома, очень индивидуально, но я дам вам один совет: придерживайтесь того, что вы знаете. Если вы разработчик MS и используете MSDN в качестве домашней страницы, вы, вероятно, подумаете, что Документация Silverlight и форумы действительно полезны. У Flex очень похожая история; форумы довольно хороши, и если вы уже пользуетесь Flash, вы будете как дома с их документация и сообщество пользователей.

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

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

На мой взгляд, выбор в основном должен основываться на характере приложения, которое вы создаете (например, если вам нужно манипулировать векторной графикой, Ajax в значительной степени отсутствует), но вот некоторые общие рекомендации:

Повсеместность

  1. Ajax - поддерживается всеми современными браузерами на разных платформах.
  2. Flex - Runtime (Flash Player) имеет очень широкую установленную базу для Windows, Mac OS, Linux. Версия для Linux была немного глючной, когда я в последний раз проверял, хотя
  3. Silverlight - среда выполнения имеет довольно низкую установленную базу (и не поддерживает Linux) на данный момент

Выбор языка программирования

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

  • Silverlight: любой язык .NET (C#, Visual Basic, IronPython (?), IronRuby (?)) (И XAML для определения пользовательского интерфейса)
  • Ajax: JavaScript (и XHTML для определения пользовательского интерфейса)
  • Flex: ActionScript 3 (и MXML для определения пользовательского интерфейса)

Стабильность и совместимость API

  1. Flex - среда выполнения одинакова для всех платформ и браузеров, на данный момент более зрелая и стабильная, чем Silverlight.
  2. Silverlight - среда выполнения одинакова для всех платформ и браузеров, менее зрелая, чем Flex / Flash, версия 2.0 все еще находится в стадии бета-тестирования.
  3. Ajax - проблемы совместимости между браузерами (хотя их можно решить с помощью библиотек Ajax)

Интеграция с Интернетом / браузером

  1. Ajax - Контент встроен в браузер и основан на стандартах: доступен для поиска браузерами и сканерами поисковых систем, при условии соблюдения любых стандартных практик пользовательского интерфейса, установленных браузером и операционной системой.
  2. Flex и Silverlight - Контент, не являющийся встроенным в браузер (т. Е. Выполняется в собственной маленькой «песочнице / прямоугольнике»): не обязательно подчиняется установленным практикам пользовательского интерфейса для данной платформы.

Инструменты разработчика

  1. Ajax - ваш любимый редактор кода, браузер и набор инструментов для отладки браузера.
  2. Flex - Flex SDK доступен бесплатно для Windows, Mac OS и Linux и может использоваться с вашим любимым редактором кода. Включен отладчик командной строки, но предоставленный Adobe профилировщик доступен только в коммерческой среде разработки Flex Builder.
  3. Silverlight - Насколько мне известно, SDK доступен для Windows бесплатно и может использоваться с вашими любимыми инструментами разработки .NET.

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

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

  • JavaScript / HTML - нет встроенной поддержки чего-либо, кроме простых раскрывающихся списков, кнопок и текстовых полей. Если вам нужно что-то вроде древовидного элемента управления или элемента управления вкладками, вам придется свернуть свое собственное или найти стороннюю библиотеку.

  • Adobe ActionScript - встроенная поддержка широкого спектра расширенных элементов управления пользовательского интерфейса.

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

Другие вопросы по теме