IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Quels composants utiliser pour une application client/serveur (mySql) ?


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Points : 170
    Points
    170
    Par défaut Quels composants utiliser pour une application client/serveur (mySql) ?
    Bonjour,

    J'ai tenté d'utiliser les composants BDE (TTable...) pour une appli client/serveur comme je l'ai fait pour une base Access. Mais le fonctionnement n'est plus possible : par exemple, j'utilise plusieurs TTable pointant sur la même table, ce qui ne parait pas logique mais qui est indispensable car si j'ai bien compris, une table pointe sur un enregistrement, et dans mon appli (progiciel) plusieurs utilisateurs peuvent accèder aux clients, et les mises à jours ne sont pas pris en compte (il faut à chaque fois fermer et ouvrir la TTable pour mettre à jour les modifications des autres utilsiateurs).

    Comment faire pour créer une appli Client/Serveur ? Quels composants utiliser ? Dois-je me tourner vers une solution payante ? Si oui laquelle ?

    J'utilise CodeGear 2007 (en fait, Builder c++ 2007 mais je n'ai pas eu de réponses sur le forum à ce sujet)

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    pour moi c'est un comportement normal

    il faut actualiser ton écran pour voir les modifications effectuées

    mais tu dois avoir un Table.Refresh...je sais plus ça fait très longtemps que je n'utilise plus ces composants
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 429
    Points : 24 794
    Points
    24 794
    Par défaut
    Delphi 2007 MySQL

    Dans Delphi 2007, il n'y a pas des composants ADO ou des composants DBExpress qui sont spécialement dédié MySQL ?

    Sinon même avec Paradox, pour un bon fonctionnement multi-client (car on ne pouvait pas parler de serveur vraiment), il fallait ouvrir et fermer les tables ...

    maintenant est-il nécessaire d'ouvrir toute la table, pour n'afficher qu'une centaine de ligne ... repense ton application en SQL ... cela optimisera la quantité de données passant sur le réseau ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Points : 170
    Points
    170
    Par défaut
    Si mais si je les utilise telle quelle, j'ai une appli utilisant une bd mysql mais mono utilisateur. Lors d'une connexion, j'ai une session X refletant ma base de données à un instant T. Si à T+1 un autre utilisateur ouvre une session Y, l'utilisateur X ne verra pas les modifications faites par l'utilisateur Y, à moins de quitter le logiciel et l'ouvrir, ou d'utiliser des Refresh().

    Utiliser des Refresh() peut fonctionner mais quand le faire, ou le faire ? A mon avis, il faut créer un serveur qui s'occupe des connexions entrantes et sortantes, et des appli clients qui se connecte au serveur, mais dans ce cas, je me demande s'il n'est pas préférable de partir sur du php qui me semble plus adapté (ou windev qui propose par défaut une gestion client/serveur fonctionnel). Ne connaissant pas le fonctionnement d'appli client/serveur, je ne sais pas quel paramètres prendre en compte et comment réaliser un serveur fonctionnel (il y'aura des 50aines de clients connectés). Pouvez vous me donner des conseils à ce sujet ?

    Merci d'avance.

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    PHP te donnera exactement le même résultat (l'autre je ne sais pas ce que c'est ), tu lances un SQL à un moment T qui te renvoie une ensemble de données, et il n'y a qu'en executant de nouveau la requête que tu peux mettre à jour le résultat.

    ce que tu désires c'est que le serveur informe tous ses clients de chaque mise à jour de tous les autres clients...ou dans une version optimisée, tous les clients ayant ouvert une table, des mises à jours de cette table par tous les autres clients. Mais je ne pense pas que ça existe, et je ne pense pas que ce soit utile.

    Edit: en même temps ça pourrait être amusant de le faire un P2P Les clients enregistrent leur @IP dans une table au lancement de l'application, et quand ils font une mise à jour ils informent leurs autres directement de client à client...why not. Le tout en multicast évidemment
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    598
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 598
    Points : 2 016
    Points
    2 016
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Dans Delphi 2007, il n'y a pas des composants ADO ou des composants DBExpress qui sont spécialement dédié MySQL ?
    ADO ajoute une couche un peu lourde et et je n'ai pas trouvé dbExpress très concluant.
    Les choses ont peut être changé avec les dernières versions, mais le composant dbExpress clonait la connexion à chaque requête, ce qui obligeait à des pirouettes pour, par exemple, récupérer le LAST_INSERT_ID.

    Pour mois le meilleur ensemble de composants pour mySQL reste ZeosLib.
    Un peu lourd à installer (livré en sources), ils permettent un accès natif qui n'oblige, à être livré avec l'EXE, aucune autre DLL que libmysql.dll

    L'autre intérêt de ces composant, par rapport à d'autres composant d'accès natif à mySQL, c'est que, comme dbExpress, on peut les utiliser pour se connecter à d'autres bases de données comme Firebird, SQLite ou Postgress.
    --
    vanquish

  7. #7
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Points : 170
    Points
    170
    Par défaut
    Merci de vos réposnes. Je ne coche pas l'onglet [résolu] en vue d'autres réponses...

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    pour en revenir à l'idée que ce n'est pas une bonne idée...prenons un exemple bête

    j'ai une DBGrid qui m'affiche le stock d'une PME

    comme c'est la première informatisation de la compta, on recrute un pool de gens pour saisir les factures 2007, disons 5 personnes

    chaque personne prend disons 5 seconde pour saisir un article dans une facture, et comme mon système et bien foutu, je ne peux pas facturer un article qui n'est pas en stock...on a donc alimenté le stock, et à chaque fois qu'un article est ajouté à la facture le stock diminue.

    ben ma DBGrid va s'actualiser toutes les secondes pour refléter la modification du sock, c'est chouette non ? Bon ça va pas être évident de cliquer entre deux mises à jour, mais ça a un petit côté ludique en même temps
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Points : 170
    Points
    170
    Par défaut
    Mais ça ne change pas le fait que tu as bien une appli serveur qui actualise les infos non (par refresh() justement) sur chaque appli client lancé ?

    Je ne suis pas en delphi mais sous c++ builder. Je n'ai pas eu beaucoup de réponse sur le forum de Builder, étant donné qu'on utilise le meme ide, les mêmes composants, le fonctionnement en pascal ou c++ ne change pas vraiment. Cela dit, les composants externe (delphp) ne fonctionne pas...

    Merci de vos réponses

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    J'ai une version DLL si ça t'intérresse... Je l'avais réalisé pour un membre du forum Visual Basic. Elle fonctionne aussi avec Delphi, elle fonctionnera donc avec C++, c'est sûr. De plus, elle est facile à utiliser.
    De retour parmis vous après 10 ans!!

  11. #11
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut connection my sql
    bonjour

    existe il un composant qui permet de se connecter a mysql sans passer par odbc

    une connection direct si je peux dire


    merci
    a+
    Une porte peut -etre ouverte ou....rouge!!!!:mouarf

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 165
    Points : 116
    Points
    116
    Par défaut
    j ai repondu la meme chose dans un autre sujet (sorry)...

    Il existe les composants mySQLDAC mais qui sont peut etre payants (faut verifier si ce n est que pour une utilisation commerciale ou non ?).

  13. #13
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut
    merci

    ce n est pas pour une utilisation commercial..

    Effectivement tu avais dejas repondu dans un autre post mais impossible de mettre la main dessus

    a+
    Une porte peut -etre ouverte ou....rouge!!!!:mouarf

  14. #14
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Points : 170
    Points
    170
    Par défaut
    il existe une suite de composants payants disponible à cette adresse :http://www.crlab.com/mydac/. Ils sont payants, mais tu peux les tester durant 30 jours mais ils sont puissants.

    Quelle méthode utilises-tu Paul TOTH pour réactualiser ton grid régulièrement ? Si tu utilises un timer ou qq chose comme ça, le comportement revient à celui d'un client/serveur non ? Moi je ne peux pas faire une ré actualisation d'un grid, étant donné que j'ai 70 tables. Ce qui revient à réaliser une appli serveur qui met à jour les données qui sont modifiés. Si mon raisonnement est correct, pour le type d'application que je dois réaliser, je n'ai pas le temps développer un serveur, le tester, mon choix serait de développer en php.

    Merci de vos réponses

  15. #15
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par whitespirit Voir le message
    il existe une suite de composants payants disponible à cette adresse :http://www.crlab.com/mydac/. Ils sont payants, mais tu peux les tester durant 30 jours mais ils sont puissants.

    Quelle méthode utilises-tu Paul TOTH pour réactualiser ton grid régulièrement ? Si tu utilises un timer ou qq chose comme ça, le comportement revient à celui d'un client/serveur non ? Moi je ne peux pas faire une ré actualisation d'un grid, étant donné que j'ai 70 tables. Ce qui revient à réaliser une appli serveur qui met à jour les données qui sont modifiés. Si mon raisonnement est correct, pour le type d'application que je dois réaliser, je n'ai pas le temps développer un serveur, le tester, mon choix serait de développer en php.

    Merci de vos réponses
    je n'actualise pas mes DBGrid ! à mes yeux ça ne sert à rien

    soit l'utilisateur est inactif devant son écran et dans ce cas, on se fiche de la pertinence des infos affichées, soit il travaille à l'écran et il y a peu de chance que les données restent dans l'état très longtemps.

    j'ai gardé une habitude de mes années de programmation sur AS/400 ou les données sont affichées en liste non modifiable (un peu à la façon du web d'ailleurs). Quand tu cliques sur une ligne, tu passes sur un écran d'édition (ou d'affichage) d'enregistrement, et au retour la liste est mise à jour.

    Si tu regardes bien, ce n'est pas très éloigné de ce que tu trouves sur ce site
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  16. #16
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 429
    Points : 24 794
    Points
    24 794
    Par défaut
    Je suis d'accord avec Paul Thot, le rafraichissement n'a d'intérêt qu'avec un certain type d'application comme le Monitoring d'un SI, sinon, une liste lue à un instant T avec un écran de modification, qui affiche à ce moment les dernières données, et l'on actualise la liste qu'au moment où l'a valide des modifications pour que l'utilisateur puisse les voir dans sa liste ...

    Effectivement, un utilisateur ne reste pas 5 minutes avec un écran fixe si il travaille, il clique, il saisie, il utilise son outil ou alors c'est qu'il lit un long texte à l'écran, et un scintillement\défilement* lié au refresh ne fera que le géner... mais lorsqu'il font une pause café/clope, ou vont manger, il laisse souvent le programme ouvert, inutile alors de faire un refresh ...

    * Eh oui, ton utilsateur est en bas de sa liste qu'il vient de défiler, et soudain le refresh, ne pas oublier à repositionner la grille au même endroit, sinon si il est comme moi, il râle "mais c'est quoi cette merde" hum pas évident car un locate amenera l'enregistrement comme premier ligne visible de la grille, hors ce n'est pas forcément l'état d'affichage via le défilement de la souris ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  17. #17
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Je suis d'accord avec Paul Thot, le rafraichissement n'a d'intérêt qu'avec un certain type d'application comme le Monitoring d'un SI
    et dans ce cas je n'utiliserais probablement pas une DBGrid
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  18. #18
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Points : 170
    Points
    170
    Par défaut
    Désolé de revenir sur ce point : par exemple si un utilisateur clique sur un bouton, vous faites un Table1.Refresh() et ceci pour toutes les tables concernés afin d'avoir une vue finale des mises à jours faites par les utilisateurs ?

  19. #19
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par whitespirit Voir le message
    Désolé de revenir sur ce point : par exemple si un utilisateur clique sur un bouton, vous faites un Table1.Refresh() et ceci pour toutes les tables concernés afin d'avoir une vue finale des mises à jours faites par les utilisateurs ?
    j'ai un TQuery principal (ça pourrait éventuellement être un TTable) qui m'affiche les données sur lesquelles je veux travailler.

    je ne fais un refresh de ce Query que dans les cas suivants :

    1) l'utilisateur appuie sur le bouton Actualiser (touche F5)
    2) l'utilisateur a créer un nouvel enregistrement via le bouton "Ajouter" qui affiche un écran de saisie en mode "création"
    3) l'utilisateur a modifier un enregistrement par double click, ce qui a affiché l'écran de saisie en mode "modification"
    4) l'utilisateur a supprimé un enregistrement touche Suppr sur l'enregistrement avec message de confirmation.

    les modifications des autres utilisateurs, je m'en tape !

    Attention, il reste bien évidemment nécessaire de faire des contrôles de cohérence. Ainsi la fenêtre de modification pourra afficher un message du type "L'enregistrement demandé n'existe plus" (et déclencher un Refresh par la même occasion).

    Je pense qu'il est moins perturbant d'avoir ce message d'erreur que de voir soudain des lignes disparaitre à l'écran sans qu'on ai rien fait

    Il ne reste qu'un cas à gérer : les modifications à plusieurs en même temps.
    deux personnes ouvrent la fenêtre de modification sur le même enregistrement en même temps.
    Soit on vérifie avant validation que l'enregistrement n'a pas changé depuis l'ouverture de la fenêtre et on demande à l'utilisateur ce qu'il faut faire.
    Soit on considère que c'est le dernier disant qui a raison
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  20. #20
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 429
    Points : 24 794
    Points
    24 794
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message

    Citation Envoyé par ShaiLeTroll Voir le message
    Je suis d'accord avec Paul Thot, le rafraichissement n'a d'intérêt qu'avec un certain type d'application comme le Monitoring d'un SI, ...
    et dans ce cas je n'utiliserais probablement pas une DBGrid
    Paul TOTH +1, moi non plus d'ailleurs, ...

    Effectivement, toujours pensé que l'utilisateur n'est pas un informaticien.
    l'utilisateur souhaite que son logiciel fasse ce qu'il demande et rien de plus, les utilisateurs n'aiment pas connaître les détails techniques, ça leur fait plus peur qu'autres choses ...

    Ce que tu peux par contre faire, c'est afficher dans la liste qu'un enregistrement est en cours d'édition par un autre utilisateur, c'est une gestion de lock ... et il ne pourra pas modifier l'enregistrement occupé, ça c'est utile ... (attention au dead lock)
    la BD peut le faire mais dans certains cas, il vaut mieux prévenir que guérir, ... surtout que si tu as un utilisateur qui modifie par exemple un dossier médical d'un patient en même temps qu'un autre, un des deux aura perdu son travail, un blocage applicatif permet d'éviter cela, mais c'est un autre sujet qui risque de faire débat ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Quel langage utiliser pour une application web ?
    Par Blooster dans le forum Jeux web
    Réponses: 2
    Dernier message: 09/01/2014, 15h13
  2. Quel technologie utiliser pour une application?
    Par nesswaw dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 29/01/2011, 22h34
  3. Quelle API utiliser pour une appli client/serveur ?
    Par ManusDei dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 2
    Dernier message: 14/10/2010, 09h00
  4. Réponses: 13
    Dernier message: 18/06/2009, 18h43
  5. Réponses: 2
    Dernier message: 30/09/2008, 03h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo