Во-первых, самые важные составляющие проекта, который я хочу создать, - это вики-движок, реализованный в виде одностраничного веб-приложения. Я планирую получить набор функций, доступных с самого начала, с большим количеством дополнительных функций в будущем.
Основные характеристики
- создание страницы (для этой статьи создается вики-статья и дискуссионный форум)
- разметка и WYSIWYG аля markitup
- преобразование на лету между разметкой / html / WYSIWYG
- боковая панель для быстрой навигации
- верхняя панель инструментов для выбора редактирования / просмотра
Расширенные функции
- настраиваемая боковая панель для навигации другим методом
- настраиваемая панель инструментов (возможно добавление языка разметки по выбору)
- метка
- редактируемые задачи
- перетаскивание файлов и файлов с изображениями
Движок изначально будет состоять из самого простого создания страницы, разметки и редактирования WYSIWYG, а также сохранения. В конечном итоге я хотел бы расширить этот базовый движок за счет поддержки перетаскивания изображений, загрузки файлов, графиков данных в реальном времени и боковой панели для настройки видов.
Я провел довольно обширный поиск достойного проекта, на котором основывался бы мой проект, но кроме TiddlyWiki, похоже, нет хороших вики-движков на основе javascript. Я также подумал о том, чтобы применить Jquery поверх существующих вики-движков, но я думаю, что в конечном итоге я все равно переписал бы его (плюс еще интереснее добавить функции, которые я хочу по ходу). В любом случае я пришел к реализации этого зверя с библиотекой javascript + фреймворком.
Я знаю, что на самом деле нельзя сравнивать некоторые из этих структур друг с другом, так как они очень не яблоки с яблоками. Я пытался сопоставить любые комментарии / вопросы сравнения с сопоставимыми частями соответствующих структур, но я открыт для исправления.
Итак, поехали:
Основываясь на своих собственных исследованиях и мнениях, я сузил список до пунктов ниже. Я намеренно пропустил такие вещи, как SproutCore, corMVC, YUI и другие, поскольку я в своем ограниченном качестве думал, что нижеприведенные элементы будут более подходящими.
Мои параметры
jquery / UI + backbonejs
В целом
Из того, что я читал, эта комбинация используется и любима многими и является очень гибкой и расширяемой. Моя главная проблема заключается в том, что эта комбинация просто не лучшая отправная точка для разработки интерфейса пользовательского интерфейса, более ориентированного на десктоп.
UI
Несмотря на то, что jQueryUI или jqueryTools могут быть конкурентоспособными, они, безусловно, не соответствуют стандартам UI других сред. В частности, они, похоже, сильно влияют на эффекты, но не имеют приличной поддержки нарезки макетов.
javascriptMVC
В целом
Мне кажется, что JavascriptMVC - это, по сути, расширения jquery + MVC (jqueryMX), а также несколько других приложений для документирования (documentJS), функциональных тестов (funcUnit) и управления кодом и зависимостями (stealJS). Помимо преимуществ дополнительного модуля, я думаю, что функциональные дебаты на самом деле сводятся к backbonejs против jqueryMX. Я прав в этом, и кто-нибудь работал или сравнивал оба?
UI
JavascriptMVC добавляет элементы MXUI поверх того, что доступно для Jquery, поэтому я думаю, что, по крайней мере, это небольшая победа в этой категории.
knockoutjs
В целом
Мои мысли и опасения по этому поводу очень похожи на комментарии jquery + магистраль. Они оба, кажется, предлагают сходные функции, но только с другой точки зрения. Часто цитируемым недостатком является то, что knockoutjs слишком тесно связывает бизнес-логику и представление с привязкой данных и что этот метод привязки может нарушить сложное взаимодействие с пользовательским интерфейсом, но мне бы хотелось услышать, почему это не проблема.
UI
Бланк на данный момент
Dojo & ExtJS
В целом
Я собираюсь объединить обсуждение Dojo и ExtJS, потому что я знаю о них меньше всего, и они, кажется, играют почти в одном пространстве. Большая часть информации о стековом потоке об этих двух элементах устарела. Из того, что я видел, является то, что они обе являются большими платформами, которые хороши для реализации приложений настольного калибра. Додзё упрекали за плохую документацию, но, похоже, это уже не так. ExtJS, конечно, имеет коммерческую лицензию, но это действительно разумно для того, что вы получаете, и я бы не стал слишком сильно этому возражать. Виджеты в ExtJS выглядят более профессионально, чем в Dojo, но я, конечно, могу исправить их. Мне было бы интересно услышать от любого, кто имеет опыт в обоих.
UI
Dojo имеет библиотеку dijit UI
ExtJS имеет функции пользовательского интерфейса, но они не в ядре Ext. Вот документация и вот их демоверсии
Капучино
В целом
А потом еще капучино. Нет CSS, нет HTML, но также может быть сложно использовать существующие библиотеки JavaScript. Objective-J не кажется пугающим, особенно если учесть, что они также умеют писать простой javascript. Демоверсии впечатляют и, похоже, близко соответствуют потребностям пользовательского интерфейса для вики-движка. API, основанный на какао, очень интересен тем, кто с ним не знаком, но, возможно, оно того стоит. Я слышал, что с механизмом компоновки не всегда легко работать, но у молодой и, возможно, разрушительной технологии, подобной этой, наверняка будут некоторые недостатки.
UI
Бланк на данный момент
Я извиняюсь за то, что написал так много, но эй, по крайней мере, это не вопрос x vs y vs z в надежде получить массу дешевых ответов. Так что ты думаешь? Что должно стать основой для моего рабочего стола, такого как вики-движок, который, как мы надеемся, со временем станет более многофункциональным (читай сложным)?