Forum général.cherche-logiciel Développer des interfaces "web"

Posté par .
Tags : aucun
2
21
août
2012

Bonjour cher forum, je ne te réveille pas?

Actuellement, j'ai besoin de créer des interfaces accessible via un navigateur internet (pas de client lourd à déployer chez le client).
Le but est de rendre consultable des données récupérées via un système d'acquisition dans une base et de pouvoir les modifier.

Le problème, c'est que je n'ai une expérience que très lointaine de ce genre d'exercice (une époque où on codait tout à la main en PHP/Mysql, et où le code était dur à maintenir). Depuis plus d'une décennie, je fais plutôt du C/C++, parfois du python…
Je ne sais donc pas trop comment commencer. Bien sûr, j'ai quelques bases concernant les technos web, mais de là à faire quelque chose d'efficace …

Je cherche donc un environnement (langage, framework, …) qui, par ordre de priorité:
1. soit pérenne
2. soit efficace et pas trop long à apprendre
3. facile à maintenir
4. permettant de faire des interfaces "riches" (HTML5, Ajax)

A noter que je suis administrateur du serveur qui fera tourner le tout, aucun problème donc pour activer des extensions Apache exotiques.

Voulant mettre à profit mon expérience en C++, j'ai pensé m'orienter vers Wt. Ça se rapproche beaucoup de ce que je pratique au quotidien. mais j'ai peur de la pérennité de la chose sur le long terme. Quel est ton avis?
Il y a sinon le php, mais je ne sais pas trop vers quel framework m'orienter. En plus (désolé pour le troll) mais je trouve qu'il est très difficile de faire des trucs "propres" avec (c'est certainement mon manque d'expérience qui parle).
Enfin, j'ai pensé au python et j'ai donc rapidement survolé Django, j'ai bien compris le principe, mais je ne sais pas s'il est facile de l'interfacer avec des sources des données déjà existantes.
Il y a certainement d'autres pistes à explorer, j'attends tes propositions.

J'en appelle donc à ta grande sagesse, mon forum favoris. Peut-être seras-tu éclairer ma lanterne.

D'avance Merci.

  • # symfony ?

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

    • [^] # Re: symfony ?

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

      C'est la réponse que j'allais faire. C'est un framework php pas trop dur à prendre en main et qui correspond à tous les points demandés.

      Django ça a l'air bien aussi, personnellement je n'ai pas beaucoup travaillé dessus, juste patché un logiciel mais from scratch ça m'a l'air compliqué (ceci dit je connais pas bien python) Et il y a sans doute une plus petite communauté qui connaît django comparé à symfony.

      À noter que la version 2 de symfony change beaucoup de choses comparé à la 1 donc il vaut mieux partir directe sur la 2

    • [^] # Re: symfony ?

      Posté par . Évalué à 1.

      Symfony est un très bon framework, mais son apprentissage peut être relativement long et rebutant. A mon avis CakePHP est un bon compromis entre simplicité et puissance. La documentation est plutôt complète et bien faite ce qui est important aussi.

      • [^] # Re: symfony ?

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

        Faisant du dev tout à la main en PHP depuis des années, je n'ai jamais réussi à m'adapter aux framework PHP, toujours trop complexe pour mon usage.
        J'ai par contre découvert Django récemment, il permet vraiment de gagner du temps et il est, je trouve, beaucoup plus simple d'apprentissage.
        Tu le colle à un bootstrap twitter (ou zurb ou autre) pour le design et tu as un site tout joli en moins d'une, aller soyons fou 2 semaines, formation comprise.

        Is it a Bird? Is it a Plane?? No, it's Super Poil !!!

  • # tu connais python, alors django est fait pour toi

    Posté par . Évalué à 4.

    tout est dans le titre

  • # Liste bien complète de framework

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

    http://fr.wikipedia.org/wiki/Liste_de_frameworks_PHP

    http://fr.wikipedia.org/wiki/Liste_de_frameworks_Java

    http://fr.wikipedia.org/wiki/Liste_de_frameworks_Python

    http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

    Bon courage pour le choix… là je t'es donné pleins de pistes d'un coup
    Tu ne précises pas si tu dois avoir d'autres mainteneurs potentiels du bazard, ni la charge simultanée. De même quelle sera la base de données derrière, entre Mysql, Oracle, DB2, Postgresql, Ingres, SQL Server, Teradata, tous les frameworks ne sont pas capables de s'y connecter directement.

    Perso j'ai bien aimé Symfony, mais il faut un temps avant d'arriver à faire qq chose… (mais tout dépend de ton pas trop long à apprendre)

  • # Un framework en C++ qui l'est bien : CppCMS

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

    Comme son nom ne l'indique pas, ce n'est pas un CMS

    http://cppcms.com/wikipp/en/page/main hop les liens qui vont bien

    Après si tu veux pas t'embeter vu qu'en ce moment je code plein de truc avec, je me suis fait un "squelette" pour m'aider à générer des sites rapidements

    https://github.com/sysko/cppcms-skeleton

    et si tu veux un exemple

    https://github.com/sysko/Tatodetect

    J'écrirais surement à journal dessus, car il ne me semble pas avoir vu des gens en parler ici

    Comme cela fait beaucoup de code à digérer grosso modo:

    En gros il a une classe principale "Application" sur lequel on branche des "sous applications" comme suit

        Application::Application(cppcms::service &serv) :
            cppcms::application(serv),
            sousApplication(serv) {
                add(sousApplication, "^/url-qui-va-bien(.*)", 1);
        }
    
    

    Ainsi lorsque ton utilisateur va sur une URL qui commence par /url-qui-va-bien, cela passe la main à sous application, qui recupere le morceau d'url qui suit (note: il est tout à fait possible de définir d'autre type de regexp, là c'est juste mon choix personnel)

    Ensuite dans SousApplication cela se passe comme ça

    SousApplication::SousApplication(cppcms::service &serv) : Controller(serv) {
    
              usersModel = new models::Users();
    
             cppcms::url_dispatcher* d = &dispatcher();
             d->assign("/sous-url/(\\w+)$", &SousApplication::methode_qui_va_bien, this, 1);
    
         }
    
    

    Cela dit que lorsqu'un utilisateur va sur /url-qui-va-bien/sous-url/bonjour
    1 - on appelle SousApplication avec "/sous-url"
    2- cela va appeler "methode_qui_va_bien" avec un parametre "bonjour"

    Maintenant la méthode

         void SousApplication::methode_qui_va_bien(std::string message) {
    
             // en admettant qu'on l'ai mis quelque chose avant
             std::string username = session()["name"];
             // classe dérivant de Content à définir autre part
             MonContent c;
             c.message = message;
             c.username = username;
    
             render("vue_qui_va_bien", c);
    
         }
    
    

    En gros le but va d'etre de remplir un Content (donc évidemment après on le remplit comme on veut, appelle à une bdd etc.) qui sera ensuite passé à une vue

    Et là je vois les ruby-on-railistes et les phpistes et autres djangoistes me dire "Bon t'es bien gentil mais nous on veut voir comment on genere le html, en c++ ça doit etre drole, allez fait nous rire avec ton langage bas niveau"

    Et Non c'est là toute la magie de cppcms, il utilise aussi des templates
    donc ma vue n'est en fait rien d'autre que cela

    <% c++ #include "contents/MonContent.h" %>
    <% skin %>
    <% view vue_qui_va_bien uses MonContent extends master %>
    <% template title() %><% gt "Tout va bien  %><% end template %>
    
    
    <% template body() %> 
        <%= message %>
        <%= username %>
    <% end template %>
    
    
    
    <% end view %>
    <% end skin %>
    
    

    et le "Master" qui va bien

    <% c++ #include "contents/content.h" %>
    <% skin %>
    <% view master uses contents::BaseContent %>
    <% template render() %>
    <!DOCTYPE
        html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    >
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <% include header() %>
    </head>
    <body>
        <% include body() %>
    </body>
    </html>
    <% end template %>
    
    <% template title() %>TODO: replace this<% end template %>
    
    
    <% template header() %>
    <title><% include title() %></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <% include css() %>
    <% end template %>
    
    <% template css() %>
    
    <% end template %>
    
    

    Celui là il suffit de l'écrire une fois et après redéfinir dans les autres vues, les fonctions que l'on veut "override"

    après cppcms offre un outil qui convertira ces templates en code C++ (c'est à préciser dans le makefile, mais il suffit de pomper celui donner dans les exemples, rien de magique)

    Après il est possible soit de le lancer derrière un Apache/nginx/lighttps (meme I2S) avec fast-cgi ou sinon il vient également avec son mini serveur http standalone (le binaire généré prend un fichier de configuration en paramètre, écrit en json, qui permet de préciser, entre autre, fast-cgi ou standalone)

    Enfin pour me simplifier la vie, avec cppcms-skeleton je fais simplement un git clone
    je remplis les options qui vont bien dans 'tootls/config.y'
    je lance un "init.py"
    et après pour ajouter une nouvelle sous application "./addController.py SousApplication"
    pour ajouter une nouvelle méthode/content/vue associé "./addMethod.py SousApplication bonjour"
    le code généré compile, après il suffit juste de remplir le code.

    • [^] # Re: Un framework en C++ qui l'est bien : CppCMS

      Posté par . Évalué à 1.

      Enfin pour me simplifier la vie, avec cppcms-skeleton je fais simplement un git clone
      je remplis les options qui vont bien dans 'tootls/config.y'
      je lance un "init.py"
      et après pour ajouter une nouvelle sous application "./addController.py SousApplication"
      pour ajouter une nouvelle méthode/content/vue associé "./addMethod.py SousApplication bonjour"
      le code généré compile, après il suffit juste de remplir le code.

      mais alors cppCMS, c'est du C++ ou du PYthon ?

      • [^] # Re: Un framework en C++ qui l'est bien : CppCMS

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

        Pardon j'ai oublié de bien faire le distinguo

        Ici le init.py est un petit script que je me suis écrit (et que j'ai mis dans mon cppcms-skeleton, qui est une surcouche maison à cppcms), qui va me générer mon code c++ (vu que je suis toujours le patron de conception expliqué au dessus, ça me semblait idiot de devoir réecrire un code qui suit toujours le meme schema/nomenclature que ce soit Users, Posts etc.)

        Le code à la fin c'est du c++, et il est tout à fait possible de se passer de ces petits outils (à la base c'est surtout pour mon usage perso) qui ne sont tout compte fait que des "templates" un peu plus évolué que les fichiers templates de vim.

  • # CodeIgniter ou fuelPHP

    Posté par . Évalué à 1.

    Je n'ai jamais accroché avec les framework.
    Par contre, depuis peu, je me suis mis à CodeIgniter et je trouve que c'est génial…

    L'apprentissage est rapide et il fait gagner bcp de temps…
    http://www.siteduzero.com/tutoriel-3-370694-codeigniter-le-framework-au-service-des-zeros.html
    http://simpledev.fr/tutoriels/categorie/codeigniter/2

    Bon travail et courage…

  • # Merci ;-)

    Posté par . Évalué à 1.

    Merci pour toutes vos réponses. Je vais jeter un coup d'œil à toutes les solutions proposées.

Suivre le flux des commentaires

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