Прежде всего, самые сложные кости проекта, который я хочу создать, - это механизм вики, реализованный как одностраничное веб-приложение. Я планирую наличие набора функций, доступных с самого начала, с большим количеством дополнительных функций в будущем.
Основные функции
- создание страницы (создает и статью wiki и дискуссионный форум для этой статьи)
- markup и WYSIWYG ala markitup
- преобразование "на лету" между разметкой /html/WYSIWYG
- боковая панель для быстрого перехода
- верхняя панель инструментов для выбора edit/view
Дополнительные функции
- настраиваемая боковая панель для навигации по другому методу.
- настраиваемая панель инструментов (возможно, добавьте язык разметки)
- теги
- редактируемый todo
- перетаскивание файлов с файлами и вложения изображений
Первоначально двигатель будет состоять из самого простого создания страницы, разметки и редактирования WYSIWYG и сохранения. В конце концов, я хотел бы расширить этот базовый движок поддержкой перетаскивания изображений, загрузкой файлов, графиками живых данных и боковой панелью для настройки представлений.
Я провел довольно обширный поиск достойного проекта, из которого можно было бы основать мой проект, но кроме TiddlyWiki, похоже, нет никаких хороших javascript-основанных вики-движков. Я также рассмотрел возможность применения JQuery поверх существующих движков wiki, но я считаю, что в конечном итоге я все равно переписал бы его (плюс его просто более интересно добавить функции, которые я хочу, когда я пойду). В любом случае я пришел к внедрению этого зверя с библиотекой javascript + framework.
Я знаю, что нельзя сравнивать некоторые из этих фреймворков друг с другом, так как они не очень яблоки для яблок. Я попытался создать любые сравнительные комментарии/вопросы против сопоставимых частей соответствующих фреймворков, но я открыт для исправления.
Итак, идем:
Основываясь на моих собственных исследованиях и мнениях, я сузил список вплоть до пунктов ниже. Я умышленно отказался от таких вещей, как SproutCore, corMVC, YUI и других, поскольку я, в своей ограниченной емкости, думал, что нижние пункты будут лучше подходят.
Мои параметры
jquery/UI + backbonejs
В целом
Из того, что я прочитал, эта комбинация используется и любима многими и очень гибкая и расширяемая. Моя главная проблема заключается в том, что эта комбинация просто не самая лучшая точка для разработки более ориентированного на настольный интерфейс интерфейса пользователя.
интерфейс
В то время как jQueryUI или jqueryTools могут быть конкурентоспособными, они, конечно же, не сравнимы с возможностями пользовательского интерфейса других фреймворков. В частности, они, по-видимому, сильно влияют на эффекты, но не имеют достойной поддержки разрезания разделов.
javascriptMVC
В целом
JavascriptMVC для меня выглядит как расширение jquery + MVC (jqueryMX), а также несколько других приложений для документирования (documentJS), функциональных тестов (funcUnit) и управления кодом и зависимостями (stealJS). Помимо преимуществ дополнительного модуля, я думаю, что функциональные дебаты действительно сводятся к backbonejs vs. jqueryMX. Я правильно исправлю это и кто-нибудь работал с или сравнивал оба?
интерфейс
JavascriptMVC добавляет элементы MXUI поверх всего, что доступно для JQuery, поэтому я думаю, что, по крайней мере, это небольшой выигрыш в этой категории.
knockoutjs
В целом
Мои мысли и опасения по этому поводу очень похожи на комментарии jquery + backbone. Оба они, похоже, предлагают похожие функции, но только с другой точки зрения. Одной из процитированных недостатков является то, что knockoutjs слишком сильно связывает бизнес-логику и презентацию с привязкой данных и что этот метод привязки может разрушаться для сложного взаимодействия с пользовательским интерфейсом, но мне бы хотелось услышать, почему это не проблема.
- Обсуждениеконцепций основы и нокаута JS
- Особенности нокаутов
интерфейс
Бланк в настоящий момент
Dojo и ExtJS
В целом
Я собираюсь объединить обсуждение Dojo и ExtJS, потому что я знаю наименее о них, и они, кажется, играют практически в одном и том же пространстве. Большая часть информации о stackoverflow об этих двух, кажется, устарела. Из того, что я видел, является то, что они являются и большими каркасами, которые хороши для реализации настольных приложений калибра. Dojo был упрекнут за плохую документацию, но это, похоже, уже не так. Конечно, у ExtJS есть коммерческая лицензия, но это действительно разумно для того, что вы получаете, и я бы не стал слишком сильно против этого. Виджеты ExtJS кажутся несколько более профессиональными, чем Dojo, но я, безусловно, мог бы быть исправлен там. Мне было бы интересно услышать от всех, у кого есть опыт в обоих.
интерфейс
Dojo имеет библиотеку пользовательских интерфейсов dijitExtJS имеет функции пользовательского интерфейса, но они не входят в Ext core. Здесь документация и вот их демонстрации
Капучино
В целом
А потом есть Капучино. Нет CSS, нет html, но также может быть сложно использовать существующие библиотеки javascript. Objective-J не кажется страшным, особенно учитывая, что они также могут писать простой javascript. Демонстрации впечатляют и, похоже, близко подходят к потребностям пользовательского интерфейса для движка вики. API, основанный на cocoa, очень много подходит для тех, кто не знаком с ним, но, возможно, он того стоит. Я слышал, что механизм компоновки не всегда легко работать, но у молодых и, возможно, таких подрывных технологий, наверняка есть некоторые недостатки.
интерфейс
Бланк в настоящий момент
Извиняюсь за то, что вы так много писали, но эй, по крайней мере, это не вопрос о том, стоит ли покупать тонны дешевых ответов. Так что ты думаешь? Что должно быть основой для моего рабочего стола, такого как движок вики, который, как мы надеемся, станет более многофункциональным (читаемым комплексом) со временем?