Journal de bord¶
Jour 1 28.11.2023¶
J'écrit le CDC puis j'étudie la manière de faire du websocket en C#, il y a des proposition avec un ftp client mais je pense que ça prendrai trop de temps, entre lire les bytes etc. donc je continue ma recherche et je suis sur une classe .net websocket. avant de faire du xamarin, je pense déjà créer le serveur stub/mock dans un premier temps afin de pouvoir séquencer mon travail en deux partie plus distinct et pouvoir avoir les résultats de mon application tout de suite
le temps d'installer ce qu'il me faut, je fais le premier diagramme
j'ai trouvé comment faire un server sur un tuto plus simple https://zetcode.com/csharp/websocket/
Jour 2¶
Maladie
Jour 3 19.12.2023¶
Le code que j'ai n'ai plus à jour, il faut que je trouve une autre doc
https://stackoverflow.com/questions/30490140/how-to-work-with-system-net-websockets-without-asp-net
un petit guide sur l'utilisation de websocket en .net
https://learn.microsoft.com/en-us/dotnet/api/system.net.httplistener.begingetcontext?view=net-8.0
Pour pouvoir l'utiliser de manière async
https://stackoverflow.com/questions/4019466/httplistener-access-denied
J'ai eu un problème qui fait qu'il faut avoir les droits admin pour pouvoir lancer le serveur
Après avoir essayer, j'ai enfin trouver une méthode et en fait le begingetcontext ne me sert à rien, je n'avais pas vu le while dans le premier bout de code
après de longues minutes ou je voulais tester la connection entre mon réseau local et mon téléphone j'ai découvert que je devais manuellement ouvrir le port avec le firewall windows
https://ec.europa.eu/digital-building-blocks/sites/display/CEKB/How+to+open+a+port+on+the+firewall
la prochaine fois, je commence le developpement de l'app
jour 4¶
j'ai fini l'application sans difficulté je vais commencer à m'amuser avec
jour 5¶
j'ajoute un changement afin que le serveur prenne toujours la dernière carte réseau, il faudraitque je rajoute une option pour choisir l'ip
je vais travailler sur les personalisation de l'app
j'ai eu énormément de bug pour changer l'icon de l'applicaiton, voici la marche à suivre https://github.com/dotnet/maui/issues/7786
Jour 6¶
Je vais me mettre sur un système pour avoir un systeme de swipe afin de pouvoir controler la souris
la solution ne marche pas alors
https://stackoverflow.com/questions/73994251/implementing-touchtracking-in-net-maui
donc
https://github.com/FreakyAli/Maui.FreakyEffects il manque des dépendences lors de l'installation de freaky effects, je dois installer skiasharp et skiasharpviews
j'ai un probleme, le package semble corropu et bien que le git n'indique aucune différence, le package nuget semble etre installer pas installable
j'ai régler le problème en allant modifier le csproj a la main
https://learn.microsoft.com/en-us/answers/questions/975093/trying-to-migrate-xamarin-forms-effect-functionali ça ne marche pas non plus
https://github.com/vapolia/MauiGestures/tree/main
ça ne marche pas non plus
Jour 7¶
Je vais avancer la documentation, par la même occasion, je vais finir de commenter mon code afin de voir si je peut utiliser certains outils automatiques comme Doxygene
J'ai découvert aussi que il y avait une taille limite aux tailles des arrays en c# visiblement, ça dépends du processeur et du framework, il faudra que je teste un programme qui vérifie la limite
Jour 8¶
Je ne compte plus rajouter de fonctionalité, dans un premier temps ce matin je vais écrirer la documentation utilisateur puis par la suite, je vais faire le formatage du code. pour l'instant tout est dans la vue.
En voulant prendre des captures d'écran je me suis rendu compte d'un manque dans l'interface du serveur, on ne peut pas choisir l'adresse ip utilisé.
je vais donc rajouter une textbox pour se faire.
Vu le nombre de crash que j'ai eu lors du serveur, je vais mettre une sécurité sous la forme d'un try catch
Après discussion avec mr Zanardi, dans le serveur, je vais enlever le while true du serveur, et lors du refactoring, je vais le mettre dans une task/thread. et enlver une while true inutile car il y a un await dedans
maintenant que j'ai écrit la documentation, pour le coté serveur, je compte refactorisé le code afin de mettre tout ça dans des objets
je pense que pour l'objet de websocket, je vais en faire un singleton