Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
departement_info:personnels:pb:r4.01 [2024/05/30 13:30] – Brutus Philippe | departement_info:personnels:pb:r4.01 [2025/02/27 14:25] (Version actuelle) – Brutus Philippe |
---|
Il s'agit de développer une application utilisant une base de données. L'architecture retenue est de type client-serveur mais l'accès à la base de données se fera via un composant logiciel assurant l'interface entre l'application de bureau (le client) et le SGBD (le serveur). Ce composant pourra être développé en sollicitant le SGBD par des requêtes SQL ou en utilisant une bibliothèque disponible sur le marché (ici [[https://www.devart.com/linqconnect/|LINQconnect Express]] qui met en oeuvre [[http://igm.univ-mlv.fr/~dr/XPOSE2009/Linq/index.html#choix|Language INtegrated Query]]). L'intérêt d'un tel composant d'interface est de rendre le client indépendant du support de données (voir le patron de conception procuration - //proxy//). | Il s'agit de développer une application utilisant une base de données. L'architecture retenue est de type client-serveur mais l'accès à la base de données se fera via un composant logiciel assurant l'interface entre l'application de bureau (le client) et le SGBD (le serveur). Ce composant pourra être développé en sollicitant le SGBD par des requêtes SQL ou en utilisant une bibliothèque disponible sur le marché (ici [[https://www.devart.com/linqconnect/|LINQconnect Express]] qui met en oeuvre [[http://igm.univ-mlv.fr/~dr/XPOSE2009/Linq/index.html#choix|Language INtegrated Query]]). L'intérêt d'un tel composant d'interface est de rendre le client indépendant du support de données (voir le patron de conception procuration - //proxy//). |
| |
{{:departement_info:personnels:pb:R4.01:sujetTP.pdf|sujet}} | {{:departement_info:personnels:pb:R4.01:sujet2024-2025.pdf|sujet}}\\ |
| {{:departement_info:personnels:pb:R4.01:fenetres2024-2025.pdf|exemples de fenêtres}} |
| |
== Travail à réaliser == | == Travail à réaliser == |
| |
Séance 1 : | Séance 1 : |
Création de la base de données | Création de la base de données (1pt) |
Création de la solution et des projets | Création de la solution et des projets (1pt) |
Ajout de l’outil Linq | Ajout de l’outil LinQ (1pt) |
Création de la vue principale | Création de la vue principale (vue de consultation) (3pts) |
Création de la vue de configuration des paramètres de la base de données | Création de la vue de configuration des paramètres de la base de données (1pt) |
Connexion à la base de données (settings) | Connexion à la base de données (settings) (3pts) |
Séance 2 : | Séance 2 : |
Création de la vue d’authentification du gestionnaire | Affichage de la liste des sports (1pt) |
Test de l’authentification | La sélection d’un sport permet d’afficher les tournois associés à ce sport (2pts) |
Création de la vue de gestion d’un service ou fonction | La sélection d’un tournoi permet d’afficher la liste des noms des participants. (2pts) |
Ajout de services et fonctions à la base de données | Un menu recherche participant permet d’ouvrir une fenêtre pour afficher tous les participants avec l’ensemble des informations dans un DataGrid. On peut alors trier par ordre alphabétique des noms ou rechercher par tout ou partie du nom. (5pts) |
Création de la vue gestion de personnel | |
Ajout de personnel à la base de données | |
Séance 3 : | Séance 3 : |
Création de la vue liste de personnels | Création de la vue d’authentification du gestionnaire (1pt) |
Affichage dans un DataGrid des personnels enregistrés dans la base de données | Test de l’authentification (menus du gestionnaire activés) (1pt) |
Modification ou suppression d’un service ou fonction à l’aide d’un ContextMenu | Création de la vue de gestion d’un tournoi (1pt) |
| Création de la vue de gestion d’un sport (1pt) |
| Ajout d’un tournoi et d’un sport (2pts) |
| Création de la vue gestion des participants (1pt) |
| Ajout d’un participant (3pts) |
Séance 4 : | Séance 4 : |
Recherche d’un personnel par service | Vues complétées de gestion des tournois, sports ou participants afin de pouvoir modifier ou supprimer un tournoi, un sport ou un participant à l’aide d’un ContextMenu (2pts) |
Recherche d’un personnel par fonction | Création de la fenêtre de gestion des gestionnaires de l’application (1pt) |
Recherche d’un personnel par nom | Ajout d’un gestionnaire (2pts) |
| Modification ou suppression d’un gestionnaire à l’aide d’un ContextMenu (2pts) |
| |
== Compte-rendu == | == Compte-rendu == |
| |
Le travail fera l'objet d'un compte-rendu écrit comportant les points suivants : | |
- présentation du TP, c'est-à-dire introduction résumant le projet : | Le travail réalisé au cours des 4 séances fera l'objet d'un compte-rendu écrit unique comportant les points suivants : |
. nature de l'application (client lourd ou application de bureau cliente plutôt qu'application web) | |
. objet ou vocation | * présentation du TP, c'est-à-dire introduction résumant le projet |
. catégories d'utilisateurs | * nature de l'application (client lourd ou application de bureau cliente plutôt qu'application web) |
. fonctionnalités | * objet ou vocation |
- présentation des outils utilisés | * catégories d'utilisateurs |
- description de la classe BdDPersonnels | * fonctionnalités |
- description des tests réalisés (manuels ou automatisés), des corrections éventuelles et résultats obtenus | * présentation des outils utilisés |
- conclusion : | * description de la classe BdDTournois |
. fonctionnalités non développées | * description des tests réalisés (manuels ou automatisés), des corrections éventuelles et résultats obtenus |
. fonctionnalités complémentaires à développer | * conclusion |
. intérêt d'un ORM (Object Relational Mapper) tel que LinQ | * fonctionnalités non développées |
. et surtout, en adéquation avec le thème d'architecture logicielle, l'intérêt de l'architecture client -serveur (votre application et le SGBD) et d'une architecture en couches pour le client lourd : | * fonctionnalités complémentaires à développer |
- couche interface utilisateur avec architecture MVC (ou variante de MVC) | * intérêt d'un ORM (Object Relational Mapper) tel que LinQ |
- couche mots-clés "métier" avec la bibliothèque proposant différents services (obtenir les fonctions, les services, les employés, ajouter un employé, obtenir les employés ayant telle fonction, obtenir les employés de tel service ...) | * et surtout, en adéquation avec le thème d'architecture logicielle, l'intérêt de l'architecture client-serveur (votre application et le SGBD) et d'une architecture en couches pour le client lourd : |
- couche technique avec la bibliothèque externe LinQ | * couche interface utilisateur avec architecture MVC (ou variante de MVC) |
| * couche mots-clés "métier" avec la bibliothèque proposant différents services (obtenir les tournois, les sports, les participants, ajouter un sport, un tournoi... obtenir les participants d'un tournoi...) |
| * couche technique avec la bibliothèque externe LinQ |
| |