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

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

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

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

Привет, Навид


person nvd_ai    schedule 28.03.2011    source источник


Ответы (3)


Капучино намного выше уровня. Вы пишете на 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 также можно использовать с расширенным режимом Closure Compiler для создания высококомпактных, высокооптимизированных и полностью запутанных сборок для развертывания. Другие фреймворки на основе JavaScript не так легко адаптируются.

person Stephen Chung    schedule 30.03.2011

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

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

person Alexander Ljungberg    schedule 28.03.2011

Рассматривали ли вы jQuery и пользовательский интерфейс jQuery?

person griegs    schedule 28.03.2011