Почему я должен использовать Flex?

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

Ответы

Ответ 1

В большинстве случаев я бы подтолкнул вас к стандартным технологиям веб-разработки. Javascript больше не является большой проблемой для отладки или поддержки с хорошими библиотеками, такими как jQuery/Prototype, чтобы сгладить некоторые из несоответствий браузера и инструменты, такие как Firebug и отладчик MS script, чтобы помочь в отладке.

Бывают случаи, когда Flash - лучший вариант, но только в тех случаях, когда вы выполняете сложные анимации. И, если вы готовы инвестировать усилия, большинство анимаций может быть достигнуто без использования вспышки. A "

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

Вспышка нарушает веб-интерфейс.
Например:

  • Если я нажму на колесико мыши по ссылке, эта ссылка открыта в фоновом режиме Вкладка. В флеш-приложении нет способа для имитации этого поведения.
  • Если я выберу текст в браузере и щелкните правой кнопкой мыши. Я получаю предоставленные опции. браузером, который включает в себя вещи например "Искать в Google для этого текста". В флеш-приложении эти параметры отсутствуют. дольше.
  • Если я нажму правой кнопкой мыши на ссылку или image Я получаю другой набор варианты, которые недоступны в flash приложение. Это может быть очень разочарование для пользователя, который не "flash savvy".

Ответ 2

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

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

Flex также упрощает общение с веб-службами, а синтаксический анализ XML через ECMA безумно силен и прост.

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

Единственным реальным недостатком, о котором я могу думать, является требование флеш-плеера, но я бы сказал, что вполне можно предположить, что большинство браузеров поддерживают флеш-плеер; поддерживается даже konquerer в Linux; гораздо больше, чем в Silverlight runtime (который я НИКОГДА не планирую устанавливать)

Ответ 3

Вот мой опыт: вам действительно нужно рассмотреть две вещи отдельно - развитие и опыт конечных пользователей. Flex выделяется в первой области:

  • ActionScript - отличная смесь Java и JavaScript, поэтому вы получаете знакомый язык с сильной поддержкой OOP
  • отладка намного проще, чем вы можете достичь в JavaScript
  • Структура Flex ориентирована на компоненты и управляется событиями, что помогает создавать богатые пользовательские интерфейсы (HTML не был создан для поддержки сценариев пользовательского интерфейса приложения).

С другой стороны, опыт конечного пользователя хуже при запуске приложения Flex по сравнению с приложением AJAX. Во-первых, вам нужно установить Flash Player, но это, вероятно, не проблема для большинства компьютеров сегодня. Большие проблемы связаны с удобством использования - Flash Player обрабатывает все взаимодействия с пользовательским интерфейсом (вместо браузера), поэтому менеджер паролей не работает, текстовые поля не запоминают предыдущие записи, Ctrl + T и средний щелчок не работает, текстовый поиск не работает и т.д. и т.д.

Мой совет: если вы разрабатываете приложение (богатый пользовательский интерфейс, относительно отделенный от остальной части сети), отправляйтесь в Flex, поскольку это сэкономит вам время, деньги и сделает ваших пользователей более счастливыми, предоставляя более богатые функциональные возможности и более короткие периоды между новыми версиями. С другой стороны, если ваше приложение должно быть тесно интегрировано с сетью и вы хотите, чтобы ваши пользователи могли использовать функции своих браузеров, перейдите к AJAX.

Хорошим примером является Google Docs и Buzzword. Buzzword гораздо больше функциональности (например, текст может обтекать изображение с обеих сторон, чего вы никогда не сможете достичь в DHTML), но Google по-прежнему решил перейти на версию AJAX, потому что это "веб-компания". Нет никакого права или неправильного в том, чтобы сделать это один или другой способ, это просто другое, и важно учитывать, кто ваши конечные пользователи.

Ответ 4

GWT позволяет вам делать то же самое, что и Flex по большей части, и обрабатывает все проблемы совместимости с браузером, а также позволяет вам кодировать/отлаживать на Java с помощью вашей любимой среды IDE.

Все, не изучая новый язык (или платите Adobe $$$ за гибкую IDE, вам нужно сделать что-нибудь реальное).

У Flex есть более красивые виджеты пользовательского интерфейса, чем у GWT, но есть тонна сторонних виджетов (таких как GWT-EXT-JS), которые вы можете использовать - или вы можете использовать существующие любимые JS-виджеты с GWT.

Проверьте это, если вы этого не сделали: http://code.google.com/webtoolkit/

Ответ 5

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

У Flex есть большое сообщество, и он хорошо взломан командой разработчиков евангелизации Adobe. Теперь, что касается замены JavaScript, это звучит как очень широкий круг вопросов. Flex не является заменой JavaScript. Однако то, что он делает, хорошо. То есть, 3D, рисование и обработка данных - в виде диаграммы или таблицы. Flex также обладает поддержкой ActionScript 3, что позволяет вам делать многое из того, что Flash делает в сотрудничестве с компонентами интерфейса MXML, даже не касаясь временной шкалы или ключевых кадров.

В некотором роде Flex является платформой .NET для разработки Flash и Rich Internet Application. Он использует те же концепции источников данных и структуры, ориентированные на компоненты, которые облегчают и быстро развиваются.

Реальный вопрос: чего вы пытаетесь достичь? Какова конечная цель?

Что касается точки отладки, Flex имеет истинный отладчик и профилировщик в среде Flex Builder IDE. К сожалению, JavaScript имеет разные синтаксис и исполнение между браузерами из-за характера движков JavaScript в современных браузерах. Flex, потому что это по существу Flash, использует тот же механизм рендеринга во всех браузерах из-за использования Flash-плагина.

Надеюсь, что прояснилось несколько вещей.:)

Ответ 6

У Flex много дополнительных накладных расходов:

  • Новый язык
  • Клиенты должны иметь установленную флешку (возможно, она должна быть установлена, возможно, не сможет)
  • Клиенты должны загрузить flex framework (несколько сотен килобайт).
  • Содержимое Flex не индексируется поисковыми системами (вопреки тому, что может требовать Google)

У Flex есть одно главное преимущество: - Лучше создавать богатые интерфейсы (см. Picnik.com и т.д.)

Например, в Flex легко создать настраиваемое диалоговое окно, в котором есть тени, внутренние свечения, анимированные открытые, что бы вы ни пожелали.

В заключение, используйте Flex, если вам нужно дополнительное богатство.

Ответ 7

Помимо того, что уже упоминалось здесь, другое существенное различие заключается в том, что JavaScript динамически типизирован, а ActionScript статически типизирован. Будет ли это хорошо или плохо будет зависеть от вашей точки зрения:).

Ответ 8

Если вы хотите, чтобы ваше веб-приложение выглядело как не веб-приложение, Flex довольно хорошо. Вы также можете обойти всю бесполезность превращения HTML + JS в реальное приложение. Для чего-то, что по существу является веб-сайтом, Flex не может быть лучшим выбором, но если вы действительно хотите написать приложение, доступное через браузер, оно быстро развивается и дает великолепные результаты.

Ответ 9

Вместо этого вы должны попробовать Google Gears. Создайте приложение, добавьте в него некоторые Gears, и вы можете значительно увеличить скорость (и надежность) вашего приложения.

http://gears.google.com/

По сути, Google gears дает вам доступ к двум полезным вещам для любого приложения: автономному хранилищу данных и встроенному управлению потоками (позволяет выполнять обновления/вычисления в фоновом режиме и не замедлять работу компьютера пользователя).

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

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

Ответ 10

Несколько причин для рассмотрения Flex:

  • Библиотека управления намного богаче в Flex, чем все, что вы можете сделать с JS/DHTML. Элементы управления диаграммами являются убийцами для бизнес-приложений, и такие вещи, как DataGrid/AdvancedDataGrid, намного опережают все, что вы можете сделать с HTML.

  • Структура Flex была разработана для создания приложений. Он абстрагирует концепции "рамки" в Flash Player, чтобы действительно упростить сбор приложений. Он имеет хорошо продуманную иерархию компонентов, которая упрощает расширение любого из стандартных элементов управления. Он также имеет довольно интуитивно понятную модель событий для обработки пользовательских входов и позволяет легко управлять любыми вашими элементами управления пользовательскими событиями, которые могут пузыриться до исходных компонентов или маршрутизироваться через диспетчер центра событий. Хотя это возможно сделать с помощью JS/DHTML, я не думаю, что это почти так же легко и, конечно же, не предназначено для этого.

  • Вы можете воспользоваться приложением Flex и быстро развернуть его на рабочем столе с помощью среды выполнения AIR. AIR также предлагает дополнительные API-интерфейсы для таких функций, как доступ к локальной системе, встроенная база данных SQLite и т.д. Gears предлагает нечто похожее, но для этого требуется браузер. Конечно, AIR требует среды выполнения AIR, но, по крайней мере, она предназначена для создания настольных приложений.

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

Самый большой я думаю, что если вы действительно используете Java или С#, язык ActionScript будет немного ограничен. Если вы сравниваете его с JavaScript, то он находится в парном порядке или, может быть, немного лучше.

Многие люди будут ездить на Flash Player (или AIR), потому что это не "стандартная". Если бы мы только хотели использовать сайты, которые соответствовали бы 100% стандартам и не содержали плагинов, сегодня у нас не было бы YouTube. Или почти любой другой сайт, который делает интересную визуализацию данных, вы не можете делать с HTML/JS (или, по крайней мере, не с разумным уровнем усилий). Adobe была довольно прогрессивной, открыв инфраструктуру Flex, Blaze DS (для разработки бэкэнд-Java), опубликовала спецификацию AMF и запустила Open Screen Alliance для продвижения Flash Player на мобильные устройства. Flash Player, Flex, Flex Builder и Blaze DS имеют публичные трекеры JIRA. Я бы сказал, что есть хороший шанс, что Flash Player сам будет доступен с открытым исходным кодом в течение следующих 2-3 лет. Я думаю, что Adobe продолжает двигаться к тому, чтобы быть очень открытой и что критика платформы, "закрытая" и "проприетарная", становится менее актуальной. Я думаю, что если разработчики приступят к Flex/FP с открытым сознанием, они действительно будут впечатлены тем, как все это сочетается.

Ответ 11

Эта сравнительная таблица была достаточно хороша, чтобы заставить меня решить, что использовать. Я предпочитаю javascript:)

http://askmeflash.com/article_m.php?p=article&id=11