Вопрос

Аякс, Гибкий и Сильверлайт Вот несколько способов сделать веб-приложения более интерактивными.Какие факторы вы бы учитывали при выборе того, что использовать для нового веб-приложения?

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

Это было полезно?

Решение

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

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

Аякс работает в любой современный браузер который может работать JavaScript.Flex требует Flash или чего-то еще, что может справиться SWFs, но как только это будет установлено, это тотальный фрирайд что касается совместимости.Сильверлайт — это сложный и непонятый так внимательно рассмотрите свой база пользователей прежде чем отправиться с этим набегом 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 — на данный момент у Runtime довольно низкая установленная база (и нет поддержки Linux).

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

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

  • Сильверлайт:Любой язык .NET (C#, Visual Basic, IronPython(?), IronRuby(?)) (и XAML для определения пользовательского интерфейса).
  • Аякс:JavaScript (и XHTML для определения пользовательского интерфейса)
  • Гибкий: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. Сильверлайт -- Насколько мне известно, SDK доступен для Windows бесплатно и может использоваться с вашими любимыми инструментами разработки .NET.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Silverlight — 1.0 имел очень ограниченные элементы управления пользовательским интерфейсом, но в 2.0 будет добавлено гораздо больше, и я уверен, что мы продолжим видеть добавление элементов управления в будущих выпусках.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top