2008-09-24 4 views
14

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

+0

В каком смысле популярность имеет отношение? Просто спросите о преимуществах, недостатках. Популярность, помимо того, что ее трудно измерить, совершенно не имеет значения. Я бы действительно изменил название вопроса – 2008-09-24 16:00:55

+0

Спасибо за комментарий ... Я редактировал вопрос. – VirtuosiMedia 2008-09-24 16:09:42

ответ

12

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

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

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

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

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

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

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

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

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

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

+0

Я предполагаю, что большинство пользователей получат Silverlight с обновлением IE8 или Windows - автоматически так же, как вы получите GoogleGears, если вы установите Chrome. – 2008-09-24 17:35:20

+0

Чтобы добавить к этому, Flex является хорошим вариантом при выполнении * богатых * приложений, таких как тяжеловесы или тяжелые медиафайлы (там, где он сияет), это было бы излишним для чего-то в основном текстового. Но с другой стороны, Flash Player 10 тоже имеет некоторые возможности компоновки текста «kick-ass» :) – 2008-09-24 21:13:17

+0

Flash работает так-то плохо на Linux, а вовсе не на бедном BSD, и большинство из нас не беспокоит. Javascript работает везде, включая мобильный. – Rob 2010-10-02 02:17:20

1

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

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

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

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

+0

Я использую только SDK с открытым исходным кодом и могу сделать «настоящие приложения» такими, какие вы сильно зависите от IDE ... и OP не спрашивал о GWT. – mmattax 2008-09-24 16:15:09

1

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

У 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-плагина.

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

1

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

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

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

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

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

0

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

0

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

14

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

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

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

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

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

0

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

http://gears.google.com/

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

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

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

0

Несколько причин, чтобы рассмотреть Flex:

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

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

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

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

Самый большой я думаю, что если вы действительно используете Java или C#, язык 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 с открытым сознанием, они действительно будут впечатлены тем, как все это сочетается.

Смежные вопросы