Я использую Dojo и Dijit более года для разработки браузерной IDE. Dojo — отличный фреймворк. Но создание IDE-подобного интерфейса с помощью Dojo обременительно и требует много времени, если только вы не супермен CSS. Я хорошо разбираюсь в HTML5, JavaScript и CSS. Создание пользовательского интерфейса, в котором я нуждался, потребовало нескольких взломов CSS, которые я нашел методом проб и ошибок. Не было систематического способа перейти от дизайна пользовательского интерфейса к реализации, и я боюсь менять макет пользовательского интерфейса, потому что любое простое изменение может сломать пользовательский интерфейс, в основном путем добавления ненужных полос прокрутки на панели Dijit, где они мне не нужны. (сложный пользовательский интерфейс имеет 4-5 уровней вложенных панелей, включая в основном граничные контейнеры и панели содержимого)
Недавно я наткнулся на SproutCore и Cappuccino, у которых есть отличные демоверсии, а их внешний вид больше похож на рабочий стол. Было несколько дискуссий по сравнению этих двух друг с другом. Но никто из них не говорит о том, насколько систематически и быстро можно перейти от дизайна пользовательского интерфейса к реализации? В идеале я должен быть в состоянии реализовать пользовательский интерфейс, который я хочу, не более чем за пару дней (при условии, что я знаю структуру), и изменить их в будущем должно быть легко.
Другая трудность с Dojo заключается в том, что мне приходится работать непосредственно с DOM, чтобы добавлять и удалять диджит-виджеты. Хотя мне нравится сохранять эту гибкость, я хотел бы использовать более высокий уровень абстракции для определения пользовательского интерфейса приложения. Я читал о MVC в SproutCore и Cappuccino, но мне интересно, ускоряет ли на практике предоставленный уровень абстракции разработку пользовательского интерфейса? или предоставленный слой — это навороченная архитектура, которая только повышает читабельность кода? Потеряю ли я прямой доступ к DOM, если буду создавать свой пользовательский интерфейс с использованием этих абстракций?
Привет, Навид