Skip to content
Snippets Groups Projects
README.md 4.03 KiB
Newer Older
Etienne CHARPIN's avatar
Etienne CHARPIN committed
# CharpinEtienneProjetCsharp

Etienne Charpin's avatar
Etienne Charpin committed
Présentation du TP de deuxieme année de F2 devellopement logiciel de C#
- Projet individuel à rendre avant le 30 janvier 2023
- Vous pourrez retrouver le sujet dans le fichier sujetTpnote

## Présentation des fonctionnalitées demandées dans le sujet ainsi que le principe de leur implémentation (Commentaire à retrouver dans le code)


###Socle Applicatif 

#Construire un modèle de données pour gérer des contacts et les ranger dans une structure hiérarchique de dossiers

- Class dossier contenant le nom, la date de creation et la date de modification de ce meme dossier ainsi qu'une liste de dossier et de contact

- Class Contact contenant le nom, le prenom, le courriel, la societe, le lien, la date de creation et la date de modification de ce meme dossier

#Construire une application console pour gérer les contacts

Afficher toute la structure :

- Affichage recursives des structures de tout l'explorateur de fichiers

Gérer les dossiers : création dans un dossier parent : 

- Creation d'une fonction d'ajout dans la liste de dossier dans un premier temps dans le dossier dernierment utilisé

Gérer les contacts : création dans un dossier parent :

- Création d'une fonction d'ajout de contact dans la liste de contact d'un dossier dernierement utilisé

#Pour aller plus loin

gérer le format d’adresse Email saisi :

- Creation d'une fonction de vérification d'addresse email valide grace a "System.Net.Mail"

De base l’application enregistre dossier et contact dans le dernier dossier créé. Le dossier créé en dernier sera le parent et le current. Faites en sorte de pouvoir sélectionner le current :

- Possibilite de passer le dossier courant en paramettre de la création de dossier ou 0 est la racine

###Serialisation


#Implémenter deux versions différentes de gestion de fichier par sérialisation avec le design pattern Factory

- Creation d'une serialisationFactory appelant la création de différents serialiseur en fonction du choix utilisateur


Sérialisation binaire avec BinaryFormatter : 

- Voir Binserialisation.cs


Sérialisation XML avec XmlSerializer

- Voir XMLserialisation.cs


#Se confronter à une erreur de chargement de fichier inexistant et la gérer explicitement dans l’application en affichant un message, sans laisser l’application s’auto-détruire :


- Gestion d'une exception de file not found lors de la serialisation avec un message d'erreur permettant de gerer l'exception

#Pour aller plus loin

utiliser l’identité Windows courante pour déterminer le nom du fichier 
fixer l’emplacement du fichier dans le dossier «Mes Documents» de l’utilisateur courant :


- Récupération du Username courant et ajout dans "C:\Users\Documents\ContactManager" + Environment.UserName + ".db"


Protéger l’accéspar un mot de passe : Si un fichier de DB existe, au chargement de l’application, demandez le mot de passe, si le mot de passe saisi est erroné à la 3èmetentative, supprimez la base :

- Protection du fichier .bd par un mot de passe stocké en local, si l'utilisateur se trompe 3 fois on delete le fichier


###Cryptage

#Protéger l’accès au fichier de contacts par cryptage réversible avec la classe CryptoStream :

- Utilisation d'un flux chiffré lors de la serialisation binaire et xml


#Permettre à l’utilisateur de saisir une clé de cryptage au moment de charger ou d’enregistrer un fichier :

- Choix donnée à l'utilisateur de donner une clé de 8 caractere pour chiffrer et dechiffrer son dossier


#Gérer les erreurs pour ne pas laisser l’application s’auto-détruiresi l’opération de décryptage échoue :

- Gestion de l'erreur de dechiffrage et deserialisation en affichant un message d'erreur et en supprimant le fichier

#Pour aller plus loin

si aucune clé n’est précisée, utiliser l’identifiant interne (SID) de l’identité Windows courante :

- Récupération du SID de l'utilisateur courant caster sur une chaine de 8 caractere pour permettre de setup la cle par defaut