Skip to content
Snippets Groups Projects
Select Git revision
  • master default
1 result

charpinetienneprojetcsharp

  • user avatar
    Etienne Charpin authored
    78dfe504
    History

    CharpinEtienneProjetCsharp

    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