Journal Quel framework?

Posté par  (site web personnel) .
Étiquettes :
0
27
juin
2004
Cher journal, je viens d'entamer un stage de trois mois dans une PME qui a une grande confiance en moi...

Au bout de 2 jours openoffice était installé sur 3 postes, et mozilla firebird sur 2 postes.
Vendredi soir j'ai eu un rendez-vous avec (entre autre) le PDG, et openoffice va etre installé sur tous les postes. J'ai aussi commencé a leur refaire un logo plus sexy avec Gimp :) (a noter que je n'arrive pas a faire tourner inkscape ou sodipodi avec nt4)

Mon stage a 2 buts:
le premier objectif est de rendre "sexy" leur produit phare construit en powerbuilder7 avec une base mssqlserver en rajoutant une interface web pour les clients des clients.

le deuxième objectif (optionnel) est de tester leur appli en charge sous linux (evidemment pour eux linux=redhat)

Le truc c'est qu'en l'occurence on me laisse assez libre de mes choix (par exemple le xul n'est pas ecarté du tout pour le moment pour l'interface web :) ) et je sais aussi qu'ils ont essayer de migrer leur base mssql vers mysql (de memoire c'etait mysql, je ne suis pas sur 100%) mais ca a foirer et ils n'ont pas insister.

En bref je peux faire rentrer pas mal de technos libres dans cette petite boite bien sympathique :)

Pour la webisation, d'abord envisagée avec ASP sur IIS ou en utilisant les outils basés sur ActiveX de powerbuilder et produisant un code affreux (du vieux html avec les balises en majuscule...), j'envisage plusieurs solutions: zope, apache/php, apache/tomcat/jsp ou servlet

Je connais assez bien php, mais je cherche une solution plus élégante. zope me parait sympathique --j'ai fait 2-3 tutoriaux cet aprem-- et je n'ai encore jamais essayé jsp/servlets .

J'aimerais m'embeter le moins possible avec le login et les sessions (zope a l'air bien pour ça, les servlets/jsp je sais pas) et utiliser une connexion SSL pour etre nickel au niveau sécurité.

Une des choses importantes est la pérénité de la techno, et je crains un peu des problèmes dans le futur pour l'accès de zope à l'odbc par ZODBCDA qui n'est livré qu'en binaire apparament(bien qu'il y ait d'autres connecteurs comme un special postgresql). Je ne pense pas qu'il y ait le moindre problème de ce coté là avec java...

On aimerait bien que j'utilise webdev plutot que tout ça, pcq le dev principal de l'appli connait bien windev. a première vue, ce n'est pas totalement ininteressant mais ca ne me motive pas(de plus le dev m'a dit que c'est pas grave si je developpe avec autre chose)... si je veux ne pas l'utiliser il me faut des gros arguments contre webdev, et/ou des gros arguments pour les autres possiblités!

Aussi comme il est question de geolocalisation, et comme j'ai decouvert postgreGIS (quand je cherchais a installer posgresql pour tester les connecteurs zope) qui est vraiment fait pour faire des cartes géographiques et que je connais aussi cart'ooo qui est un projet de cartes pour openoffice, je me disais qu'a partir de tout ca et de coordonnées GPS, ca devrait être faisable d'afficher le(s) vehicule(s) dont on a les coordonnées sur une carte.

Aussi pour que ce soit interessant il faudrait que la base de donnéee principale soit postgresql et non plus mssqlserver, et donc il me faudrait savoir si il serait possible de faire une migration mssqlserver vers postgresql sans gros probleme, et surtout rapidement! si qqn a déjà fait ce genre de chose ca m'interesse.

Voilà!!! Votre avis m'intéresse! les + et les - pour tout, et aussi les arguments pour pousser les LL dans cette boite (multiplateforme,gratuité et pérénité sont mes principaux arguments actuellement)!

PS: merci d'avoir lu jusqu'au bout, vous avez du courage! ;o)
  • # critiques utiles (j'espère)

    Posté par  . Évalué à 4.

    > on me laisse assez libre de mes choix (par exemple le xul n'est pas ecarté du tout pour le moment pour l'interface web :) )
    Oué, mais xul n'est pas supporté par ie, qui représente quand même 95% des browser :(

    > ils ont essayer de migrer leur base mssql vers mysql (de memoire c'etait mysql, je ne suis pas sur 100%)
    Propose leur PostGreSQL (j'ai pas d'action chez eux) mais il me semble qu'il est plus mieux, surtout si ils viennent de mssql... gestion des locks, sous-select, et tout le bazar, qu'il faudrait réécrire avec mysql (pitet)

    > webdev : si je veux ne pas l'utiliser il me faut des gros arguments contre webdev, et/ou des gros arguments pour les autres possiblités!
    Je suppose que webdev te sors un fichier de conf du projet totalement fermé et non documenter... et si tu te fais écraser, ton patron y a pensé ?

    > migration mssql -> postgre
    Pourquoi ca serait pas possible ? ;)
    • [^] # Re: critiques utiles (j'espère)

      Posté par  (site web personnel) . Évalué à 2.

      >Oué, mais xul n'est pas supporté par ie, qui représente quand même 95% des browser :(

      a vrai dire j'avais proposé xul car d'abord on me demandais de webiser l'application, c'est à dire refaire ce que faisait déjà le logiciel mais en web. xul n'etait pas une contrainte enorme et on pouvant facilement fournir mozilla. j'avais fait un essais et c'est vrai que xul me permettait de recreer la même application pas trop difficilement, néanmoins il m'aurait fallu sans doute 6 mois pour refaire l'application en entier.

      Disons que j'aimerais etre indépendant de l'interface afin de pouvoir faire xul/xml/xhtml à volonté sans trop m'embêter

      A noter que IE5.* +IE6= 81% du marché, et non pas 95%

      Mozilla quand à lui représente 11,4% du marché au mois de juin d'après http://www.w3schools.com/browsers/browsers_stats.asp(...) (ne me demandez pas comment ils font les stat, si ils ne se basent que sur leur propre site, ces chiffres ne sont pas forcément représentatifs).

      Et je sens que mes effort de faire installer mozilla(voir opéra pour une machine peu puissante) +les-extensions-qui-vont-bien(TBE,Adblock,etc...) a tout le monde sous n'importe quel bon prétexte (exemple le dernier virus: je dis: "déjà si tu utilises firefox pour naviguer et thunderbird pour lire tes mails, et en faisnt un minimum attention,tu peux jeter ton antivirus qui te ralenti ton ordi en le transformant en char a boeuf, à la poubelle!" apres je l'install, et ils viennent plus m'embêter à cause des virus/worms --sauf ceux type blaster evidemment--)
      portent leurs fruits :) :)


      >Propose leur PostGreSQL

      J'y pense, cf fin du journal ;)

      >Je suppose que webdev te sors un fichier de conf du projet totalement fermé et non documenter... et si tu te fais écraser, ton patron y a pensé ?

      pas tout compris là :P

      >> migration mssql -> postgre
      >Pourquoi ca serait pas possible ? ;)
      la question n'est pas si c'est possible, mais si c'est rapide à faire (ce n'est pas du tout l'objet de mon stage et si je le propose alors va falloir que je le fasse, et donc j'ai interet à bien evluer le coût en temps! et aussi quels arguments apporter par rapport a un mssqlserver(je crois que mssql c'est payant, deja, et ça ca peut faire la différence, mais si la migration est trop pete couille...)?
      • [^] # Re: critiques utiles (j'espère)

        Posté par  . Évalué à 2.

        > la question n'est pas si c'est possible, mais si c'est rapide à faire (ce n'est pas du tout l'objet de mon stage et si je le propose alors va falloir que je le fasse, et donc j'ai interet à bien evluer le coût en temps!

        PostgreSQL étant étoffé, ça doit être possible. Si mssql ne fait que base de donnée et qu'il n'y a pas de procédures embarquées, je pense que quelqu'un qui connait bien mssql et PostgreSQL fait ça rapide.

        Au début, discutes avec le développeur de la base mssql. Demandes s'il a utilisé des trucs "exotiques", quelle sont les fonctionnalitées les plus avancées qui sont utilisées. Demandes le nombre de tables consernées et si le type des données est "standard" (surtout pour les dates). Demandes s'il y a des trucs stupides comme "9-9-99 => date non renseignée".

        Après t'être familliarisé avec PostgreSQL, demandes un dump de mssql au format SQL. L'intérêt de partir d'un dump SQL et de ne pas utiliser une moulinette, c'est que tu vois précisément ce qui doit être fait. Une moulinet va peut-être virer des trucs qui sont importants et tu vas ramer pour trouver le problème. Corriges les problèmes triviaux. Pour les points dures, demandes à celui qui a fait la base mssql pour t'assurer que tu vois bien ce qu'il faut faire. Il est très important d'être sûre de ne pas passer a côté de quelques choses. Ceci dit, ça dépends des bases et certaines sont très simples.

        Cette premier phase d'importation peut-être faite rapidement !
        Donc fais ça dans un coin (en heure sup :-( ). Ou dit a ton bosse que tu vas prendre une demi-journée pour évaluer le portage de mssql à PostgreSQL.

        Idéalement, fais ça après assez bien connaitre PostgreSQL et si possible avec un développeur mssql qui n'est pas loin.

        Pour me répéter, fais ça en trois phases :
        - une première pour dégrossir en une journée maxi. Tu peux faire ça officiellement ou non.
        - En fonction de la perception de la première phase regardes s'il est "raisonnable" de faire le portage vers PostgreSQL. Estimes le temps nécessaire.
        - Portage complet + test.

        > et aussi quels arguments apporter par rapport a un mssqlserver(je crois que mssql c'est payant, deja, et ça ca peut faire la différence,

        Le prix est un faut problème ici. Regardes combien tu coûtes pour une journée :-)
        Prend en compte le fait que tu devras peut-être formée une autre personne à PostgreSQL, etc...

        > mais si la migration est trop pete couille...

        Franchement, puisque ce n'est pas une priorité, ne le fait pas !
        Ou fais le à la fin de ton stage au lieu de jouer au solitaire :-)
        • [^] # Re: critiques utiles (j'espère)

          Posté par  . Évalué à 1.

          >Après t'être familliarisé avec PostgreSQL, demandes un dump de mssql au format SQL.
          C'est une bonne idée initialement, mais sur la version de SQL Server que j'utilisais(v7 je crois), il n'était pas possible de faire un dump à la mysql, cad d'exporter les données (uniquement la structure).
  • # Conseil

    Posté par  . Évalué à 9.

    Écoutes beaucoup les autres !
    Montres que tu tiens compte de leur avis et ne fais pas dans le :
    - tous sauf MS.

    Bref, ne soit pas intégriste ! C'est hyper important sinon les gens se braquent.

    Utilises PostgreSQL au-lieu de MySQL. A l'utilistation pour de petit projet c'est pas plus compliqué mais si tu as besoin de fonctionnalités avancées elles sont là.
    Et en fonctionnalité avancée, il faut pas chercher bien loin pour avoir besoin de PostgreSQL. PostgreSQL est meilleur pour la gestion de date, i18n, etc. Il y a aussi le type coordonnée (et des opérateurs) qui peut-être pratique pour ton projet.

    Je vais être un intégriste :-) mais quit à apprendre un nouveau SGDB, commences par PostgreSQL.

    Utilises les "standards". C'est beaucoup plus facile à maintenir et ça t'évite de faire des docs de 12 kilomètres. Si PostreSQL (par exemple) est fournit dans la distribution, ne fais pas une installation depuis les sources (ou depuis cooker/rawhide/etc) pour avoir la dernière version. C'est de la pure connerie, c'est une perte de temps énorme pour rien et les autres vont te regarder de travers en te voyant jouer au "sorcier".
    Ceci dit, parfois c'est nécessaire :-)

    > zope

    Je suis toujours très hésitant avec ce type de produit. J'ai investi beaucoup de temps à une époque pour évaluer zope et midgard. Et à chaque foi, je tombais sur un détail technique qu'il était difficile de contourner pour mon projet.
    Finalement, j'ai utilisé phplib dont beaucoup template (pas templeet :-)).
    C'est toujours le même débat entre 4gl et outils bas niveau. Si ton projet est assez complexe, s'orienté vers le "bas niveau" peut-être un bon chois. Par contre, au début il faut s'arracher. En effet, au début, les autres ont l'impression que le projet n'avance pas et que tu perds beaucoup de temps avec un outil bas niveau. Puis une fois que tout est en place, c'est "wouhaaa".

    Mais attention, c'est compliqué. Il faut savoir faire un bonne conception et prendre en compte dès le début les évolutions les plus probables. Il faut préparer le terrain pour de futur victoire :-)
    Donc si t'es un bon développeur et que tu aimes ça (car parfois on s'arrache les cheveux), éviter zope/midgard/etc peut-être un bon choix.

    Sur un projet, c'est au début qu'il faut s'arracher à fond ! Étude du besoin, rencontre des utilisateurs, ébauche de solution, cahier des charges, conception sur le papier.
    Si tu assures à cette étape qui est assez pénible quand on aime coder, le reste roule tranquillement et tu peux lever le pied.
    Fais attention lorsque tu élabores un projet. En général le délais qu'on s'accorde est toujours trop court.
    Donc augmentes les délais et peut-être que tu feras la surprise d'être en avance sur le planning.
    Ne sous-estimes pas le temps nécessaire vers la fin du projet. C'est toujours là que des petits problèmes difficiles à trouver ou corriger arrivent ou qu'il y a des demandes nouvelles d'utilisateurs de priorité 0 (comme par hazard...). Donnes toi une bonne période pour finaliser/tester le projet.

    Fais du beau code, maintenable, modulaire, etc et dès le début. Le temps que tu "perds" au début n'est absolument pas perdu. Tout le monde te le dira (ou presque).

    Bonne chance.
    • [^] # Re: Conseil

      Posté par  (site web personnel) . Évalué à 1.

      merci de tout ces conseils :)

      >C'est toujours le même débat entre 4gl et outils bas niveau

      le cigle 4gl correspond a RAD en gros? ce n'est pas la 1e fois que je le vois, mais j'en ignore la signification exacte

      >Donnes toi une bonne période pour finaliser/tester le projet.

      C'est aussi ce que m'a demandé le patron :)

      >Mais attention, c'est compliqué. Il faut savoir faire un bonne conception et prendre en compte dès le début les évolutions les plus probables. Il faut préparer le terrain pour de futur victoire :-)

      Oui, ca c'est mon dada, j'aimerais bien etre assez indépendant de l'interface, permettre facilement des evolutions si j'ai le temps de les réaliser (un jolie carte pour montrer ou est la camion, etc) et permettre au transporteur de gérer facilement les droits qu'il laisse à tel ou tel login, ainsi que point de vue technique tout gérer la présentation par CSS :)

      >Fais du beau code, maintenable, modulaire, etc et dès le début. Le temps que tu "perds" au début n'est absolument pas perdu. Tout le monde te le dira (ou presque).

      tout afait d'accord, mais je n'irais sans doute pas jusqu'a une modularité type "plug-in" pcq après ca devient une usine à gaz ton "moteur" de site
      • [^] # Re: Conseil

        Posté par  . Évalué à 2.

        le cigle 4gl correspond a RAD en gros?

        ça doit vouloir dire langage de 4ème génération
  • # Zope

    Posté par  (site web personnel) . Évalué à 6.

    Pour ce qui est de Zope et de sa connexion aux bases de données, pas de problème, il sait se connecter à à peu près n'importe quoi (y compris mssql, mysql et pgsql).

    Par contre attention, Zope n'est pas une solution simple. Zope c'est un produit complexe, mais ultra puissant, et vachement intéressant d'un point de vue technique.
    Si tu veux faire un truc qui s'approche de la gestion de contenu, là Zope est une star. Par contre si tu veux faire un truc sans trop te faire chier, apprendre comment marche Zope te semblera probablement un peu lourd.

    Si tu veux t'y mettre, lis le ZopeBook qui est sur Zope.org, et fais le tutorial "ZopeZoo" qui est dedans.
    • [^] # Re: Zope

      Posté par  (site web personnel) . Évalué à 1.

      J'ai déjà fait zopezoo en partie, j'aime beaucoup l'approche on fait un template, on rajoute juste des repertoires, et il se demerde tout seul(si on a bien fait le template evidemment!).

      Pratique aussi pour les css et tout ce qui est lié à une page, il n'y a pas besoin de gérer le chemin vers le css si tu es dans un sous repertoire.

      Apparament, pour le login/variables de session, Zope est tres simple aussi, mais je n'ai pas encore testé.

      Je n'ai eut aucun avis sur jsp/servlets... ? En effet celui qui m'a embauché viens d'IBM, on a meme eut droit a une visite d'un de ses collègues présentant HATS (un outil de revemping utilisant websphère)

      ---------

      Je vais donner un peu plus de details: je ne suis pas sur que ca me soit interdit, et la probabilité que mes collègues lise ce journal tend vers 0 :)

      En gros je bosse pour une SSII spécialisée dans le transport.

      Ce qu'on m'a demandé, c'est un site pouvant servir tout d'abord aux clients des transporteurs, leur permettant de suivre où en est la livraison de leur colis (un peu comme UPS, pour ceux qui l'ont déjà utilisé: c'est très sympa) et étant donné que je disposerais des coordonnées GPS, ca pourrait être sympa d'afficher une carte avec le camion dessus :) (je pense que la carte est qqchose que je ferais en option si j'ai le temps).

      Cette page client ne semble pas tres difficile a realiser (sauf p-e sur l'estimation de l'arrivé du camion), mais ce qui est un peu plus embêtant, c'est que je dois créer une gestion de droits pour les utilisateurs (en gros le transporteur autorise le client a faire tels chose en lui envoyant un login+motdepasse généré, par mail).

      Un autre but eventuel, c'est rajouter la saisie d'info par l'intranet/extranet (evitant d'installer le soft partout pour faire une bete saisie) a priori c'est pas dure (surtout que les requetes existant deja dans l'appli, ca doit être plus que faisable)mais le temps dépend du nombre, évidemment!

      Un autre but est la consultation de statistiques(voir de planning si possible), c'est toujours simple, néanmoins il me faudrait pour bien faire générer des graphiques: quel serait alors l'outil le plus simple? php/gd/qqchose ? zope/une_extension ? jsp/servlet(peut être le plus puissant pour ça, non?) ?
  • # Migration Postgresql

    Posté par  . Évalué à 4.

    Aussi pour que ce soit interessant il faudrait que la base de donnéee principale soit postgresql et non plus mssqlserver, et donc il me faudrait savoir si il serait possible de faire une migration mssqlserver vers postgresql sans gros probleme, et surtout rapidement! si qqn a déjà fait ce genre de chose ca m'interesse.

    La page http://techdocs.postgresql.org/#convertfrom(...) référence plusieurs docs de migration et mentionne l'outil d'administration Postgresql qui posséde un plugin permettant de migrer une bdd à laquelle il est connecté par ODBC.

    Si ta base mssql ne posséde pas de procédures stockées tu ne devrais pas rencontrer de problèmes majeurs.
    • [^] # Re: Migration Postgresql

      Posté par  (site web personnel) . Évalué à 1.

      merci, tres bon lien(j'avais essayé d'accèder a ce site hier mais il etait en rade...) ca devrait me permettre d'evaluer la difficulté de la migration avec le developpeur :)
  • # A propos de PostgreGIS...

    Posté par  . Évalué à 2.

    En fait c'est une extension spatiale pour les bases de données. Ça permet de stocker des données avec une certaine géométrie spatiale, et surtout de faire des requêtes spatiales.

    De ma petite expérience de développeur d'applis cartographique, placer une voiture sur une carte est à la limite du trivialissime, pas besoin de sortir un postgreGIS ou équivalent.

    Si par la suite, tu a des besoins cartographiques plus violents (genre quelle voiture est située à moins de 3 km d'une pompe à essence dans telle ville), alors un postgreGIS peut se justifier. Mais une base relationnelle classique sera beaucoup plus performante.
    • [^] # Re: A propos de PostgreGIS...

      Posté par  (site web personnel) . Évalué à 1.

      ok merci :) et pour evaluer le temps que va mettre un camion pour livrer sa marchandise, en estimant par exemple que la moyenne en ville est de 20km/h et sur route de 70km/h connaissant la distance au but, mais si c'est GPS, c'est peu-etre seulement la distance à vol d'oiseau,et la vitesse moyenne du véhicule: est que postgreGIS à alors un intéret ?
      • [^] # Re: A propos de PostgreGIS...

        Posté par  . Évalué à 1.

        Pour ça, postgreGis aura un intérêt...

        Mais sache que les requètes spatiales sont toujours plus lentes que des requêtes classiques, surtout si tu a beaucoup de données.
        Ne négliges pas le coût de l'entrée des données dans la base; les fonds de carte sont assez chers. De plus je ne sais pas si PostgreGIS a un géocodeur pour la France (pour transformer une adresse en point spatial)

        Bon courage :)

Suivre le flux des commentaires

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