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