# Zerocouplage

Zerocouplage$^,$ est un framework open source développé en Java et paramétrable via XML permettant de développer des applications multiplateforme: web, mobile et Desktop à partir d’une unique couche métier indépendante de la couche présentation réalisée à base des composants ZCComponents (Composant graphique fournis par le framework ZeroCouplage).
L'objectif du framework est de répondre aux besoins utilisateurs indépendamment de la plateforme choisie qui peut être soit web, soit mobile ou desktop, d’où le nom Zerocouplage (Pas de couplage entre le besoin métier et la plateforme).
Le framework Zerocouplage aura aussi pour objectif d’offrir une large possibilité d’extension pour l’adapter à différents types d’applications.
Il implémente l’architecture Modèle-Vue-Contrôleur en Java et il garantit aussi la validation des informations d’IHM et reste performant dans le traitement des données.
Zerocouplage framework peut être utilisé comme une solution transverse pour plusieurs domaines de la recherche scientifique qui demandent la résolution d'un problème donné sur les plateformes : web, mobile et desktop. Il suffit de trouver une solution à implémenter via Zerocouplage et ce dernier s'occupe de son adaptation sur des plateformes web, mobile et desktop. Parmi ces domaines, on trouve :
* MDA (Model Driven Architecture)
* eLearing
* eSante
* Jeux d'apprentissages attractifs

## Principe

Zerocouplage est conçu pour répondre aux contraintes des différents frameworks modèle-vue-contrôleur (MVC) existants, en particulier le couplage fort, ou couplage faible de la couche métier avec la couche de présentation. En effet, Zerocouplage implémente le modèle de conception Modèle-Vue-Contrôleur en Java, fournissant une séparation totale entre la couche de présentation et la couche métier. Le but est de développer la couche métier une fois pour toutes, et ensuite à travers la couche présentation, d'exécuter l'application dans différents environnements.

## Historique

Zerocouplage a été développé par un groupe d'étudiants ingénieurs de l’école nationale des sciences appliquées Oujda, dirigés par El Hassane Ettifouri, lauréat de l’école et directeur technique Java/JEE, et Toumi Bouchentouf, chef du département d'informatique.
La version 1.0.0 de Zerocouplage est créée en septembre 2012. Cette version qui contient l’implémentation desktop et web propose la fonctionnalité principale qui est le couplage nul entre la couche métier et la couche présentation ainsi que la configuration d’application et la validation de champs des formulaires via des fichiers XML.
La version courante de Zerocouplage est la version 2.2.0 (Juillet 2016), c'est une version stable.

## Licence

Zerocouplage se base sur la licence Apache version 2.0 qui est dédiée aux logiciels libres et open source.

## Avantages

Le framework Zerocouplage permet :
* de développer des applications desktop, web, mobile ou d’autres extensions ;
* de gagner de temps par rapport aux autres framework existants ;
* de migrer d’un contexte à un autre en changeant uniquement la couche présentation de l’application et en gardant la même couche métier ;
* d'effectuer la validation des champs du formulaire soit via des classes java ou via un fichier XML de validation.

## Documentation

Les créateurs de Zerocouplage mettent à la disposition des développeurs toute la documentation qui leur permet de comprendre le fonctionnement du framework (tutoriels desktop/web, description des fichiers de configuration, javadoc, etc.). Cette documentation se trouve sur le site officiel de Zerocouplage. Comme le framework est open source, le code source y est aussi disponible.