В настоящий момент наша команда оценивает возможность конвертации большого корпоративного веб-приложения (своего рода ERP-систему, более 600 уникальных экранов) с использованием ExtJS для интерфейса. Приложение было построено на нашем открывшемся исходном eludia двигателе
Наш движок требует определения модели (он изменяет базу данных при редактировании определения), имеет какой-то контроллер (Модули содержания) и Презентация (Модули презентации с кодом, который генерирует фактический js + html mix)
Как и некоторые люди из этой, наша команда сталкивается с проблемой:
Мы хотели бы иметь модель и представление на стороне сервера и просто отправлять JSON-данные в интерфейс
В настоящее время разработчики ядра eludia (= моя команда, мы поддерживаем как это приложение, так и eludia) сделали несколько шагов к движению морфинга, чтобы использовать ExtJS как интерфейс
Моя команда рассматривает:
- продолжить использование старых модулей контента в качестве кода на стороне сервера
- создание файлов модели для ExtJS "на лету" с использованием определения модели на стороне сервера,
- преобразование модулей презентации в клиентские модули просмотра ExtJS и запись клиентских контроллеров для каждого экрана Но теперь есть еще одна проблема: ExtJS требует перечислить все контроллеры в Ext.app.Application Каждый раз, когда человек пишет новый/преобразует экран из старого движка, он должен добавить его в этот список
Можно ли генерировать динамические переменные Ext.app.Application.controllers?
Поэтому эти вопросы, упорядоченные по нечеткости:
- Можете ли вы назвать достаточно большое (более 600 экранов, предпочтительное приложение с открытым исходным кодом) MVC/non MVC, которое использует ExtJS как front-end?
- Правильно ли мы движемся?
UPDATE
Я должен попытаться сузить вопрос
Не нужно загружать все контроллеры сразу во время запуска приложения?
Что я пытаюсь сказать, возможно, можно загрузить контроллеры в более "динамический" подход:
- создать один контроллер js для открытого экрана.
- добавить новые в Ext.app.Application.controllers когда пользователь что-то делает (нажимает ссылку, кнопку и т.д.): когда нужен новый экран