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





Все веб-среды выполнения, такие как 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 в значительной степени отсутствует), но вот некоторые общие рекомендации:
Повсеместность
Выбор языка программирования
(Неупорядочено из-за субъективности, но обратите внимание, что Silverlight предлагает наибольший выбор. Также обратите внимание, что необходимо учитывать существующий языковой опыт разработчиков в вашей команде.)
Стабильность и совместимость API
Интеграция с Интернетом / браузером
Инструменты разработчика
Помимо того, что уже было упомянуто здесь, еще одна важная вещь, которую следует учитывать, - это то, каким будет ваш пользовательский интерфейс.
Если вы собираетесь использовать множество расширенных элементов управления пользовательского интерфейса, таких как деревья, списки, вкладки и т. д., Примите во внимание следующее:
JavaScript / HTML - нет встроенной поддержки чего-либо, кроме простых раскрывающихся списков, кнопок и текстовых полей. Если вам нужно что-то вроде древовидного элемента управления или элемента управления вкладками, вам придется свернуть свое собственное или найти стороннюю библиотеку.
Adobe ActionScript - встроенная поддержка широкого спектра расширенных элементов управления пользовательского интерфейса.