LxLeChat / FlowChartCore

PowerShell Module Written in C# to create DOT graphs from PS Scripts
MIT License
18 stars 3 forks source link

Compatibility Mode VS Full PS V7 #101

Closed LxLeChat closed 3 years ago

LxLeChat commented 3 years ago

réflexion sur la compatibilité :

74, #99, #68

Soit on trouve un moyen de réprésenter "graphiquement" ce genre de cas : $a = .... avec à l interieur un script block ou bien foreach-object -process {} -inputobject ... soit je pense que retrouver la compatibilité serait une bonne idée !

LaurentDardenne commented 3 years ago

Pour le #78, le ternaire sera très utilisé je pense, faut voir comment. Se contenter de la représentation d'un usage simple est un bon début. Le #99 également mais c'est plus des JOBs une indication peut suffire ( "ça fait plein de choses presque en même temps"). Le #68 c'est le point principal. Compiler deux DLL, une par version, me semble plus facile à réaliser mais peut être plus difficile à maintenir. Sur ce point on a le droit d'échouer, il en restera tjr qq chose. Le principale étant que cela reste plaisant à faire, et si je me souviens bien c'était un projet pour apprendre. Tomber fait partie de l'apprentissage de la marche ;-)

LxLeChat commented 3 years ago

ahaha ! j'aime cette philosophie :) je n'avais même pas penser à compiler 2 dll tient ... ! en plus ça serait relativement simple dans le psm1 ... détecter l'environnement c'est plutot easy ... ! Hum j'aime cette idée ! ok ok je vais me renseigner .... !

LxLeChat commented 3 years ago

https://medium.com/@canvascodebw/targeting-multiple-frameworks-for-c-projects-618d6db61315

bon ça n'a pas l'air si compliqué que ça

LxLeChat commented 3 years ago

Voila voila ... rien foutu en 1 mois et demi, et il m aura fallu 5 minutes pour le faire :) Y a une branche framework qui contient la modif (au final c'est juste le csproj a modifié) j'ai testé sur PS5 et ça fonctionne correctement ( importation du module + lancement des tests )

Pour l'instant il n y a aucune différenciation dans le code, puisque par exemple le ternaire n'est pas encore pris en compte. mais ça laissera la possibilité de le faire !

LxLeChat commented 3 years ago

[reminder] https://docs.microsoft.com/en-us/powershell/scripting/gallery/concepts/module-psedition-support?view=powershell-7.1

lien pour charger la bonne dll en fonction de la version de PS dans le psd1

LaurentDardenne commented 3 years ago

Salut, j'ai regardé rapido sur une VM au boulot, mais ce n'est pas facile de construire le projet sans internet... Il y a qq références de package qui ne sont pas explicité dans le fichier projet.

Les dll existantes compilées ne semblent pas fonctionner avec PS v5.1, il manque donc pour ce projet une livraison complète prête à utiliser. Ce qui est préférable si qq veut tester sans avoir à plonger dans le code ;-)

Je regarderais ce WE sur mon poste. Et si le projet cible la v5.1 ne serait-il pas préférable d'utiliser le paquet dédié (dotNet 4.5 je crois) et pas celui nommé NetStandard ?

LxLeChat commented 3 years ago

Cool intéressant ! G fait ca en minutes, chez moi ça compilait correctement! Étrange Je checkerai aussi

LaurentDardenne commented 3 years ago

Étrange

Non pas vraiment la gestion des packages est simplifié avec un accès internet. Sans accès j'ai créé un repo Nuget local (un simple répertoire) et l'ai configuré dans VS community, le projet compile mais remonte des erreurs Nuget 1101. Je n'avais pas l'envie de me lancer dans une chasse aux trésors :-)

LxLeChat commented 3 years ago

Ah ouais j avais pas pensé au offline effectivement...!

LxLeChat commented 3 years ago

Alors concernant cette issue, il a maintenant une dll pour netstandard 2.0 aussi, donc PS V5.. maintenant je vais checker pour voir le offline comme tu disais !