Tout d'abord, la pierre angulaire du projet que je souhaite créer est un moteur de wiki implémenté comme une application Web d'une seule page. Je prévois d'avoir un ensemble de fonctionnalités disponibles dès le départ avec de nombreux ajouts de fonctionnalités sur la route.
Caractéristiques de base
- création de page (crée à la fois un article wiki et un forum de discussion pour cet article)
- balisage et WYSIWYG ala markItUp
- conversion à la volée entre balisage / html / WYSIWYG
- une barre latérale pour naviguer rapidement
- une barre d'outils supérieure pour choisir l'édition / la vue
Fonctionnalités avancées
- barre latérale configurable pour naviguer via une méthode différente
- barre d'outils configurable (éventuellement ajouter le langage de balisage de votre choix)
- Mots clés
- tâches modifiables
- glisser-déposer les téléchargements de fichiers et les pièces jointes d'images
Le moteur comprendrait à l'origine la création de page, le balisage, l'édition et l'enregistrement WYSIWYG les plus élémentaires. Je voudrais éventuellement étendre ce moteur de base avec un support d'image par glisser-déposer, des téléchargements de fichiers, des graphiques de données en direct et une barre latérale pour personnaliser les vues.
J'ai fait une recherche assez approfondie d'un projet décent sur lequel baser mon projet, mais à part TiddlyWiki, il ne semble pas y avoir de bons moteurs de wiki basés sur javascript. J'ai également envisagé d'appliquer Jquery sur les moteurs de wiki existants, mais je pense que je finirais par le réécrire de toute façon (et c'est juste plus excitant d'ajouter les fonctionnalités que je veux au fur et à mesure). Quoi qu'il en soit, je suis arrivé à implémenter cette bête avec une bibliothèque javascript + un framework.
Je sais qu'on ne peut pas vraiment comparer certains de ces cadres les uns par rapport aux autres, car ils ne sont pas vraiment des pommes à des pommes. J'ai essayé de formuler des commentaires / questions de comparaison avec des éléments comparables des cadres respectifs, mais je suis ouvert à être corrigé.
Alors on y va:
Sur la base de mes propres recherches et opinions, j'ai réduit la liste aux éléments ci-dessous. J'ai intentionnellement omis des choses telles que SproutCore, corMVC, YUI et d'autres car je pensais, dans ma capacité limitée, que les éléments ci-dessous seraient mieux adaptés.
Mes options
jquery / UI + backbonejs
Global
D'après ce que j'ai lu, cette combinaison est utilisée et appréciée par beaucoup et est très flexible et extensible. Ma principale préoccupation est que cette combinaison n'est tout simplement pas le meilleur point de départ pour développer l'interface utilisateur plus orientée bureau.
UI
Bien que jQueryUI ou jqueryTools puissent être compétitifs, ils ne semblent certainement pas à la hauteur des capacités d'interface utilisateur d'autres frameworks. Plus précisément, ils semblent lourds sur les effets, mais manquent d'un support de découpage de mise en page décent.
javascriptMVC
Global
JavascriptMVC me semble qu'il s'agit essentiellement d'extensions jquery + MVC (jqueryMX), ainsi que de quelques autres applications de documentation (documentJS), de tests fonctionnels (funcUnit) et de gestion du code et des dépendances (stealJS). Au-delà des avantages du module supplémentaire, je pense que le débat fonctionnel se résume vraiment à backbonejs vs jqueryMX Ai-je raison à ce sujet et est-ce que quelqu'un a travaillé ou comparé les deux?
- Fonctionnalités: aperçu de Jupiter (créateur de jMVC) de leurs fonctionnalités
- Lien vers jqueryMX
UI
JavascriptMVC ajoute les éléments MXUI en plus de tout ce qui est disponible pour Jquery, donc je pense au moins que c'est une légère victoire dans cette catégorie.
knockoutjs
Global
Mes pensées et mes préoccupations à ce sujet sont très similaires aux commentaires de jquery + backbone. Ils semblent tous deux offrir des fonctionnalités similaires, mais sous un angle différent. Un inconvénient souvent cité est que knockoutjs associe trop étroitement la logique métier et la présentation aux liaisons de données et que cette méthode de liaison peut se décomposer pour une interaction d'interface utilisateur complexe, mais j'aimerais savoir pourquoi ce n'est pas un problème.
- Discussion des concepts backbone vs knockoutJS
- Caractéristiques de knockoutjs
UI
Vide pour le moment
Dojo et ExtJS
Global
Je vais combiner la discussion Dojo et ExtJS parce que j'en sais le moins sur eux et qu'ils semblent jouer presque dans le même espace. La plupart des informations sur le stackoverflow à propos de ces deux semblent obsolètes. D'après ce que j'ai vu, ce sont deux grands frameworks qui conviennent à la mise en œuvre d'applications de bureau. Dojo avait été réprimandé pour sa documentation médiocre, mais cela ne semble plus être le cas. ExtJS a bien sûr la licence commerciale, mais c'est vraiment raisonnable pour ce que vous obtenez et je ne lui en voudrai pas trop. Les widgets dans ExtJS semblent être un peu plus professionnels que Dojo, mais je pourrais certainement y être corrigé. Je serais intéressé d'entendre toute personne qui a de l'expérience dans les deux.
UI
Dojo a la bibliothèque d'interface utilisateur dijit ExtJS a des fonctionnalités d'interface utilisateur mais elles ne sont pas dans le noyau Ext. Voici la documentation et voici leurs démos
Cappuccino
Global
Et puis il y a Cappuccino. Pas de CSS, pas de html, mais aussi il pourrait être difficile d'utiliser les bibliothèques javascript existantes. Objective-J ne semble pas effrayant, d'autant plus qu'ils vantent également pouvoir écrire du javascript brut. Les démos sont impressionnantes et semblent approcher de près les besoins d'interface utilisateur du moteur wiki. L'API à base de cacao est très intéressante pour quelqu'un qui ne la connaît pas, mais cela en vaut peut-être la peine. J'ai entendu dire que le moteur de mise en page n'est pas toujours facile à utiliser, mais une technologie jeune et peut-être perturbatrice comme celle-ci aura certainement quelques lacunes.
UI
Vide pour le moment
Je m'excuse d'avoir autant écrit mais bon, au moins ce n'est pas une question ax vs y vs z en espérant des tonnes de réponses bon marché. Alors qu'est-ce que tu en penses? Quelle devrait être la base de mon bureau comme le moteur wiki, qui, espérons-le, deviendra plus riche en fonctionnalités (lecture complexe) au fil du temps?