107 votes

Où est-ce que je me trompe à propos de mon projet et de ces frameworks Javascript ?

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 ?

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.

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 ?

19voto

Brian Flanagan Points 2955

Je ne connais pas votre calendrier et vos ressources, mais lorsque j'essaie de choisir entre plusieurs cadres/environnements, je me lance et j'essaie de construire rapidement un prototype. Même s'il ne s'agit que d'une ou deux fonctions majeures, je trouve que toutes les recherches et la documentation du monde ne seront jamais à la hauteur d'une tentative réelle de construire quelque chose avec les outils. Je vous conseille de prendre une journée avec chacun d'eux et de voir où vous en êtes. Cela vous donnera une bonne indication des outils qui sont à la hauteur de la tâche et qui vous conviennent le mieux.

4voto

It Grunt Points 1993

Je vous suggère de définir d'abord les besoins spécifiques de votre projet en matière d'interface utilisateur. Parmi les frameworks que vous avez essayés, lesquels avez-vous testés ?

Personnellement, je me suis lancé dans le développement ExtJS parce que les projets sur lesquels je travaille nécessitent une grande personnalisation des contrôles/widgets. ExtJS en a une tonne dès la sortie de la boîte et peut toujours être étendu, combiné ou transformé en n'importe quelle monstruosité dont votre entreprise a besoin.

ExtJS 4 vous permet également d'habiller vos interfaces utilisateur afin d'en personnaliser davantage l'aspect et la convivialité.

Si vous êtes novice en JavaScript et que vous êtes à l'aise avec Java, vous pourriez même envisager une solution côté serveur telle que GWT , JSF ou encore Vaadin

1voto

Aaron Points 140

Le choix du cadre de travail n'est peut-être pas aussi contraignant que vous l'imaginez pour vos choix d'interface utilisateur. Cet article récent d'Henri Bergius sur le découplage de la gestion de contenu illustre le propos bien mieux que je ne pourrais le faire -- et, accessoirement, renvoie à un programme en JavaScript pur (indépendant du cadre de travail) très intéressant éditeur de contenu sur place .

1voto

backspaces Points 143

Vous n'êtes pas seul !

VanillaJS y Ampersand sont de bons exemples de la volonté de simplifier et de rendre modulaire JavaScript.

Il y a même un Livre à ce sujet.

La simplicité est poussée par une caractéristique sous-estimée de l'es6 : Modules et le SystemJS norme de mise en œuvre. Il peut même être utilisé sur des systèmes non-es6.

Comme c'est cool !

1voto

itcouldevenbeaboat Points 1357

Je dirais que vous vous trompez dans votre choix global de candidats car vous omettez Angulaire y Ember qui sont tous deux mieux adaptés que n'importe lequel des autres cadres cités.

Dans l'ensemble, je dirais qu'Angular.js est le cadre idéal pour ce projet.

Accent mis sur le routage

Une grande partie de ce dont vous parlez (plusieurs barres latérales pour la navigation, une application à page unique) sont des fonctions de routage, ou comment le front-end interprète le texte dans votre barre de navigation URL.

Angular.js et Ember disposent tous deux d'excellents routeurs qui vous permettent d'accomplir tout ce dont vous avez besoin sans code supplémentaire.

Pour vous aider, voici une brève description des fonctionnalités d'Angular qui peuvent être utilisées pour créer votre wiki à page unique.

La structure du site lui-même

Angular dispose d'une bibliothèque étonnante appelée routeur UI qui vous permet à la fois de créer une navigation personnalisée et de mettre en place une structure adaptée au référencement pour révéler votre contenu. Les vues multiples permettent également de créer une barre d'outils supérieure.

Tutoriel sur le routeur Ui : http://cacodaemon.de/index.php?id=57

Éditeur WYSIWYG

Angular est construit sur une liaison bidirectionnelle en direct (lorsque vous modifiez quelque chose quelque part, cela change automatiquement partout ailleurs). Par conséquent, il est livré emballé avec de nombreuses fonctionnalités qui fonctionnent bien avec ce type d'éditeur. Quelques bonnes fonctionnalités ont déjà été réalisées et il ne vous reste plus qu'à les mettre en œuvre.

http://textangular.com/

Graphs and Other Neat Stuff

Les directives Angular sont conçues pour faire des choses comme créer des composants graphiques réutilisables. Elles ne sont pas totalement différentes des widgets Wordpress. Nombre d'entre eux ont déjà été développés et peuvent être intégrés à votre projet Angular.

http://www.sitepoint.com/creating-charting-directives-using-angularjs-d3-js/

En ce qui concerne Ember, je n'y connais pas grand-chose et je ne peux donc pas parler de ses caractéristiques particulières.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X