Em primeiro lugar, o esqueleto do projeto que desejo criar é um mecanismo wiki implementado como um aplicativo da web de uma única página. Planejo ter um conjunto de recursos disponíveis desde o início, com muitas adições de recursos no futuro.
Recursos básicos
- criação de página (cria artigo wiki e fórum de discussão para esse artigo)
- marcação e WYSIWYG ala markitup
- conversão instantânea entre markup / html / WYSIWYG
- uma barra lateral para navegar rapidamente
- uma barra de ferramentas superior para escolher editar / visualizar
Características avançadas
- barra lateral configurável para navegar por meio de método diferente
- barra de ferramentas configurável (possivelmente adicionar linguagem de marcação de sua escolha)
- Tag
- tarefas editáveis
- arrastar e soltar uploads de arquivos e anexos de imagens
O mecanismo consistiria originalmente na criação, marcação e edição WYSIWYG mais básicas e salvamento. Eu gostaria de estender esse mecanismo básico com suporte para arrastar e soltar imagens, uploads de arquivos, gráficos de dados ativos e uma barra lateral para personalizar visualizações.
Fiz uma busca bastante extensa por um projeto decente do qual basear meu projeto, mas além do TiddlyWiki, não parece haver nenhum bom mecanismo wiki baseado em javascript. Também considerei aplicar o Jquery em cima dos mecanismos wiki existentes, mas acredito que acabaria reescrevendo-o eventualmente (Além disso, é apenas mais emocionante adicionar os recursos que desejo enquanto prossigo). De qualquer forma, cheguei a implementar esta besta com uma biblioteca + framework javascript.
Eu sei que não se pode realmente comparar algumas dessas estruturas umas com as outras, pois elas não são muito comparáveis. Tentei enquadrar quaisquer comentários / perguntas de comparação em partes comparáveis das respectivas estruturas, mas estou aberto a ser corrigido.
Aqui vamos nos:
Com base em minhas próprias pesquisas e opiniões, reduzi a lista aos itens abaixo. Eu intencionalmente deixei de fora coisas como SproutCore, corMVC, YUI e outros porque eu, em minha capacidade limitada, pensei que os itens abaixo seriam um ajuste melhor.
Minhas opções
jquery / UI + backbonejs
No geral
Pelo que li, essa combinação é usada e amada por muitos e é muito flexível e extensível. Minha maior preocupação é que essa combinação simplesmente não é o melhor ponto de partida para desenvolver a interface de IU mais orientada para desktop.
UI
Embora jQueryUI ou jqueryTools possam ser competitivos, eles certamente não parecem estar no mesmo nível dos recursos de IU de outros frameworks. Especificamente, eles parecem ter muitos efeitos, mas faltam um suporte decente de corte de layout.
javascriptMVC
No geral
JavascriptMVC para mim parece ser essencialmente extensões jquery + MVC (jqueryMX), junto com alguns outros aplicativos para documentação (documentJS), testes funcionais (funcUnit) e gerenciamento de código e dependência (stealJS). Além dos benefícios do módulo adicional, acho que o debate funcional realmente se resume a backbonejs x jqueryMX. Estou correto nisso e alguém trabalhou ou comparou os dois?
UI
JavascriptMVC adiciona os itens MXUI em cima de tudo o que está disponível para Jquery, então eu acho que é, no mínimo, uma pequena vitória nessa categoria.
knockoutjs
No geral
Meus pensamentos e preocupações sobre isso são muito semelhantes aos comentários do jquery + backbone. Ambos parecem oferecer recursos semelhantes, mas apenas de uma perspectiva diferente. Uma desvantagem frequentemente citada é que o knockoutjs une a lógica de negócios e a apresentação com muita força ao data-bind e que esse método de vinculação pode quebrar para uma interação de interface de usuário complexa, mas eu adoraria saber por que isso não é um problema.
- Discussão de conceitos de backbone vs knockoutJS
- Características de knockoutjs
UI
Em branco no momento
Dojo e ExtJS
No geral
Vou combinar a discussão Dojo e ExtJS porque sei o menos sobre eles e eles parecem jogar quase no mesmo espaço. A maioria das informações sobre stackoverflow sobre esses dois parece estar desatualizada. Pelo que vi é que ambos são grandes frameworks que são bons para implementação de aplicativos de calibre desktop. Dojo foi repreendido pela documentação deficiente, mas parece que não é mais o caso. É claro que ExtJS tem a licença comercial, mas é realmente razoável para o que você obtém e eu não consideraria isso muito contra. Os widgets no ExtJS parecem ser feitos de maneira um pouco mais profissional do que no Dojo, mas eu certamente poderia ser corrigido lá. Eu gostaria de ouvir de alguém que tenha experiência em ambos.
UI
O Dojo possui a biblioteca de IU dijit ExtJS possui recursos de IU, mas eles não estão no núcleo Ext. Aqui está a documentação e aqui estão suas demonstrações
Cappuccino
No geral
E depois há o Cappuccino. Sem CSS, sem html, mas também pode ser difícil usar as bibliotecas javascript existentes. Objective-J não parece muito assustador, especialmente considerando que eles também são capazes de escrever javascript puro. As demonstrações são impressionantes e parecem se aproximar das necessidades da interface do usuário para o mecanismo wiki. A API baseada em cacau é muito para alguém que não está familiarizado com ela, mas talvez valha a pena. Ouvi dizer que nem sempre é fácil trabalhar com o mecanismo de layout, mas uma tecnologia jovem e possivelmente inovadora como essa certamente terá algumas deficiências.
UI
Em branco no momento
Peço desculpas por escrever tanto, mas hey, pelo menos não é a questão ax vs y vs z esperando por toneladas de respostas baratas. Então, o que você acha? Qual deve ser a base para o meu desktop como o motor wiki, que se tornará mais rico em recursos (leia-se complexo) com o tempo?