Я начну с моего резюме:
Если бы мне пришлось выбирать прямо сейчас, я бы выбрал 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 будет монстром, если вы разбираетесь в том, как обращаться с данными и менеджерами компоновки.
Хорошей новостью является то, что оба могут успешно поддерживаться в удобной для разработчика форме, и оба могут вписаться в непрерывный процесс интеграции, от начала до конца.
Надеюсь, это поможет.