cegepmatane / Projet-Specialisation-2022-Clement-Darne

Success History est une application de bureau multi-plateforme permettant d'avoir un suivi de ses notes étudiantes.
1 stars 1 forks source link

PoC : Aspect logique (sérialisation). #3

Closed ClementDrn closed 2 years ago

ClementDrn commented 2 years ago

Le second aspect de la PoC est de faire fonctionner les boutons sur la fenêtre.

Il faut ensuite tester les fonctionnalités d'interaction homme-machine et de sérialisation sur les plateformes Windows, Linux et si possible macOS.

/!\ L'attribut text est devenu Texte pour respecter la nomenclature C# et la langue française.

ClementDrn commented 2 years ago

Documentation

Exemple de classe Model : https://docs.avaloniaui.net/tutorials/music-store-app/searching-for-albums

Sérialisation JSON : https://docs.microsoft.com/fr-fr/dotnet/csharp/programming-guide/concepts/serialization/ https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-6-0

Boutons : https://docs.avaloniaui.net/tutorials/music-store-app/add-and-layout-controls

ClementDrn commented 2 years ago

Le comportement attendu est visible sur Windows. Concernant Linux, la sérialisation et la désérialisation fonctionnent aussi, mais le répertoire "data" est enregistré au mauvais endroit : non depuis le chemin de l'exécutable mais depuis l'endroit où a été lancée l'application.

ClementDrn commented 2 years ago

C'est bon, le dossier "data" est bien créé (sur Windows et Linux) dans le répertoire où se trouve l'exécutable et ce peu importe si ce dernier a été lancé depuis un IDE, un script ou un terminal dans un autre répertoire.

ClementDrn commented 2 years ago

Pour obtenir le chemin de l'exécutable : https://iq.direct/blog/51-how-to-get-the-current-executable-s-path-in-csharp.html

ClementDrn commented 2 years ago

Après avoir cliqué sur "Sérialiser JSON" et "Désérialiser JSON" on peut observer "Hello JSON" sur la fenêtre. image

Ici, on voit bien le fichier nouvellement créé. image

Ce fichier contient le texte ci-dessous.

{"Texte":"Hello JSON"}