Какой фреймворк JavaScript для разработки сложного пользовательского интерфейса на стороне клиента? Додзе, SproutCore, Капучино - PullRequest
3 голосов
/ 29 марта 2011

Я использую Dojo и Dijit более года для разработки IDE на основе браузера. Додзё - это отличная основа. Но создание IDE-подобного интерфейса с использованием Dojo обременительно и тратит много времени, если вы не супермен CSS. Я хорошо понимаю HTML5, JavaScript и CSS. Для создания нужного мне интерфейса потребовалось несколько взломов CSS, которые я нашел методом проб и ошибок. Не было никакого систематического способа перейти от дизайна пользовательского интерфейса к реализации, и я боюсь изменить макет пользовательского интерфейса, потому что любое простое изменение может нарушить пользовательский интерфейс, в основном, путем добавления нерелевантных полос прокрутки к панелям Dijit, где они мне не нужны. (сложный пользовательский интерфейс имеет 4-5 уровней вложенных панелей, включая в основном граничные контейнеры и панели контента)

Недавно я сталкивался с SproutCore и Cappuccino, в которых есть отличные демо-версии, а их внешний вид больше похож на десктоп. Было несколько обсуждений, сравнивающих эти два друг с другом. Но никто из них не говорит о том, насколько систематично и быстро можно перейти от проектирования пользовательского интерфейса к реализации? В идеале я должен иметь возможность реализовать желаемый пользовательский интерфейс не более пары дней (при условии, что я знаю структуру), и изменение их в будущем должно быть простым.

Другая сложность с Dojo заключается в том, что мне приходится работать непосредственно с DOM, добавлять и удалять виджеты dijit. Хотя мне нравится сохранять эту гибкость, я бы хотел использовать более высокий уровень абстракции для определения пользовательского интерфейса приложения. Я читал о MVC в SproutCore и Cappuccino, но мне интересно, ускоряет ли предоставляемый уровень абстракции на практике разработку пользовательского интерфейса? или предоставленный уровень является причудливой архитектурой, которая только увеличивает читабельность кода? Потеряю ли я прямой доступ к DOM, если построю свой интерфейс с использованием этих абстракций?

Ура, Navid

Ответы [ 3 ]

4 голосов
/ 30 марта 2011

Капучино гораздо более высокого уровня. Вы пишете в Objective-J, а не в HTML / CSS / JavaScript. Лично я не рекомендую это, поскольку Objective-J является нишевым языком, и вы застряли бы в чем-то, что не всем понятно. Вам будет труднее искать ответы на проблемы, а другим людям будет сложнее поддерживать ваш код.

Однако, благодаря высокому уровню, он защищает вас от рутины программирования в «стандартах» (т. Е. HTML / CSS / JavaScript). Следовательно, вы должны иметь возможность разрабатывать пользовательский интерфейс быстрее и проще, но вместо этого вам придется изучать все тонкости Objective-J. В общем, я полагаю, здесь не так много.

SproutCore, с другой стороны, основан на HTML / CSS / JavaScript, поэтому вам не нужно заново изучать основы. Он следует модели MVC, разделяющей пользовательский интерфейс и данные, поэтому программирование пользовательского интерфейса должно быть проще.

Моя личная рекомендация - придерживаться Dojo - вышла версия 1.6, в которой есть поддержка отслеживания изменений, отслеживания состояний и бининга. 1,7 уже не за горами. Модуль MVC быстро улучшается. Следующая версия, 2.0, будет довольно крутой. Он активно развивается, и поэтому вы не останетесь позади.

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

3 голосов
/ 29 марта 2011

Капучино определенно выходит за рамки простого улучшения читабельности. Если вы не хотите, чтобы в капучино была полоса прокрутки, не используйте ее. Это в значительной степени конец истории и одно из больших преимуществ использования такой платформы. По моему опыту, HTML и CSS - это просто бесконечный сеанс устранения неполадок. С капучино дела идут там, где, как вы говорите, они должны, и оставайтесь там. И это верно для всех браузеров (в большинстве случаев).

Кроме того, вы можете, если хотите, создать свой пользовательский интерфейс с помощью Interface Builder и утилиты Cappuccino nib2cib. Это делает тривиальным как первоначальное расположение, так и последующее перемешивание кнопок и элементов управления вокруг.

0 голосов
/ 29 марта 2011

Рассматривали ли вы jQuery и jQuery UI ?

...