Каковы плюсы и минусы использования extjs?

В одном из моих проектов кто-то рекомендовал мне использовать extjs. Я очень мало знаю о extjs. Я выполнил весь проект, используя jQuery. Я знаю, что многие из вас знают о extjs очень хорошо.

Скажите, пожалуйста, за и против использования extjs?

Ответ 1

Ниже приведены некоторые из основных преимуществ и недостатков ExtJS:

Pros

  • ExtJS подобен надмножеству виджетов, таких как простые ярлыки, кнопки textBox для сложных гридов, панели перетаскивания и т.д. Он также предоставляет демонстрацию для удаленных операций для вызова методов удаленного сервера.

  • У него неплохая документация с учебниками, образцами и сообществом пользователей.

  • Активная и в настоящее время наиболее принятая инфраструктура RIA javascript

  • Хорошее качество/удобочитаемость кода

  • Удивительный набор виджетов, делает все, что мы могли бы хотеть. Кажется быстрым, каждая версия приносит новые улучшения.

против

  • Footprint - библиотека размером 500 КБ (использование mod_gzip может быть сокращен до 150 КБ). Время загрузки будет высоким для домашней страницы в Интернете.

  • CSS - очень легко заблудиться. Трудно найти правильный класс имена

  • HTML - полный divs и слишком сложный сгенерированный код. Сложно debug даже с FireBug.

  • Модифицированный GPL 3.0 лицензирован. Бесплатно для приложений с открытым исходным кодом, но оплачивается для коммерческих приложений с закрытым исходным кодом.

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

  • Загрузка даже простых вещей требует нескольких строк кодирования, которые проще в простых html или jQuery.

  • Отладка не очень проста. Только GWT лучше отлаживает размещенный режим среди фреймворков javascript.

  • Пользователь не может добавлять закладки на определенную страницу. поскольку объекты отображаются обработкой DOM, страница не может быть индексируется поисковыми системами

  • Нужен опытный разработчик.

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

Ссылка: ExtJs - за и против

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

Ответ 2

Хотя предыдущий ответ уже был принят, есть несколько моментов, которые я хотел бы уточнить.

Ext не использует "измененную" лицензию GPL. Он полностью дублируется по стандарту GPL v3 и коммерческой лицензии Sencha. Существуют исключения FLOSS, чтобы сделать его более совместимым с разработчиками плагинов/расширений и т.д., Но лицензия GPL является стандартной лицензией.

Список недостатков, в то время как в основном справедливые точки в целом, несколько бессмысленны без какого-либо контекста. Сравнение Ext JS с jQuery также бессмысленно - сравнение яблок с апельсинами. Если вы сравниваете Ext JS с другими сопоставимыми структурами RIA (Dojo, YUI, Sproutcore), то такие вещи, как footprint, CSS/HTML-сложность, отладка и т.д. Становятся довольно ровными (или, по крайней мере, более полезный контраст может быть сделан). Просто говоря, что эти вещи являются "минусами" в абстрактном, не очень точны, поскольку они в основном являются просто требованиями любой сложной структуры RIA.

В отношении нескольких конкретных точек этот список (согласно исходной статье) ссылается на Ext 3.0. Текущая версия на момент написания этой статьи - 4.0.7. Общий объем кода на самом деле увеличился с 3,0, но Ext теперь поставляется с системой динамического класса и средствами сборки, которые позволяют создавать оптимизированные сборки на основе зависимостей вашего приложения. Так что да, у этого есть большой общий след, но нет, вам не нужно включать все.

Сложность CSS/HTML является заданной, основанной на сложности виджетов и систем макетов, поддерживаемых Ext JS. Это очень распространено в мире RIA и не похоже на простые плагины jQuery. В версии 4.0 теперь используется SASS/Compass btw с созданным CSS, поэтому настройка исходных стилей на самом деле намного проще, чем в версии 3.0.

Отладка также несколько проще в 4.0 (опять же из-за новой системы классов), но, безусловно, сложнее, чем любой статически типизированный язык, такой как Java (GWT). Это проблема для любых фреймворков на основе JavaScript, а не только для Ext.

Конечно, вы можете добавлять закладки в свое приложение, если вы реализуете поддержку истории/штата (оба предлагаются Ext). Это то, что вы должны делать, так как оно специфично для приложения (существует определенное автоматическое управление состоянием на уровне отдельных виджета), но это, безусловно, возможно. Опять же, это распространенная проблема RIA, а не что-то особенное для Ext.

Список профи, с которым я бы согласился (кроме пункта 5, который представлен вне контекста и не имеет смысла). Фактически, документация и справочники справились, лучше с версии 3.0. Если вам нужны конкретные сравнения между Ext JS и другими инфраструктурами RIA, просто выполните поиск SO, который был хорошо охвачен.

Ответ 3

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

ExtJS

отлично подходит для одностраничного приложения RIA, где инфраструктура ExtJS загружается один раз на страницу со следующим кодом с кодом 0, закодированным вручную. Это означает, что структура управляет ВСЕМ в вашем приложении.


JQuery

Вариант использования

сильно отличается: ваша инфраструктура на стороне сервера генерирует HTML (через JSP, GSP, ASP, независимо), и вы добавляете функциональность к этим страницам, включая библиотеку JQuery для каждого.


ExtJS Минусы:

  • Сложная структура - не для слабонервных:)
  • Крутая кривая обучения
  • Есть ошибки - да есть. Однако большинство проблем возникает из-за неправильного использования фреймворка и недостаточно понимания документации.
  • Развивающаяся структура - это можно рассматривать как + и - но в этом году было выпущено ~ 7 релизов.

ExtJS Плюсы:

  • Поистине универсальная среда MVC на стороне клиента с самым полным набором доступных компонентов и виджетов.
  • Extensible. Буквально Ext.extend() - это первое, что вы делаете.
  • Красивая. Тема из коробки настолько хорошо разработана, что большинство разработчиков без каких-либо умений (мы не указываем пальцы) можем создавать действительно профессиональные и привлекательные веб-приложения.
  • Документация, безусловно, лучшая, что я видел в любой библиотеке, API или проекте с открытым исходным кодом. В комплекте с документами API (хотя есть некоторые отверстия) с образцами живого кода, которые вы можете настроить и посмотреть, что происходит + исходный код. Большие примеры охватывают большую часть библиотеки. Отличные руководства по наиболее важным темам от MVC до Theming. Даже видео-библиотека. Недавно эта документация была значительно обновлена, поэтому, если вы не видели за последние 6 месяцев - ну, смотрите!
  • Форумы очень ожидают, что многие ключевые эксперты активно участвуют на ежедневной основе.
  • Расширения пользователей (UX) - большое сообщество пользователей приводит к удивительному набору творческих решений.
  • Это гигант! У него так много замечательных компонентов, что мне не нужно было действительно расширять что-то до неузнаваемости. Я упоминал кривую обучения?
  • MVC - для любого уважающего RIA-приложения MVC-framework является обязательным
  • Встроенные инструменты
  • Поддержка поддержки с помощью SASS и Compass
  • ... есть намного больше.

отказ от ответственности: я бывший разочарованный разработчик ExtJS, который, наконец, достаточно высок на кривой обучения, чтобы действительно наслаждаться ею.

  • (открыт как вики сообщества)