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

Discussion :

Structure d'un projet avec base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Structure d'un projet avec base de données
    Salut à tous,

    j'ai un soucis bloquant dans le dev de mon appli Qt, j'espère que vous pourrez m'aider peut etre...

    Je suis nouveau sur le forum et débute avec Qt.

    Je dois développer une application multi plateforme (Mac + Windows) travaillant avec une db.
    L'application devra contenir plusieurs formulaires.

    Le format de la db n'est pas encore connu, mais la strucutre est définie. J'utiliserai de façon temporaire une db access 2007 par facilité.

    J'ai développé auparavant une application en .net sur le mode multi-couches (n-tiers).
    J'avais défini une solution Visual Studio avec 3 projets : un projet GUI, un DAL (Data Access Layer) et un projet Business Object.

    Je souhaiterai donc savoir comment structurer mon projet, mon développement ou avoir un exemple "complèt" d'une appli un peu compliquée ?
    Quels sont vos conseils ?

    J'utilise Qt Creator, avec Qt 4.8

    Merci pour votre réponse

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut


    J'ai développé auparavant une application en .net sur le mode multi-couches (n-tiers).
    J'avais défini une solution Visual Studio avec 3 projets : un projet GUI, un DAL (Data Access Layer) et un projet Business Object.
    En Qt, il y a plusieurs façons pour développer avec ce type d'architecture.
    Je te propose 2 tutoriels que j'ai écris : ils sont basés sur Qt et utilisent une bibliothèque tierce (QxOrm) pour faciliter la mise en place d'une architecture n-tiers avec Qt :
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut QxOrm,

    Merci pour ton aide et ton expérience.

    J'ai téléchargé ta bibliothèque et aussi boost.
    J'utilise Qt Creator mais je dispose aussi de Visual Studio 2010 sur ma bécanne.

    Je compile boost avec le tools fourni (bootstrap et bjam).
    Dans QtCreator, je renseigne correctement le chemin des includes, des bibliothèques ainsi que de la bibliothèque de serialization.

    Lorsque je compile QxOrm, j'ai chaque fois l'erreur "LNK1104: cannot open file 'boost_serialization-vc100-mt-gd-1_49.lib'"

    As-tu une idée ?

    Merci beaucoup et bonne soirée

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut
    Dans QtCreator, je renseigne correctement le chemin des includes, des bibliothèques ainsi que de la bibliothèque de serialization.
    C'est surtout dans le fichier QxOrm.pri que c'est important de renseigner tout ça.
    Voici un lien vers une Q&R de la FAQ pour t'aider : http://qt.developpez.com/faq/?page=b...orm#qxorm-comp

    Tu dois juste modifier les 4 variables suivantes avec tes propres valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    QX_BOOST_INCLUDE_PATH = $$quote(D:/Dvlp/_Libs/Boost/1_42/include)
    QX_BOOST_LIB_PATH = $$quote(D:/Dvlp/_Libs/Boost/1_42/lib_shared)
    QX_BOOST_LIB_SERIALIZATION_DEBUG = "boost_serialization-vc90-mt-gd-1_42"
    QX_BOOST_LIB_SERIALIZATION_RELEASE = "boost_serialization-vc90-mt-1_42"
    Tu peux également mettre ton dossier contenant la lib de boost dans le PATH de Windows (tu l'as déjà certainement fait pour Qt, sinon le faire aussi), ça t'évitera de copier les DLL quand tu voudras exécuter ton programme...

    EDIT: juste pour info, j'ai mis mon package boost 1.49 à dispo sur le site de QxOrm. Voici un lien pour le télécharger : http://www.qxorm.com/lib/boost_1_49.zip.
    Tu n'en as pas forcément besoin puisque le nom de ta bibliothèque boost::serialization est correct, donc tu l'as bien compilé
    Il contient tout ce qu'il faut pour MSVC2008, MSVC2010 et MinGW GCC 4.5.1.
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse.

    J'avais déjà vu et adapté ces paramètres dans la faq et je dispose de boost 1.49
    Voici "mes" paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    QX_BOOST_INCLUDE_PATH = $$quote(D:/Data/Perso/Thomas/Sam/boost_1_49_0)
    QX_BOOST_LIB_PATH = $$quote(D:/Data/Perso/Thomas/Sam/boost_1_49_0/stage/lib)
    QX_BOOST_LIB_SERIALIZATION_DEBUG = "boost_serialization-vc100-mt-gd-1_49"
    QX_BOOST_LIB_SERIALIZATION_RELEASE = "boost_serialization-vc100-mt-1_49"
    J'ai lu sur plusieurs forums qu'il fallait compiler Boost avec des paramètres spécifiques (shard, Multi threading, ...) ??

    As-tu une idée ?

    Merci beaucoup

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut
    J'ai lu sur plusieurs forums qu'il fallait compiler Boost avec des paramètres spécifiques (shard, Multi threading, ...) ??
    As-tu une idée ?
    As-tu téléchargé le package boost 1.49 que j'ai mis à disposition (http://www.qxorm.com/lib/boost_1_49.zip) ?
    Il contient tout ce qu'il faut pour MSVC2010, et tu trouveras à la racine les options de compilation utilisées pour construire boost::serialization.

    Sinon, la procédure est assez simple pour installer ton environnement de dév :
    1- télécharger Qt 4.8 pour MSVC2010 et l'installer ;
    2- ajouter le dossier 'bin' de Qt dans le PATH de Windows (non obligatoire mais pratique quand même) ;
    3- télécharger mon package boost 1.49 et le dézipper ;
    4- ajouter le dossier 'lib_shared' du package boost dans le PATH de Windows (non obligatoire mais pratique quand même) ;
    5- télécharger la bibliothèque QxOrm et la dézipper ;
    6- ouvrir le fichier 'QxOrm.pri' et modifier les chemins vers boost (les variables que tu connais) ;
    7- ouvrir le fichier './test/qxBlog/qxBlog.sln' par exemple avec MSVC2010 puis essayer de le compiler et l'exécuter ;
    8- tester tous les exemples du dossier './test/' du package QxOrm.

    Il n'y a rien de plus à faire pour tout faire marcher (après tu peux rajouter les chemins include de Qt, boost et QxOrm dans ton éditeur MSVC2010, mais c'est juste pour faire marcher la complétion automatique, rien de plus).

    Déjà fais marcher cette config, on verra ensuite pour QtCreator si tu veux vraiment l'utiliser (personnellement, je ne le conseille pas si tu as MSVC2010, mais tu fais ce que tu veux ).
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut QxOrm,

    Déjà un grand merci pour ton aide et ton temps.

    J'ai fait ce que tu as écrit : point 1, 2, 3, ...
    Et çà fonctionne enfin !!!

    Juste 2 exemples qui se compilent pas avec Visual Studio 2010 mais bien avec Qt Creator... Pas grave...

    J'ai des soucis fréquents avec Visual : blue screen une fois sur 2 => je préfèrre donc Qt Creator !!!

    Bon maintenant, comment rentrer dans le vif du sujet ?
    Ton exemple qxBlog génère entre autre une petit db sqlite.
    => je vais m'en inspirer pour créer ma db sqlite.

    Concernant la structure même du projet, voici mon idée :
    - mettre dans une dll mes objets représentants mes entités de la db;
    - mettre dans une dll l'accès aux données : c'est déjà fait grâce à ton travail;
    - mettre dans un exe le gui

    Est-ce la bonne approche ?
    Je ne voudrais pas avoir un gros fichier exe qui contient tous !

    Merci et bonne soirée

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut
    Juste 2 exemples qui se compilent pas avec Visual Studio 2010 mais bien avec Qt Creator... Pas grave...
    Ok donc il doit rester un petit quelque chose dans ton environnement de dév qui ne doit pas être correctement configuré, mais bon si ça marche avec QtCreator et que ça te va comme ça... ok !
    Juste pour info, tous les exemples du dossier ./test/ sont testés et fonctionnent parfaitement avec MSVC2010.

    Concernant la structure même du projet, voici mon idée :
    - mettre dans une dll mes objets représentants mes entités de la db;
    - mettre dans une dll l'accès aux données : c'est déjà fait grâce à ton travail;
    - mettre dans un exe le gui.
    Est-ce la bonne approche ?
    Oui je pense que c'est une bonne approche.
    Peut-être que le tutoriel qxClientServer peut t'aider pour organiser tout ça (le code du tutoriel se trouve dans ./test/qxClientServer/, et normalement tu as déjà du le compiler et exécuter les 2 exe : qxClient.exe et qxServer.exe). Ça te permettra de créer un serveur d'applications, et ton IHM appellera principalement des services fournis par ton serveur d'applications => tu seras alors dans un contexte multi-couches (application n-tiers).
    Il y a également une base de données SQLite associée au tutoriel qxClientServer pour stocker une liste de user.
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/04/2013, 14h07
  2. [MCD] Projet : Conception base de données avec interfaces Web
    Par flolebreton dans le forum Schéma
    Réponses: 78
    Dernier message: 19/05/2009, 15h36
  3. CD ROm avec base de données
    Par marcoco dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 10/02/2005, 14h16
  4. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33

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