Accueil | T�l�chargement | Exemple rapide | Tutoriel (4) | Manuel (2) | Forum | Nos clients

QxOrm >> Accueil

Version courante : | QxOrm 1.5.0 - documentation en ligne de la biblioth�que QxOrm - GitHub
| QxEntityEditor 1.2.8

# QxOrm (le moteur) + QxEntityEditor (l'�diteur graphique) = la meilleure solution pour g�rer sa couche de donn�es persistante en C++/Qt !

QxOrm est une biblioth�que C++ de gestion de donn�es. A partir d'une simple fonction de param�trage (que l'on peut comparer avec un fichier de mapping Hibernate en Java), vous aurez acc�s aux fonctionnalit�s suivantes :

- Persistance : support des bases de donn�es SQLite, MySQL, PostgreSQL, Oracle, MS SQL Server, MongoDB (gestion des relations 1-1, 1-n, n-1 et n-n) ;
- S�rialisation des donn�es (flux JSON, binaire et XML) ;
- R�flexion (ou introspection ) pour acc�der dynamiquement aux classes, attributs et invoquer des m�thodes ;
- Serveur web HTTP : serveur web compatible HTTP 1.1 autonome, performant, multi-plateforme et simple d'utilisation ;
- API JSON : interop�rabilit� avec d'autres technologies que C++/Qt (web services REST, applications QML, langages de script).

QxOrm library has been accepted into the Qt Ambassador Program

QxEntityEditor est un �diteur graphique pour la biblioth�que QxOrm : QxEntityEditor permet de g�rer graphiquement le mod�le d'entit�s.
QxEntityEditor est multi-plateforme (disponible pour Windows, Linux et Mac OS X) et g�n�re du code natif pour tous les environnements : bureau (Windows, Linux, Mac OS X), embarqu� et mobile (Android, iOS, Windows Phone, Raspberry Pi, etc.).
Un manuel utilisateur (documentation) d�di� � l'application QxEntityEditor est disponible.
QxEntityEditor est bas� sur un syst�me de plugins et propose diverses fonctionnalit�s pour importer/exporter le mod�le de donn�es :

- g�n�ration automatique du code C++ (classes persistantes enregistr�es dans le contexte QxOrm) ;
- g�n�ration automatique des scripts SQL DDL (sch�ma de base de donn�es) pour les bases SQLite, MySQL, PostgreSQL, Oracle et MS SQL Server ;
- supporte l'�volution du sch�ma de base de donn�es pour chaque version d'un projet (ALTER TABLE, ADD COLUMN, DROP INDEX, etc.) ;
- g�n�ration automatique des classes C++ de services pour transf�rer le mod�le de donn�es sur le r�seau, en utilisant le module QxService, pour cr�er rapidement des applications client/serveur ;
- importation automatique des structures de bases de donn�es existantes (par connexion ODBC ou pilote natif) pour les bases SQLite, MySQL, PostgreSQL, Oracle et MS SQL Server ;
- parce que chaque projet est diff�rent, QxEntityEditor propose plusieurs outils pour personnaliser les fichiers g�n�r�s (notamment un moteur javascript et un d�bogueur int�gr�).

La biblioth�que QxOrm a pour objectif de simplifier le code C++ tout en offrant un maximum de fonctionnalit�s.
Voici les principaux avantages de QxOrm :

- non intrusif : la fonction de param�trage se trouve � l'ext�rieur des classes. La signature des classes n'est donc pas modifi�e. QxOrm peut donc �tre utilis� dans des projets existants ;
- aucune n�cessit� d'appartenir � une hi�rarchie de classes : les classes n'ont pas besoin de d�river d'un 'super objet' ;
- pas de mapping XML ;
- 1 seul fichier <QxOrm.h> � inclure dans l'en-t�te pr�compil� (precompiled-header recommand� pour optimiser les temps de compilation) ;
- aucune n�cessit� d'utiliser le pr�-compilateur 'moc' fourni par Qt ;
- v�rification des types � la compilation (utilisation intensive de m�ta-programmation) ;
- compatible avec Visual C++ sous Windows, GCC sous Linux, Clang sous Mac OS X, et MinGW sous Windows (d'autres environnements et plateformes seront test�s prochainement : mobiles, etc...) ;
- compatible avec le d�veloppement de biblioth�ques partag�es (shared library, *.dll pour Windows, *.so pour Linux, etc...).

QxOrm est bas� sur la biblioth�que Qt (compatible Qt4, Qt5, Qt6) :

Qt : biblioth�que compl�te : IHM (QtGui), r�seau (QtNetwork), XML (QtXml), base de donn�es (QtSql), etc...
La documentation est excellente et le code C++ �crit � partir de cette biblioth�que est � la fois performant et simple de compr�hension.
Depuis le rachat par Nokia puis Digia et sa nouvelle licence LGPL, Qt est sans contexte la biblioth�que phare du moment.
QxOrm est compatible avec les principaux objets d�finis par Qt : QObject, QString, QDate, QTime, QDateTime, QList, QHash, QSharedPointer, QScopedPointer, etc...
Il est conseill� d'installer et d'utiliser la derni�re version de Qt disponible � l'adresse suivante : http://www.qt.io/

QxOrm est divis� en sous-modules, voici un descriptif rapide :

- QxDao : bas� sur le moteur QtSql de Qt, ce module permet de communiquer (s�lection, modification, suppression, transaction, etc...) avec de nombreuses bases de donn�es en mappant chaque champ d'une table avec les propri�t�s d'une classe C++. Les relations de type 1-1, 1-n, n-1 et n-n sont tr�s simples � mettre en place dans le code C++. Ce module supporte la programmation objet : h�ritage, polymorphisme, composition, association ainsi que les collections (support des collections de stl, boost et Qt : std::vector, std::list, std::unordered_map, QList, QHash, etc...).

- QxRegister, QxDataMember et QxFunction : m�me si ce n'est pas le but 1er de QxOrm, il est n�cessaire d'�muler le m�canisme de reflection (ou introspection) pr�sent nativement dans d'autres langages (Java, C#, etc...) pour utiliser toutes les fonctionnalit�s de QxOrm.

- QxModelView : toute classe enregistr�e dans le contexte QxOrm peut �tre utilis�e par le moteur model/view de Qt (Qt widgets et/ou vues QML). L'interface qx::IxModel expose automatiquement au moteur QML toutes les propri�t�s d�finies dans le contexte QxOrm. Ce module permet ainsi de faciliter l'int�raction entre QML et les bases de donn�es.

- QxService : bas� sur le moteur QtNetwork de Qt, ce module permet de cr�er de mani�re simple et performante un serveur d'applications en C++ (notion de services avec demande du client et r�ponse du serveur). QxService utilise la serialization et l'introspection des donn�es et fonctions pour pouvoir faire transiter sur le r�seau n'importe quelle classe ou structure. Pour plus d'informations sur ce module, un tutoriel est disponible en cliquant ici.

- QxCollection<Key, Value> : cette collection thread-safe permet de cumuler les avantages d'un std::vector<T> (conserve l'ordre d'insertion + acc�s rapide par index) et d'un std::unordered_map<Key, Value> ou encore QHash<Key, Value> (acc�s rapide par cl� : hash-map). Ce type de collection est particuli�rement adapt� pour contenir les �l�ments issus d'une base de donn�es.

- QxSerialize : Toute classe d�finie par QxOrm peut �tre s�rializ�e dans un flux binaire, XML et JSON. Ce module permet �galement de cloner toutes les instances d'objet. Les principaux objets de la biblioth�que Qt (QObject, QString, QDate, QTime, QDateTime, QList, QHash, etc...) sont compatibles avec le module QxSerialize. Ce module assure une compatibilit� ascendante avec prise en compte d'un n� de version par classe.

- QxFactory : toute instance d'objet d�finie par QxOrm peut �tre cr��e en fonction du nom de la classe.

- QxTraits : ce module contient une liste de classes de traits non d�finies dans la biblioth�que standard et qui sont utiles pour l'utilisation de QxOrm. Ces classes de traits se veulent g�n�riques et peuvent donc �tre utilis�es dans d'autres contextes que celui de la biblioth�que QxOrm.

- QxCache : le 'cache' de QxOrm peut contenir tous types d'objets. Il peut permettre par exemple de m�moriser des donn�es issues d'une base de donn�es pour �viter des requ�tes trop fr�quentes. Ce cache est g�n�rique et peut �tre utilis� dans d'autres contextes que celui de QxOrm.

- QxValidator : ce module permet d'ajouter des contraintes sur les propri�t�s enregistr�es dans le contexte QxOrm. Ces contraintes sont d�finies dans la m�thode de mapping : void qx::register_class. Si pour une instance de classe donn�e, au moins une contrainte n'est pas respect�e, alors l'instance est consid�r�e comme invalide : l'objet ne peut alors pas �tre sauvegard� en base de donn�es (INSERT ou UPDATE). Pour plus d'informations sur le module QxValidator, rendez-vous sur le manuel utilisateur de la biblioth�que QxOrm.

- QxMemLeak : permet une d�tection rapide des fuites m�moire en mode Debug une fois l'ex�cution du programme termin�e (avec indication du fichier et de la ligne => style MFC de Microsoft). Ce module a �t� d�velopp� par Wu Yongwei et a subi quelques modifications pour �tre int�gr� dans QxOrm. Si un autre outil est d�j� utilis� dans vos projets (Valgrind par exemple), cette fonctionnalit� ne doit pas �tre activ�e. Par d�faut, le module QxMemLeak est d�sactiv�.

Vous pouvez t�l�charger la derni�re version de QxOrm et QxEntityEditor en cliquant ici.
Un manuel utilisateur pour apprendre � travailler avec la biblioth�que QxOrm est disponible en cliquant ici.
Un exemple rapide d'utilisation de QxOrm montrant les fonctionnalit�s de base de la biblioth�que est disponible en cliquant ici.
Un forum (en anglais) d�di� � QxOrm et QxEntityEditor est disponible en cliquant ici.
Vous pouvez �galement retrouver la communaut� fran�aise de QxOrm et QxEntityEditor sur le forum de Developpez.com.
Une documentation en ligne du code source de la biblioth�que QxOrm est disponible en cliquant ici.

| � 2011-202XDL Teamty - ic-east.com |