dojo vs extjs для большого одностраничного js-приложения - PullRequest
6 голосов
/ 17 января 2012

Я собираюсь создать очень большое приложение администратора mvc js app и сузить его до dojo и extjs

Я хотел бы знать, есть ли у кого-нибудь опыт работы с любой из этих платформ в рамкахпоследние 6 месяцев, и если у вас возникли проблемы с любой из следующих областей

  • скорость разработки
  • mvc
  • документация
  • привязки
  • интернализация
  • тематика виджетов
  • доступное для поиска хранилище на стороне клиента (не обязательно находиться в автономном режиме, только возможность сохранять записи после получения, а затем выполнять локальный поиск по этим записям)
  • тестирование с использованием какого-либо инструмента полного стека, такого как селен
  • , таблица данных, разбиение на страницы, сортировка всего произведения

Ответы [ 2 ]

15 голосов
/ 18 января 2012

Поскольку Dojo делает все, что вам нужно.

Dojo поддерживает «магазины», которые делают именно то, что вы просите.Они также поддерживают разные вещи, такие как JsonRestStore, XMLStore, HTMLStore и многие другие, так что вы можете легко переключать источник ваших данных.

В модульном тестировании вы можете использовать встроенный инструмент Dojo Objective Harness, иэто робот или что-то еще, например, selenium или eventd (dojo).

Что касается MVC, в dojo есть то, что называется dojox.mvc: http://livedocs.dojotoolkit.org/releasenotes/1.7#mvc

Хотя есть и много других вещей:)

Я бы порекомендовал прочитать учебники здесь: http://dojotoolkit.org/documentation/

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

Лично я использую Dojo, я считаю его мощным и особенно хорошо сделанным для больших приложений.Они также очень активны и следят за последними тенденциями (AMD Loader RequireJS и т. Д.).Также есть хорошее сообщество, помогающее друг другу, особенно в списке рассылки и IRC-канале.

Кроме того, если это так или иначе имеет значение, такие компании, как IBM, доверяют и тратят время, помогая инфраструктуре улучшить ее.

  • скорость разработки: хорошая
  • mvc: хорошая
  • документация: хорошая - огромный прогресс в последнее время :)
  • привязки: хорошая
  • Интернализация: хорошо
  • Тематика виджетов: использование LESS ROCK
  • хранилище на стороне клиента с возможностью поиска (не обязательно быть в автономном режиме, только возможность сохранять записи после получения, а затем делать локальныеищет в этих записях): хорошее
  • тестирование с использованием какого-либо инструмента полного стека, например селен: хорошее
  • датагрид, разбиение на страницы, сортировка всей работы: новый dgrid - это хорошо, старые сетки - в порядке, Dojo - довольномощный, но иногда может быть сложным, хорошая поддержка восполняет это
9 голосов
/ 17 января 2012

Вот что предлагает Ext-JS.

Это не относится к ответу, но если вы в конечном итоге используете Ext-JS, yВам может понадобиться следующее для более эффективных графиков.Преимущество диаграмм Ext заключается в том, что с ними легче взаимодействовать (при наведении курсора, щелчке), поскольку они не основаны на холстах, как flot.

/**
 * Renders a single flot chart, a much simplifed version of ExtFlot
 */
Ext.define('Ext.ux.FlotPanel',  {
    extend: 'Ext.Component',
    alias: 'widget.flot',

    /**
     * @cfg {number[][]} data The data to be drawn when it gets rendered
     */
    data: null,

    /**
     * @cfg {object} flotOptions
     * The options to be passed in to $.plot
     */
    flotOptions: null,

    /**
     * @property
     * The Flot object used to render the chart and to manipulate it in the future. It will only
     * be available after the first resize event
     * You may not set this property but you are free to call methods on it
     */
    flot: null,

    initComponent: function() {
        this.callParent(arguments);
        // The only time that we're guaranteed to have dimensions is after the first resize event
        this.on('resize',  function(cmp) {               
            if (!cmp.flot) {
                cmp.flot = $.plot(cmp.getTargetEl().dom, cmp.data, cmp.flotOptions);
            } else {
                // Flot knows to look at the container's size and resize itself 
                cmp.flot.resize();
                cmp.flot.setupGrid();
                cmp.flot.draw();
            }
        });

        this.on('beforedestroy', function(cmp){
            if (cmp.flot) {
                cmp.flot.shutdown();
            }
        });
    }
});

Когда я смотрел на Dojo 4 года назад, я ненавидел его.Не могу объявить виджеты в HTML.Я скорее объявляю их с помощью объектов JS (я слышал, что теперь вы можете объявлять виджеты без указания HTML. Есть люди, которые любят создавать виджеты в HTML, но в моем случае (динамические приложения, ориентированные на бизнес), каждая часть на экранеявляется динамическим, и конфигурация исходит от сервера, поэтому я не хочу, чтобы сервер генерировал мой HTML, поскольку мне нужны знания об этом в моем JS.

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

...