Flex против ExtJS для внутреннего интерфейса системы, каковы их сильные и слабые стороны? - PullRequest
5 голосов
/ 19 июня 2010

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

Итак, я начал думать, есть ли лучшие инструменты для интерфейса?

Как сравниваются Flex и ExtJS? может в этих областях?

  • кривая обучения
  • функциональность
  • макет (без поддержки CSS)
  • простота реализации
  • тестируемость (TDD в Javascript или в ActionScript?)
  • производительности
  • ремонтопригодность

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

Спасибо всем!

Ответы [ 3 ]

7 голосов
/ 19 июня 2010

Я начну с моего резюме:

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

Сравнение разметки

Flex уделяет большое внимание MXML, который является языком разметки.Это будет совершенно новым для большинства ваших разработчиков, поэтому, если они уже знают HTML / JavaScript / CSS, это может быть точкой отсчета.Сила Flex заключается в том, что он не ограничен, как HTML.Если вам нужно свойство или привязка к данным, вы можете сделать это прямо в теге.Может быть, это не всегда лучший метод для всего, но вы можете.

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

Компоненты / Функциональность

Flex лучше справляется с обработкой данных.Он использует E4X, который является встроенным языком запросов XML, который использует точечный синтаксис.Например, BookCase.Books.Book [@ id = 43]. @ Title.

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

Flex имеетмножество действительно хороших встроенных компонентов для моделирования макетов, ввода и диаграмм.Они просты в использовании, имеют общий интерфейс стилей (как правило) и могут иметь пользовательские стили и подмножество CSS, а также некоторые проприетарные расширения.ExtJS использует стандартную разметку CSS, а не просто подмножество.

ExtJS имеет больше плагинов и компонентов, чем Flex, а элемент управления Menu гораздо более настраиваемый и выглядит лучше.Стиль по умолчанию также немного красивее в ExtJS.

Layout Engine

Flex, на мой взгляд, выигрывает в этом.Если вам нужен макет столбца, вы можете создать сетку или макет потока, чтобы достичь этого, и примерно в 4 строках MXML.То же самое в Ext требует, чтобы объект Javascript проходил через класс макета.ИМО, с ним практически сложнее работать.

Реализация

Обе системы просты в развертывании и обслуживании.Копируйте файлы, и оба будут работать, если вы выполняете непрерывную интеграцию.

Тестируемость

Вы можете использовать jsUnit для ExtJS и FlexUnit для Actionscript.Насколько легко управлять этой тестируемостью, полностью зависит от вашего контроля над стилем разработки.Обе платформы приведут к смешению пользовательского интерфейса с кодом, пригодным для тестирования, с ExtJS, требующим большего разделения по умолчанию.

Если вы все настроите правильно, здесь нет явного преимущества.

Производительность

Internet Explorer в Windows имеет лучшую производительность Flash, к сожалению.Если вы используете Mac, вы можете увидеть медлительность во время начальной загрузки плагина.Во Flex на производстве должен быть запущен рабочий выпуск, и вам необходимо запустить производственный Flash-плеер, а не отладочную версию.В нашей среде рабочий выпуск + производственный Flash Player снизили начальную загрузку на 4-6 секунд, поэтому не забудьте сравнить яблоки.

Анимации будут быстрее во Flash, но, честно говоря, вы на самом деле этого не увидите.много проблем с производительностью, если вы не занимаетесь интенсивной обработкой данных.Если в этом приложении много анимированных диаграмм, скользящих анимаций и тому подобного, вы должны использовать Flash.Это то, для чего он создан, и это хорошо.Если вы просто собираетесь скрывать и показывать части экрана и, возможно, выполнять базовую анимацию, ExtJS победит.

Поддерживаемость

Оба имеют серьезный потенциалстать монстрами.Flex будет монстром, если каждый будет все кодировать в MXML и никогда не будет писать скрипты или внешний CSS.ExtJS будет монстром, если вы разбираетесь в том, как обращаться с данными и менеджерами компоновки.

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

Надеюсь, это поможет.

2 голосов
/ 27 декабря 2012

Только к вашему сведению, для тех, кто сталкивался с этим вопросом в конце 2012 года, так как Flex был открыт с открытым исходным кодом Adobe в начале этого года (читай: «заброшен»), вам следует серьезно подумать, является ли это лучшим выбором для новых разработок на этом этапе.точка.Фактически, в собственных словах Adobe :

В долгосрочной перспективе мы считаем, что HTML5 будет лучшей технологией для разработки корпоративных приложений.

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

2 голосов
/ 27 декабря 2012

Я согласен с Джорданом в отношении превосходства архитектуры и удобства обслуживания Flex над ExtJ, однако, разработав большие системы для обеих систем, я скажу это так же убедительно, как согласен с Джорданом: что Flex в качестве внешнего интерфейса намного медленнее, чем ExtJs. Как правило, после получения данных интерфейсом Flex его рендеринг, скажем, в сетку, выполняется намного медленнее, чем то же самое с ExtJ. Кроме того, обновления экрана во Flex имеют ту же проблему, что и Java-апплеты - серые области, которые не обновляются так быстро. Пользовательский опыт намного лучше, чем у ExtJ, особенно если ваши наборы данных становятся большими. Flex просто не работает быстро, независимо от того, какой браузер вы используете.

Рендеринг во Flex также не такой резкий, как в ExtJ. Посмотрите на виджеты и текст и сравните их рядом, и вы поймете, что я имею в виду.

Итак, в целом, хотя разработка во Flex превосходит ExtJ, пользовательский интерфейс противоположен, и ExtJs выигрывает там.

...