Forum Programmation.web Quelles technologies pour débuter un projet web "riche" ?

Posté par . Licence CC by-sa
Tags : aucun
2
13
mai
2013

Bonjour,

Je suis développeur confirmé, en C++. C'est mon métier, je connais bien sur d'autres langages de programmation (un peu de java, du python, scripting, etc…).

Je comprend les concepts et besoins général d'un site web: base de données, séparation client/serveur, je situe correctement les couches HTML(5)/CSS/javascript vs côté serveur. Mais je n'ai jamais réalisé de site web, ou si peu et il y a si longtemps, que je suis perdu dans mes recherches, et hésite à me lancer un peu au hasard.

Je cherche à réaliser à titre personnel un site "riche" :
- un peu de webgl (visualisation 3d de modèles simples, intégré dans une page web, avec déplacement par la souris.
- un site sans "rechargement de la page" à chaque donnée rentrée (je sais que AJAX permet ce genre de chose, mais il existe peut-être d'autres solutions aujourd'hui ?)

Au final, mes recherches google m'ont confirmé une chose: c'est la jungle, il existe des dizaines de solutions possibles. Mais quoi choisir ?
Par exemple, qu'est-ce que "drupal" apporte par rapport à une solution from scratch ? Des mécanismes d'authentification "solides" et sécurisés ?

Je cherche à connaître les couples de technologies qui "vont bien ensemble", comprendre plus en profondeur le cycle de développement, et les avantages/inconvénients des technologies.
Si vous me pointez vers différents sites pour référence, cela me va très bien; si vous avez une opinion sur tel ou tel ensemble de techno que vous aimez bien, c'est très bien aussi !

Merci.

  • # Tu n'es pas seul

    Posté par . Évalué à 4. Dernière modification le 13/05/13 à 02:59.

    Je me suis également posé cette question il y a quelques temps http://linuxfr.org/forums/general-cherche-logiciel/posts/developper-des-interfaces-web

    Au final je me suis orienté vers django pour la "structure" globale du site (accès au données, urls, etc…) et pour le reste … il a fallut que je me tape les différentes technos à la mimine (apprentissage CSS, utilisation de ajax/javascript, …)

    Effectivement c'est la jungle, et je suis franchement "étonné" qu'aucune solution ne sorte du lot pour réaliser des sites techniques (au sens pas des blogs ou des forums) sans avoir à tous se coller. Un peu ce que peux faire un Visual Studio (oulà j'ai prononcé un gros mot).

    Si tu veux juste t'amuser, il y a http://www.webtoolkit.eu/wt, malheureusement, je ne me suis pas orienté vers cette solution par crainte de la pérennité de la chose, mais ça avait l'air très sympa.

    Bon courage.

  • # la question est très difficile

    Posté par . Évalué à 1.

    C'est la jungle, mais c'est normal, c'est encore l’effervescence des débuts.

    J'ai un peu de mal à cerner ce que tu veux y faire, dans ton site.
    En tout cas pour
    webgl, c'est très récent, je n'en ai jamais fait, n'en ferais probablement jamais, je ne sais pas si tu peux trouver des helpers sur la toile.

    Ajax, j'en comprend que tu veux faire un app, par opposition à site un web composé de plusieurs pages.
    Ton app sera composé, in fine d'un unique fichier HTML, les vues sont attribuées par le javascript côté client.
    Je crois qu'il faut regarder du côté de phonegap, peut être yeoman aussi, mais j'ai un petit doute.

    Drupal est un CMS, en gros c'est une grosse usine à gaz avec une interface d'admin chiadée pour installer / configurer des plugins et ajouter des contenus.
    Je peux pas croire qu'un dev C s'abaisse à ce genre de besognes.
    Grosse usine à gaz. A voir si cela colle vraiment avec ce que tu veux fournir comme service à l'utilisateur.
    De ce que j'ai pu lire, rien ne te pousses vers cette solution.

    Moi je te conseillerais plutôt de prendre une base MVC light en php/ruby/python/whatever-else à mettre sur le serveur, et de te contenter de lui faire sortir du json en tout sens.
    (Pet que ROR est le meilleur choix te concernant, ptet pas.)
    Comme cela tu as une couche fonctionnelle côté serveur à consommer à rapidement,
    et tu n'as plus qu'à faire mumuse côté client avec au choix
    jquery
    ember
    http://javascriptmvc.com/docs.html#!steal
    knockout
    angular
    backbone
    et d'autres que je n'ai pas en tête, la liste est variée et mélangée.

  • # Site ou application web?

    Posté par (page perso) . Évalué à 2.

    Si tu veux faire une application web, il y a des solutions qui reprennent les principes du développement sur le desktop:

    http://www.webtoolkit.eu/wt
    https://vaadin.com/
    http://pyjs.org/

    http://devnewton.bci.im

  • # Mon expérience…

    Posté par (page perso) . Évalué à 1.

    Il se trouve que j'ai dû faire un certain nombre de petits sites web (appli web au boulot, petits trucs perso, …), et même si je n'aime pas spécialement ça, je commence à avoir une certaine expérience (pour un gars dont ce n'est pas le boulot).

    Ça fait longtemps que j'ai opté pour du Python + Django, avec des pages relativement statiques (essentiellement parce que je n'aime pas le JS), avec une API REST fournie par Tastypie. Du coup, mes appels JS sont assez limités, et utilisent pas mal JQuery.

    Par expérience, il est important de choisir rapidement le type de navigation :
    - est-ce que la même URL doit servir pour les petits et grands écrans ?
    - navigation possible sans JS ?
    - possibilité de partager un lien vers une page quelconque du site ?
    Transformer un site existant est en général coûteux en temps quand on n'est pas un pro, donc il vaut mieux partir sur des bases saines à ce niveau là.

    Pour la sécurité, c'est un des intérêt d'utiliser un framework comme Django (ou autre) : il y a pas mal de protections de façon native, sans avoir de question à se poser (authentification, mais aussi protection contre les requêtes inter-domaines, etc.)

  • # Je vais faire ma revue basée sur vos liens/commentaires

    Posté par . Évalué à 2.

    Merci pour vos pointeurs: je vais les lire, au moins cela me donne un point d'entrée plus solide.

    Je pense qu'un petit journal à la fin de mes recherches pourraient en intéresser plus d'un :-)

  • # Interface web ou type client lourd ?

    Posté par . Évalué à 1.

    Mes conseils :

    • ne pars pas d'un truc style Drupal ou autre si ton besoin n'est pas celui auquel répond le logiciel, tu perdrais plus de temps à le déconstruire.

    • choisis bien si tu veux une interface type client lourd fait en HTML/Javascript ou si tu veux une vrai application web (REST) avec quelques écrans riches. Dans le doute, je te conseille la seconde option.

    • Tu peux jouer la sécurité en choisissant un framework comme Ruby on Rail ou Django qui reste des options sures avec beaucoup de documentation disponible. Si tu veux plus de fait main, regarde du coté des micro-framework. L'avantage des gros framework c'est d'accélérer ton démarrage en réutilisant des modules de gestion des utilisateurs etc… par contre tu le paye en flexibilité / complexité.

    Coté client lourd html/javascript, dans le type bleeding edge il existe Obviel http://www.obviel.org/ que j'ai vu utilisé pour un vrai projet avec une interface très interactive.

    Tout ses conseils n'engagent que moi ;-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.