+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Membre expert

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

    Informations forums :
    Inscription : avril 2010
    Messages : 468
    Points : 3 754
    Points
    3 754

    Par défaut Sortie de QxOrm 1.4.3 et QxEntityEditor 1.2.1 : l'ORM pour Qt supporte CMake

    Bonjour à tous,

    La bibliothèque QxOrm 1.4.3 et l'application QxEntityEditor 1.2.1 viennent de sortir, avec notamment le support de CMake et une nouvelle documentation pour l'application QxEntityEditor.

    Modifications apportées à la bibliothèque QxOrm 1.4.3 :
    • Support de CMake : nouveau fichier CMakeLists.txt ajouté au package de la bibliothèque QxOrm ;
    • Amélioration des messages d'erreur affichés lorsque la base de données retourne une erreur (fonctions de l'espace de nom qx::dao) ;
    • Nouveau paramètre dans la classe de paramétrage qx::QxSqlDatabase pour tracer les valeurs injectées à la requête SQL (fonction setTraceSqlBoundValues) : par défaut, ces valeurs sont tracées uniquement lorsqu'une erreur se produit ;
    • Nouvelle syntaxe disponible pour indiquer les colonnes à ne pas récupérer lors d'une requête SQL : -{ col_1, col_2, etc... } ;
    • Nouvelle fonction qx::dao::call_query_without_prepare() pour exécuter des requêtes spécifiques aux bases de données ;
    • Amélioration du module QxModelView : tous les modèles QxOrm (basés sur l'interface qx::IxModel) peuvent être sérialisés au format JSON (en incluant tous les niveaux de relations) : cette fonctionnalité donne une nouvelle possibilité pour travailler avec les relations dans un environnement QML (grâce aux fonctions Javascript JSON.parse() et JSON.stringify()) sans utiliser le concept de modèles imbriqués (donc sans utiliser les classes modèles/vues générées par l'application QxEntityEditor) ;
    • Amélioration du projet d'exemple qxBlogModelView pour montrer différentes façons d'accéder au relations en QML (modèles imbriqués ou JSON) ;
    • Correction d'une fuite mémoire dans la classe qx::QxSqlRelation ;
    • Réduction de la taille des exécutables générés (environ 20%) et des temps de compilation (environ 20%) pour construire les classes persistantes enregistrées dans le contexte QxOrm ;
    • Support du concept compilation unitaire pour réduire les temps de compilation de la bibliothèque QxOrm et des classes persistantes générées par QxEntityEditor : pour plus de détails, voir l'option de compilation _QX_UNITY_BUILD dans les fichiers de configuration QxOrm.pri ou QxOrm.cmake ;
    • Amélioration du module QxConvert : possibilité d'enregistrer en base de données des propriétés de type QVariant qui contiennent des objets complexes de type QVariantMap, QVariantHash ou QVariantList (enregistrement au format JSON) ;
    • Correction apportée pour certaines bases de données quand une clé étrangère fait partie de la clé primaire ;
    • Correction apportée pour la sérialisation du type QSharedPointer avec le moteur boost::serialization quand un même pointeur nu est partagé par plusieurs pointeurs intelligents QSharedPointer pendant le processus de désérialisation.


    Modifications apportées à l'application QxEntityEditor 1.2.1 :
    • Support de CMake : chaque projet C++ généré par QxEntityEditor (classes persistantes, services, modèle/vue) intègre un fichier CMakeLists.txt pour pouvoir être construit avec CMake ;
    • Nouveau manuel utilisateur (documentation) pour l'application QxEntityEditor ;
    • Amélioration du moteur Javascript pour personnaliser les exports : ajout d'un paramètre nommé 'output_location' pour connaitre le répertoire de destination des fichiers générés + ajout de fonctions pour récupérer la liste de toutes les entités et énumérations d'un projet (voir le fichier ./samples/custom_script.js pour plus de détails) ;
    • Amélioration du processus d'import de bases de données (SQLite, MySQL/MariaDB, PostgreSQL, Oracle et MSSQLServer) : correction de l'import de clés étrangères sur plusieurs colonnes + clés étrangères faisant partie de la clé primaire ==> il est donc à présent possible d'importer des structures plus complexes de bases de données ;
    • Amélioration de l'export DDL SQL de base de données : correctif apporté pour les relations de type 1-1 + gestion des clés composites ;
    • Nouveau menu "Naming convention" pour appliquer rapidement une convention de nommage sur toutes les entités/propriétés/énumérations (sans casser le lien avec la base de données) : support des conventions de nommage snake_case, camelCase et PascalCase, ce nouveau menu peut être utile par example après un import de base de données pour harmoniser le code C++ qui sera généré ;
    • Chaque écran de l'application QxEntityEditor dispose à présent d'un accès rapide à la documentation en ligne (nouveau bouton "Documentation" + accès rapide avec la touche F1) ;
    • Nouveaux boutons undo/redo dans la barre d'outils de QxEntityEditor pour annuler et refaire les actions sur les entités, énumérations, commentaires, layout (possibilité de désactiver cette nouvelle fonctionnalité pour améliorer les performances avec des projets volumineux) ;
    • Support de l'option de compilation _QX_UNITY_BUILD pour réduire les temps de compilation des projets C++ générés (recommandé avec CMake qui ne supporte pas nativement les en-têtes pré-compilés) ;
    • Correction apportée pour l'import des relations lorsque l'entité cible n'a pas de clé primaire ;
    • Correction apportée sur la génération des services C++ et la sérialisation JSON (erreur "Unable to create nude pointer for input parameter") ;
    • Correction apportée sur les entités abstraites et la génération des classes C++ de services et modèles/vues ;
    • Possibilité de définir des valeurs hexadécimales pour les énumérations ;
    • Nouvel exemple de fichier Javascript dans le dossier ./samples/ nommé q_property.js pour montrer comment ajouter automatiquement la macro Q_PROPERTY sur toutes les propriétés générées par QxEntityEditor.




    Vous pouvez télécharger ces nouvelles versions sur le site internet de QxOrm et QxEntityEditor : http://www.qxorm.com/
    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.

  2. #2
    Membre expérimenté
    Inscrit en
    juin 2009
    Messages
    526
    Détails du profil
    Informations forums :
    Inscription : juin 2009
    Messages : 526
    Points : 1 429
    Points
    1 429

    Par défaut

    Cet outils à l'air bien sympa, en plus il vient avec 2 types de licences : GPLv3 & propriétaire.


    Pour des grosses boites le prix de la licence propriétaire est acceptable, mais pour des projets plus petit, c'est assez lourd...

  3. #3
    Membre expert

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

    Informations forums :
    Inscription : avril 2010
    Messages : 468
    Points : 3 754
    Points
    3 754

    Par défaut

    Une régression a été trouvée avec QxEntityEditor 1.2.1 (comparée à l'ancienne version 1.1.9).
    Un contournement facile et rapide existe, plus de détails sur le forum anglais de QxOrm.
    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: 0
    Dernier message: 04/04/2016, 23h11
  2. Réponses: 0
    Dernier message: 25/03/2015, 11h24
  3. Réponses: 0
    Dernier message: 21/01/2015, 22h49
  4. Réponses: 0
    Dernier message: 13/08/2014, 23h31
  5. Réponses: 0
    Dernier message: 19/06/2014, 16h16

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