|
Posted
over 14 years
ago
by
Ulrich Van Den Hekke
Bonjour à tous,
Je suis heureux de vous annoncer la nouvelle version de XINX. Cette version apporte, en plus de la ré-écriture complète de la gestion du contenu et de la complétion, son petit lot de nouveautés et de corrections.
La version 0.10.1
... [More]
est beaucoup plus stable que sa grande soeur 0.9. Un soin particulier a été apporté à la recherche des sources d'anomalie possible, ainsi que des fuites mémoires. Ces opérations ont été faites grâce à des outils tels que valgrind, mais aussi grâce aux béta-testeurs (Merci à eux).
De plus l'utilisation des pointeurs intelligents de Qt ont permis de passer plus de temps, sur la gestion des structures et moins de temps sur la gestion de la mémoire, sur des parties du code assez critiques (comme ContentView et CodeCompletion). Ils ont également permis un partage plus facile des structures entre les différents threads avec moins de contrôle de synchronisation.
Liens
Site Internet de XINX
Téléchargement de XINX
Faire une demande d'évolution ou reporter un bug
Gestion Projet et Gestion des sessions
Multi-projet
XINX est maintenant capable d'ouvrir plusieurs projets en même temps. Cela permet donc plusieurs choses :
Rechercher un fichier pouvant se trouver dans plusieurs projets différents (par exemple un projet trunk et un projet branche).
Comparer des fichiers venant de plusieurs projets différents.
Ne pas basculer d'un projet à l'autre en continu, lorsque l'on travaille sur plusieurs projets en même temps.
A cause de cette gestion de plusieurs projets en même temps, toute la partie de gestion de projet de XINX a été ré-écrite (entre autre la partie concernant la session, que l'on verra ensuite).
De plus à l'ouverture du projet, l'application recherche l'ensemble des fichiers présents sur le disque afin de permettre une recherche beaucoup plus rapide. Cela a néanmoins quelques répercussions : il n'est pas possible de supprimer un dossier du projet sans fermer XINX.
Inclusion / Exclusion de chemin
Afin d'avoir une vue propre, XINX affiche déjà uniquement les fichiers qu'il est capable de gérer. Il est également possible de lui définir une liste de chemin qu'il doit ignorer.
Exemple :
WEB-INF/lib
dico
configuration
Il est possible d'utiliser des expressions régulières pour définir ces chemins.
A l'inverse il est possible d'inclure un dossier externe au projet directement dans la vue de celui-ci. L'équivalent d'un lien symbolique mais propre au projet sous XINX. Il est alors possible d'inclure dans le dossier projet, un répertoire temporaire contenant les données utilisées par les feuilles de styles, ou inclure un dossier contenant des fichiers de logs, ...
Sessions
Suite à la gestion du multi-projet, il a fallu ré-écrire le système de gestion des sessions. Il est maintenant plus proche des systèmes de session des autres applications.
Alors que sur la version 0.9 et précédente, la session était directement associée à un projet (et donc ouverte en même temps), maintenant la session est séparée de la notion de projet.
Une session peut alors désormais contenir une liste de projet ouvert, une liste de fichier ouvert (associé ou non à un projet), des signets. Plusieurs sessions différentes peuvent pointer vers un même projet mais proposer une vue (un ensemble de fichier ouvert) différente. Une session par défaut est créée pour l'utilisation courante de l'application.
Modification du système de complétion
Le système de vue contenue et de code complétion a complètement été ré-écrit. La lecture des différents imports des différents fichiers est faite en mémoire (et non plus dans une base de donnée SQL) et en parallèle (s'il y a plusieurs processeurs sur la machine). La lecture des fichiers est ainsi plus rapide. Le système a complètement été ré-écrit pour que la complétion du code soit rapide et stable en même temps.
La complétion du code affiche désormais les différentes lignes dans des catégories suivant leur emplacement (par exemple le fichier où se trouve chaque template), les snipets dans une catégorie différente...
XINX est maintenant capable également de compléter
les paramètres des templates du type call-template
les imports (proposition des différents fichiers, et des alias si le plugin Generix est activé)
et plein d'autres choses
Et plein d'autres nouveautés
Utilisation de la librairie SVN directement
Un nouveau plugin pour SubVersion a été écrit. Ce plugin utilise directement les librairies de SubVersion au lieu d'utiliser l'exécutable svn. Ce plugin est plus performant que le wrapper et ne nécessite pas l'installation d'un client SubVersion (tel que CollabNet SubVersion sous Windows ou le client svn sous linux.
L'ancien plugin est toujours disponible et utilisable.
Créer des tickets depuis XINX
Une boite de dialogue permet maintenant de créer automatiquement un compte et un ticket sur le site Internet de XINX. Vous pouvez ainsi créer facilement des demandes d'évolution, des demandes de correction, ...
De plus lors de la sortie d'une nouvelle version, XINX vous informera automatiquement qu'une nouvelle version est disponible.
Dock des logs et des erreurs
Le dock d'affichage des erreurs a été amélioré pour ne plus perturber l'utilisateur en s'ouvrant de façon intempestive. Il est maintenant possible de définir que le dock doit rester fermé, un compteur affiche alors le nombre d'erreur .
Modification de la recherche
Suite à la gestion du multi-projet, XINX peut maintenant rechercher dans plusieurs projets en même temps. Il est aussi possible d'arrêter la recherche en plein milieu.
Validation d'un fichier XML
XINX peut également valider un fichier XML à partir d'un schéma. Il ne peut malheureusement pas encore valider de fichier XSL (les parseurs XSL trouvés n'arrivent pas à lire les schémas des fichiers XSLT).
Correction de bugs
Beaucoup de corrections de bug ont été faites ce qui rend cette version très stable.
Et pour la suite ?
Dans la même série, j'ai l'intention de sortir une version avec de nouveaux modèles, de la documentation, ....
Pour la version suivante, le moteur JavaScript sera amélioré pour ne plus donner d'erreur, voir proposer de la complétion plus performante. [Less]
|
|
Posted
over 15 years
ago
by
Ulrich Van Den Hekke
Ce billet fait suite à la sortie de la version 0.9.0 de XINX et va vous décrire ce logiciel. XINX est éditeur de feuille de style XSL (il fait également éditeur JavaScript et CSS mais actuellement moins bien que ce que peuvent faire d'autres).
Il
... [More]
permet l'édition des feuilles de styles en proposant de compléter sur le nom des balises (normal), sur les attributs (normal), sur les valeurs d'attributs : les variables, les paramètres, ... Il propose également automatiquement les différents paramètres lors de l'utilisation d'un call:template.
L'éditeur est fortement tourné vers l'édition de feuille de style XSL pour génération d'HTML mais peut être utilisé pour générer du XML.
Historique
Depuis un certain temps déjà (5 ans), je travaille pour la société Generix Group éditant et intégrant un ERP[1] du nom de GCE.
Sur la partie Web de cet ERP, il est possible d'intervenir à plusieurs endroits pour modifier son fonctionnement :
Le paramétrage (BDD) : Modification d'un paramètre pour agir sur le comportement du logiciel
La couche métier (JAVA) : Lit le paramétrage (BDD) et réalise les traitements. Il est possible de développer de nouveaux objets, mais aussi de dériver ceux existants.
La couche de présentation (XSL) : A l'aide d'un flux de présentation généré par la couche métier et d'un fichier de configuration, présente les données à l'écran.
La dernière couche est donc l'interprétation d'un flux de donnée, générée à partir de la couche métier (JAVA), à l'aide de feuille de style XSL.
XINX sert à modifier la couche de présentation (XSL). Sur cette dernière couche, on crée et modifie des feuilles de styles pour modifier la présentation des données à l'écran (Déplacer des champs, supprimer des champs, ajouter des champs, règle de gestion simple ...).
En mode projet, chez les clients, les modifications ne sont pas faites directement sur les feuilles de styles standard livrées, mais sur des feuilles de styles dérivées, afin de faciliter les migrations, et la correction des anomalies.
Lors de la modification de feuille de style standard, il faut alors renommer et placer ce fichier dans un dossier séparé. C'est de cette tâche récurrente qu'est venue la création de l'éditeur de feuille de style XINX.
Le but était alors, lors de la sauvegarde d'un fichier standard, de proposer automatiquement la sauvegarde dans le bon dossier.
L'autre point à l'origine de la création de XINX est la non-existence d'un logiciel de développement de feuille de style XSL gratuit et/ou libre (Il y a bien XML Spy qui correspondait à peu prés mais qui était payant, et dont nous n'avions pas la licence).
Sont alors venu s'ajouter d'autres fonctionnalités : la complétion sur les balises, les attributs, les variables, ....
Qu'est que XINX aujourd'hui ?
XINX prévu initialement comme aide au développement des consultants qui font des développements de feuille de style, est maintenant un éditeur de feuille de style XSL avec gestion des plugins. L'un des plugins contient des petites fonctionnalités utiles au quotidien par les consultants travaillants sur l'ERP, fonctionnalité auparavant implémenté directement dans le logiciel.
Dit autrement, cette nouvelle version marque donc une étape : La partie de XINX propre à Generix Group à été séparée dans un plugin. XINX en lui même n'est alors plus qu'un éditeur de feuille de style, extensible via des plugins, mais il retrouve les mêmes fonctionnalités grâce à ce plugin.
Licence
XINX est un logiciel libre dont la licence choisie est la GPLv3. Ce qui signifie que vous pouvez :
télécharger le logiciel
utiliser le logiciel pour faire ce que vous voulez
télécharger les sources du logiciels
modifier les sources du logiciels
utiliser le logiciel modifié par vos soins
distribuer le logiciel ou la version modifiée (attention à différencier les parties originales du logiciel avec le bon copyright, et les parties modifiées).
En tant que logiciel libre XINX possède une plateforme de contribution (ticket, wiki, source, ...) qui se trouve à l'adresse http://xinx.shadoware.org. Vous pouvez donc y aller pour contribuer.
Vous pouvez contribuer de plusieurs façons :
Développement d'un Plugin
Développement d'un script ECMAScript
Développement d'un petit patch
Développement d'un gros patch
Technologie
XINX est un logiciel développé en Qt. Il compile et tourne sous Gnu/Debian (normalement n'importe quelle distribution devrait faire l'affaire, mais Gnu/Debian est la seule distribution testée), et sous MS/Windows. Il devrait normalement également tourner sous MacOS (si les dépendances comme les librairies libxml2 et libxslt sont compilables sous cet OS).
A chaque version un paquet Gnu/Debian est mis à disposition sur le dépôt (apt.shadoware.org) et un binaire MS/Windows est proposé en téléchargement. XINX est toujours compilable à partir des sources pour les autres distributions ou juste parce que vous préférez ainsi.
Intégration continue & Tests
A chaque validation sur le référenciel SubVersion, l'application est compilée et testée (vous pouvez voir le résultat des tests à l'adresse suivante. A la sortie de la version 0.9.0, les tests couvrent 27% de la librairie principale. Je dois donc encore écrire d'autres jeux de tests.
Code réutilisable pour d'autres projets
XINX peut également être intéressant pour d'autres développeurs Qt.
En effet, vous pouvez trouver dans la dernière version, ainsi que dans les versions précédentes plusieurs classes utilitaires.
Par exemple (liste presque non exhaustive) :
TreeProxyItemModel : convertit un modèle format table en modèle format arbre. Utile lorsque l'arbre est représenté dans une base de donnée relationnelle par exemple.
RecursiveSortFilterProxyModel : Utilisé pour rechercher facilement des données dans un arbre et permet d'afficher les enfants.
XinxLineEdit : Inspiré de KDE, affiche un bouton pour effacer le texte dans la ligne d'édition
XinxListWidgetImpl : Permet de modifier une liste de valeur (ajout, suppression, valeur par défaut, classement, ...)
PluginSelector : Inspiré de KDE, permet d'afficher une liste des plugins, avec un bouton A propos de ... et un bouton Configurer ....
QMenuView : Inspiré d'un exemple de Qt et permet d'afficher un menu à partir d'un modèle.
Fonctionnalités
Recherche parmi les fichiers d'un dossier
Un dock sur le coté permet en mode projet de rechercher et d'ouvrir un fichier parmi une multitude de fichier d'un projet (utile pour les fichiers avec beaucoup de feuille de style).
La recherche peut se faire avec des Jockers (*)
La complétion XSL
XINX permet de compléter sur les feuilles de styles à plusieurs niveaux[2] :
la balise (fonctionnalité standard vous allez me dire) : XINX permet de compléter sur les balises xsl:, les balises html ...
les attributs (encore standard). Pour chaque balise, XINX est capable de compléter sur les attributs de la balise saisie.
les valeurs d'attribut (là c'est intéressant). Permet de compléter sur les variables déclarées dans le fichier XSL, ainsi que dans les fichiers importés (pour retrouver les fichiers importés, XINX, utilise le mode projet et les paramètres qui y sont définits). De plus sur les attributs non XSL, XINX ajoute automatiquement les accolades { } et les $ pour les variables et les paramètres.
De plus lors de l'utilisation de la balise call:template, XINX va chercher automatiquement les paramètres (xsl:param) du template donné, et les ajoute automatiquement en xsl:with-param.
Pour les balises xsl:apply-templates XINX propose la liste des modes des templates existants.
Le parsing de la feuille de style
Fonctionnalité du moment, si vous indiquez un flux de données et une feuille de style, XINX est capable d'afficher le résultat (la source HTML et le résultat dans un navigateur Webkit)
Si l'emplacement où doivent s'exécuter les pages est définit alors, les feuilles de styles, les images, ... pourront être affichées.
A venir
Bien que l'avenir du logiciel dépend de ces utilisateurs, voici les nouvelles fonctionnalités que devrait apporter la prochaine version :
Déverminage de feuille de style XSL
Amélioration du parseur JavaScript et CSS
Quelques réécritures (Vue projet, ...)
Le plugin GCE
Comme indiqué ci-dessous, il existe un plugin GCE utilisé par les consultants travaillants sur l'ERP GCE.
Ce plugin permet de dupliquer une feuille de style d'un dossier à un autre (sans modification des fichiers standards), de lire les dictionnaires de libellé de l'ERP GCE, la lecture du fichier de configuration du lecteur GCE.
Téléchargement
Vous pouvez télécharger XINX à l'adresse http://xinx.shadoware.org/downloads (source et version Windows).
Si vous voulez installer XINX sur une Gnu/Debian (32 ou 64 bits) vous pouvez inclure le dépôt suivant :
# Shadoware.Org
deb http://apt.shadoware.org/ squeeze main
Et installé de la façon suivante :
aptitude install xinx
Vous pouvez vous tenir au courant des sorties de version grâce à la mailing list
Notes
[1] Un ERP et un logiciel de gestion d'entreprise. Un ERP permet de gérer, par exemple, les produits, les clients, les fournisseurs, les stocks, les ventes, les achats, la logistique, la comptabilité, .... Je ne vais pas vous faire une présentation des ERPs, car même si cela pourrait faire un billet intéressant, ce n'est pas le but ici.
[2] Merci à QCodeEdit qui me fournit quelques fonctionnalités utiles. [Less]
|
|
Posted
over 16 years
ago
by
Ulrich Van Den Hekke
Bonjour à tous,
Erratum : La dernière version est numéroté 0.8.1.1. Un petit bug (pouvant être gênant lors de l'ouverture de feuille de style sans utilisation du mode projet) a été corrigé dans la foulé. La page est corrigé en conséquence
Je
... [More]
souhaite vous annoncer la sortie de la version 0.8.1.0 0.8.1.1 de XINX. Pas d'énorme changement pour vous depuis la version 0.8.0.0 (sinon nous serions passés à la version 0.9.0.0) mais de gros changements internes.
Vue Contenue
En fait, la partie gérant la vue contenue a été complètement ré-écrite. Elle est maintenant parallélisée et partagée entre les différents éditeurs. Au final l'empreinte mémoire, ainsi que la fluidité a chargé les différents fichiers de XINX devrait être amélioré. (Enfin j'espère, car je n'ai pas fait de benchmark). De ce coté le code est lui aussi beaucoup plus propre et plus souple.
XINX étant toujours dans les versions 0.XX, je n'ose vous rappeler que ce n'est pas ce qu'on appelle une version finie, mais une série de bêta . Étant donné le peu de test que j'ai pu faire sur cette version en particulier j'aurais dû la nommer en -rc ou en -beta mais je me suis dit que cela serait redondant, et que si ça ne convenait pas vous ajouteriez un ticket sur ce site pour me prévenir. Enfin j'espère que cette version ne sera pas trop miner.
La ré-écriture de la partie Vue Contenue permet donc de préciser dans les propriétés du projet quelques fichiers qui seront pré-chargés au chargement du projet. Ces fichiers étant pré-chargés, l'ouverture des feuilles de styles devrait être accéléré. Si de votre coté, XINX présente quelques faiblesses, merci de me prévenir. La complétion a également été améliorée (avec la suppression des bug, comme l'affichage de balise with-param en double). Lors de vos déplacements dans l'éditeur, la vue contenue vous indique votre emplacement dans la vue contenue.
Dictionnaire
L'autre nouveau point et l'ajout d'un nouveau Dock par l'intermédiaire des plugins. Ce Dock vous propose l'affichage du dictionnaire dans les versions GCE130 et GCE140. Pour l'instant le seul intérêt de ce dock est l'affichage du dictionnaire à la recherche d'un label. C'est un point de départ pouvant vous servir à faire des tickets sur des améliorations à apporter. (Celle que j'ai en tête est la gestion de la complétion sur les libellés du dictionnaire). Merci de passer par le système de ticket pour proposer d'autres améliorations sur le DOCK Dictionnaire.
Pré-visualisation
Enfin, dernière évolution intéressante, est l'affichage de la pré-visualisation de la page. Cette fonctionnalité est à noter comme extrêmement expérimental,et n'évoluera peut-être pas (selon les demandes qui sont faites dessus, ainsi que suivant les problèmes techniques rencontrés), et ne fonctionnera peut-être pas avec les prochaines versions de GCE. (En version 140, les libellés ne sont pas remplacés).
Pour faire fonctionner la prévisualisation, vous devez renseigner l'emplacement de la ServletControl, configurer, dans les propriétés du plugin WEB, le parseur à utiliser[1] et de configurer le lecteur (je vous conseille Webkit).
De là, lors des développements de feuille de style en mode projet, si vous sélectionnez un flux de présentation XML (dans le dock associé) et appuyé sur F9, vous devriez avoir la prévisualisation de votre feuille de style.
Le même principe peut-être appliqué pour une page HTML. Là, pas besoin de parseur, ni de flux de présentation. Vous pouvez avoir directement la prévisualisation de votre page HTML.
Gestion des plugins
Enfin, la gestion des plugins n'a cessé de s'améliorer. Il est de plus en plus facile d'étendre 'XINX'. Ceci par l'intermédiare de Script ou de Plugins. Si une fonctionnalité vous manque, vous pouvez donc non seulement la proposer, mais aussi l'écrire en script, ou si le script est trop limité, vous pouvez aussi écrire le plugin. Les plugins permettent donc d'ajouter des actions à XINX, des Docks, des éditeurs, des gestionnaires de version, des pages de configuration du projet, ...
D-BUS
Alors que D-BUS avait été ajouté dans les précédentes versions afin de permettre une plus grande interopérabilité, ce dernier a été retiré pour cette version. Ainsi XINX est maintenant indépendant de D-BUS. Il a été décidé de retirer D-BUS pour plusieurs raisons : Simplification de la compilation, source de problème sous MS/Windows. Il devient maintenant beaucoup plus simple de compiler XINX sous Windows. L'interface avec D-BUS reviendra dans une future version mais sera alors optionnel.
Je vous souhaite une bonne installation.
Téléchargement
binaire i386 windows
source
Sous Debian, ajout du dépôt :
deb http://apt.shadoware.org/ sid main
Notes
[1] je vous conseille celui d'Oracle, Il est plus long à se lancer mais permet de gérer les noms de domaine Generix. [Less]
|
|
Posted
over 16 years
ago
by
Ulrich Van Den Hekke
J'ai le plaisir de vous annoncer la sortie de la nouvelle version de XINX.
XINX est un éditeur de projet web basé sur les technologies XSL, HTML, CSS, JavaScript. Il possède un mode projet permettant de dériver les projets à la manière des
... [More]
consultants GCE de l'entreprise Generix Group.
Cette dernière version a mis beaucoup de temps pour sortir et est moins complète que celle que je souhaitais faire à l'origine. Cela viens de plusieurs raison :
de gros changement interne
moins de temps le soir et le week-end.
La prochaine version 0.8.1 contiendra les développements que je n'ai pu mettre dans cette version. N'hésitez pas à faire un retour sur les problèmes que vous rencontrez pour que ces derniers soit également corriger pour la prochaine version.
Nous allons détailler ci-dessous les différentes amélioration incluse dans cette version. QCodeEdit - Le nouvel éditeur
L'éditeur de texte de cette version a complètement été remplacé. On est passé de QTextEdit (éditeur de texte de Qt Software) à QCodeEdit (Développé par Luc Bruant aka fullmetalcoder). Heureusement que les APIs de ces deux éditeurs sont très similaire ce qui a permis d'effectuer les changements assez rapidement (quelques mois au lieu de quelques années ).
Je tiens également à remercier fullmetalcoder de sa réactivité sur le développement de QCodeEdit.
Les nouveautés qu'apportent ce nouvel éditeur par rapport à QTextEdit sont :
le folding
les couleurs de fond sur les marque pages et les erreurs (pour une plus grande clarté).
un chargement plus rapide des fichiers (exemple : configuration.xml)
pourvoir faire des sélections verticales (à l'aide de Ctrl+Shift) comme le font certain éditeurs
afficher les correspondances de parenthèses
Test du XPATH
Cette boite de dialogue permet d'exécuter un X-PATH (ou une requête XQuery) sur un fichier de présentation. Cela permet de tester rapidement les X-PATH compliqué avant de lancer la page sous le navigateur.
Il est possible de saisir des X-PATH relativement à un X-PATH sélectionné dans le flux de présentation ou de manière absolu.
Script automatique
XINX permet également d'appeler un script lors de la sauvegarde d'un fichier. Pour cela un nouvel objet permettant de modifier le contenue de l'éditeur plus facilement a été créé.
Comme exemple à la sauvegarde de script ont été mis à jours :
La mise à jours des key('url-param','') par des X-PATH
La mise à jours du nom du fichier dans les feuilles de styles.
obj.beforeSave = function() {
this.run();
}
obj.run = function()
{
var search = new DocumentSearch( textEdit );
search.options.regExp = true;
search.searchText = "key\\('url-param', '(.*)'\\)";
search.replaceText = "/layout_data/application_data/temporaire/param[@name='\\1']";
while( search.next() ) {}
};
La nouveauté se trouve dans l'ajout de quatre nouvelle méthodes. La méthode utilisé ici est beforeSave et permet de faire des modifications au texte avant sauvegarde. Tout comme afterSave permet d'effectuer des modifications au texte après sauvegarde. Nous avons également deux méthodes beforeLoad et afterLoad pour les opérations à faire lors de la lecture.
Autres nouveautés
Bien sur cet version apporte aussi d'autres nouveautés comme :
la fermeture automatique de balise
des nouvelles options, ...
Installation
Sous Ms/Windows
Pour installer la dernière version de XINX vous pouvez télécharger le programme d'installation et le lancer. Il remplacera automatiquement l'ancienne version.
Si vous avez des fichiers de données modifiés (template, script, ...) pensez à les sauvegarder.
Sous Gnu/Linux
Sous Debian, vous pouvez ajouter le dépôt dans le fichier /etc/apt/sources.list. Ainsi vous serez automatiquement prévenu des mises à jours éventuelle.
deb http://apt.shadoware.org/ sid main
puis dans une console :
sudo apt-cache search xinx
sudo aptitude install xinx
Pour les autres distributions ou pour les machines MacOS vous pouvez compiler XINX à partir des sources. [Less]
|
|
Posted
over 16 years
ago
by
Ulrich Van Den Hekke
Bonjours à tous,
Ce billet, parle de XINX, un logiciel libre que j'ai développé et que je continue à développer sur mon temps libre. Le but de se billet est de présenter XINX et d'être le début d'une longue série de billet parlant de son
... [More]
développement.
En effet, même si le programme est propre à une utilisation particulière pour un cercle de personne restreint, les méthodes, classes, et idées utilisées dans ce programme peuvent intéresser d'autres personnes.
Présentation
XINX est un éditeur de feuille de style sur lequel je travail depuis début 2006. En faite j'avais commencé un autre éditeur à l'aide de Borland/Delphi 7 mais il a été rapidement arrêté pour prendre une nouvelle direction dans un nouveau langage avec un nouveau départ[1].
Cet éditeur de feuille de style à la particularité de pouvoir être utilisé dans le cadre de mon travail : sur l'application eGx (de la société Générix[2]). XINX permet non seulement l'édition de feuille de style (XSL), en proposant une complétion intuitive, mais propose également un mode projet, dans lequel il est possible de dérivé une feuille de style plutôt que de la remplacer (de façon spécifique à notre méthode de travail en projet chez le client).
XINX est un acronyme récursive[3] qui signifie XINX Is Not XDME. Ce nom a été choisis car XINX est le complément idéal à XDME (l'éditeur de fichier de configuration d'eGx).
Au niveau du choix du langage, a contrario des autres applications Generix écritent en JAVA, XINX a été programmé en C++. Le framework Qt de la société TrolltechNokia a été choisis pour simplifier la programmation. Pourquoi ce choix de langage :
XINX est une application écrite sur mon temps libre, j'ai donc choisis un langage que je souhaité apprendre. En faite la raison de l'existence de XINX, et la volonté d'apprendre à utiliser ce framework.
Le framework Qt est utilisé par l'environnement de bureau KDE. Cet environnement de bureau est celui que j'utilise tous les jours, pendant mon temps libre (chez moi), sous Gnu/Linux.
La version 4 de ce framework est utilisable sous MS/Windows, sans payer de licence, dans le cadre de l'écriture d'un logiciel libre (au bureau tout nos poste sont sous MS/Windows)[4].
Architecture
XINX est décomposé en plusieurs parties :
la librairie de composant (contenant un gestionnaire de plugin en Qt, un combobox pour choisir une couleur, une liste de valeur avec les boutons pour ajouter ou supprimer des éléments, une barre d'édition pour faciliter l'édition de dossier)
la librairie principale (externalisant ce qui peut être nécessaire aux plugins).
une série de plugin permettant, dans XINX de
gérer CVS
gérer SubVersion
gérer les extentions XSL, JS, XML, HTML
gérer les WebServices
l'application elle-même
une application de migration de projet (pour migrer les fichiers projets XINX quand ces derniers changent)
une librairie gérant l'éditeur de code (l'éditeur utilisé pour la prochaine version est QCodeEdit[5])
les librairies du framework Qt
Vous pouvez une documentation sur l'écriture de plugins sur le site de XINX ainsi qu'une documentation au format Doxygen des librairies.
Notes
[1] Borland/Delphi 7 étant limité à la plateforme de Microsoft, et l'application ayant pris dés le début une mauvaise direction (orienté fichier de configuration plutôt que feuille de style)
[2] Generix est un éditeur de logiciel de gestion d'entreprise, dit ERP
[3] Un acronyme qui contient l'acronyme même, comme Gnu pour Gnu Is not Unix
[4] XINX est un logiciel libre non parce que je n'avais pas le choix dû à la double licence de la librairie Qt mais bien par choix personnelle de développer du logiciel libre sur mon temps personnel.
[5] QCodeEdit est un éditeur de code écrit pour Qt. Il est très performant, et possède beaucoup de fonctionnalité utile. [Less]
|