Tout d'abord, l'essentiel du projet que je souhaite créer est un moteur de wiki mis en œuvre comme une application web à page unique. Je prévois d'avoir un ensemble de fonctionnalités disponibles dès le départ avec de nombreux ajouts de fonctionnalités par la suite.
Caractéristiques de base
- création de pages (crée à la fois un article wiki et un forum de discussion pour cet article)
- balisage et WYSIWYG à la manière de markitup
- conversion à la volée entre balisage / html / WYSIWYG
- une barre latérale pour une navigation rapide
- une barre d'outils en haut de l'écran pour choisir entre modifier et visualiser
Fonctions avancées
- barre latérale configurable pour naviguer par différentes méthodes
- barre d'outils configurable (possibilité d'ajouter le langage de balisage de son choix)
- tags
- des tâches à faire modifiables
- téléchargements de fichiers par glisser-déposer et pièces jointes d'images
Le moteur consisterait à l'origine en la création de pages les plus basiques, le balisage et l'édition WYSIWYG, et la sauvegarde. J'aimerais éventuellement étendre ce moteur de base avec un support d'images 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 poussée pour trouver un projet décent sur lequel baser mon projet, mais à part TiddlyWiki, il ne semble pas y avoir de bons moteurs wiki basés sur javascript. J'ai également envisagé d'appliquer Jquery sur des moteurs wiki existants mais je pense que je finirais par le réécrire de toute façon (de plus, 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é à mettre en œuvre cette bête avec une bibliothèque javascript + framework.
Je sais que l'on ne peut pas vraiment comparer certains de ces cadres entre eux, car ils ne sont pas du tout comparables. J'ai essayé de formuler mes commentaires/questions de comparaison par rapport à des éléments comparables des cadres respectifs, mais je suis prêt à être corrigé.
Donc, nous y voilà :
Sur la base de mes propres recherches et opinions, j'ai réduit la liste aux éléments ci-dessous. J'ai intentionnellement laissé de côté des éléments tels que SproutCore, corMVC, YUI, et d'autres, car j'ai pensé, dans ma capacité limitée, que les éléments ci-dessous seraient plus adaptés.
Mes options
jquery/UI + backbonejs
En général
D'après ce que j'ai lu, cette combinaison est utilisée et appréciée par de nombreuses personnes 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 le développement d'une interface utilisateur plus orientée bureau.
UI
Bien que jQueryUI ou jqueryTools puissent être compétitifs, ils ne semblent pas être à la hauteur des capacités d'interface utilisateur des autres frameworks. Plus précisément, ils semblent être lourds en effets, mais manquent d'un support décent pour le découpage de la mise en page.
javascriptMVC
En général
Pour moi, JavascriptMVC ressemble essentiellement à des extensions de jquery + MVC(jqueryMX), avec quelques autres applications pour la documentation(documentJS), les tests fonctionnels(funcUnit), et la 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 contre jqueryMX. Ai-je raison sur ce point et quelqu'un a-t-il travaillé avec ou comparé les deux ?
- Caractéristiques : aperçu de jupiter (fabricant de jMVC) de leur caractéristiques
- Lien vers jqueryMX
UI
JavascriptMVC ajoute le MXUI en plus de tout ce qui est disponible pour Jquery, donc je pense que c'est au moins une légère victoire dans cette catégorie.
knockoutjs
En général
Mes pensées et préoccupations à ce sujet sont très similaires aux commentaires sur jquery + backbone. Ils semblent tous deux offrir des fonctionnalités similaires, mais d'un point de vue différent. Un inconvénient souvent cité est que knockoutjs couple la logique commerciale et la présentation trop étroitement avec les données liées et que cette méthode de liaison peut s'effondrer pour une interaction complexe de l'interface utilisateur, mais j'aimerais entendre pourquoi ce n'est pas un problème.
- Discussion des concepts de backbone et de knockoutJS
- Caractéristiques de knockoutjs
UI
Vide pour le moment
Dojo et ExtJS
En général
Je vais combiner la discussion sur Dojo et ExtJS car c'est ce que je connais le moins et ils semblent jouer dans presque le même espace. La plupart des informations sur stackoverflow à propos de ces deux-là semblent être périmées. D'après ce que j'ai vu, il s'agit de deux grands frameworks qui conviennent à la mise en œuvre d'applications de type bureautique. Dojo a été critiqué pour sa mauvaise documentation, mais cela ne semble plus être le cas. ExtJS a bien sûr une licence commerciale, mais elle est vraiment raisonnable pour ce que vous obtenez et je n'en tiendrais pas trop rigueur. Les widgets d'ExtJS semblent être un peu plus professionnels que ceux de Dojo, mais je peux certainement me tromper. Je serais intéressé par l'avis de quiconque a de l'expérience dans les deux.
UI
Dojo a le dijit U ExtJS a des fonctionnalités UI mais elles ne sont pas dans Ext core. Voici la documentation et voici leurs démos
Cappuccino
En général
Et puis il y a le Cappuccino. Pas de CSS, pas de html, mais aussi il pourrait être difficile d'utiliser les bibliothèques javascript existantes. Objective-J n'a pas l'air de faire peur, surtout si l'on considère qu'ils vantent la possibilité d'écrire du simple javascript également. Les démonstrations sont impressionnantes et semblent s'approcher au plus près des besoins de l'interface utilisateur pour le moteur wiki. L'API basée sur le cacao est très difficile à comprendre pour quelqu'un qui n'y est pas familier, 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 potentiellement perturbatrice comme celle-ci aura certainement quelques défauts.
UI
Vide pour le moment
Je m'excuse d'écrire autant, mais au moins ce n'est pas une question x vs y vs z en espérant des tonnes de réponses faciles. Alors, qu'est-ce que vous en pensez ? Qu'est-ce qui devrait être la base de mon moteur wiki de type bureautique, qui deviendra, je l'espère, plus riche en fonctionnalités (lire complexe) au fil du temps ?