Question
Besoin d'un avis tranché sur des questions Winform
- Florent
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 26
- Remerciements reçus 0
il y a 9 ans 10 mois #22057
par Florent
Besoin d'un avis tranché sur des questions Winform a été créé par Florent
Bonjour,
J'ai besoin d'un avis tranché, car je me retrouve dans une situation inconfortable. Nous travaillons sur un projet d'interface en powershell (j'ai déjà posé des questions sur ce sujet). Nous sommes restés sur Powershell et non WPF (car un résident n'était pas souhaité et d'autres raisons de \"consensus\").
En gros c'est un processus sequentiel qui se déroule sur deux threads : l'un pour la gui et l'autre pour le fonctionnel.
-Lui à constitué son interface d'un seul webbrowser unique. Ce webbrowser contient trois volets html constitué d'Iframe. Pour mettre à jour son interface, il modifie en direct le code HTML du genre :
[code:1]$HtmlTxt=\"<input type=button id=Confirmation value=Confirmer style=width:120px;height:50px class=Info onclick={Confirm.disabled=true;}>\"[/code:1]
Ce qui veut dire, que pour toute modification de son interface, il doit passer par un circuit d'au moins 9 fonctions (puisque il met à jour trois onglets en même temps).
-Pour ma part, j'ai une fonction unique :
[code:1]Function UpdateGui {
#---Définition des paramètres de la fonction.
Param(
[Parameter(Mandatory=$true)]
[ValidateNotNullorEmpty()]
[Int32]$Step
)
$lbl='Label'+$Step
# A partir de l'étape 2 on doit également agir sur l'étape précédente
$HashForAll.PanelLabel.Controls[$lbl].Invoke([Action[string]] {
if ($step -ge 2){
$prevstep = $Step-1
$prevlbl='Label'+$prevstep
$HashForAll.PanelLabel.Controls[$prevlbl].Font = New-Object System.Drawing.Font(\"HelveticaNeueLT Com 55 Roman\",10,[System.Drawing.FontStyle]::«»Strikeout)
$HashForAll.PanelLabel.Controls[$prevlbl].ForeColor = \"Silver\"
}
$HashForAll.PanelLabel.Controls[$lbl].Font = New-Object System.Drawing.Font(\"HelveticaNeueLT Com 55 Roman\",10,[System.Drawing.FontStyle]::Bold)
$HashForAll.PanelLabel.Controls[$lbl].ForeColor = \"Black\"
},
'normal')
}[/code:1]
J'ai la certitude de respecter la logique de Winform, c'est à dire d'utiliser les bons composants dédiés. J'attaque le label sur le thread de la gui, je le modifie. Ce même label est crée au démarrage du thread de la gui, en lisant un fichier xml. J'empile le tout via un flowlayout.
Mais peut être ai-je tort ? mon code d'interface est de fait plus compliqué (puisque plusieurs éléments), mais je le trouve infinement plus souple à maintenir. J'ai besoin d'un avis sur ce point.<br><br>Message édité par: Mrflamby, à: 11/07/16 10:24
J'ai besoin d'un avis tranché, car je me retrouve dans une situation inconfortable. Nous travaillons sur un projet d'interface en powershell (j'ai déjà posé des questions sur ce sujet). Nous sommes restés sur Powershell et non WPF (car un résident n'était pas souhaité et d'autres raisons de \"consensus\").
En gros c'est un processus sequentiel qui se déroule sur deux threads : l'un pour la gui et l'autre pour le fonctionnel.
-Lui à constitué son interface d'un seul webbrowser unique. Ce webbrowser contient trois volets html constitué d'Iframe. Pour mettre à jour son interface, il modifie en direct le code HTML du genre :
[code:1]$HtmlTxt=\"<input type=button id=Confirmation value=Confirmer style=width:120px;height:50px class=Info onclick={Confirm.disabled=true;}>\"[/code:1]
Ce qui veut dire, que pour toute modification de son interface, il doit passer par un circuit d'au moins 9 fonctions (puisque il met à jour trois onglets en même temps).
-Pour ma part, j'ai une fonction unique :
[code:1]Function UpdateGui {
#---Définition des paramètres de la fonction.
Param(
[Parameter(Mandatory=$true)]
[ValidateNotNullorEmpty()]
[Int32]$Step
)
$lbl='Label'+$Step
# A partir de l'étape 2 on doit également agir sur l'étape précédente
$HashForAll.PanelLabel.Controls[$lbl].Invoke([Action[string]] {
if ($step -ge 2){
$prevstep = $Step-1
$prevlbl='Label'+$prevstep
$HashForAll.PanelLabel.Controls[$prevlbl].Font = New-Object System.Drawing.Font(\"HelveticaNeueLT Com 55 Roman\",10,[System.Drawing.FontStyle]::«»Strikeout)
$HashForAll.PanelLabel.Controls[$prevlbl].ForeColor = \"Silver\"
}
$HashForAll.PanelLabel.Controls[$lbl].Font = New-Object System.Drawing.Font(\"HelveticaNeueLT Com 55 Roman\",10,[System.Drawing.FontStyle]::Bold)
$HashForAll.PanelLabel.Controls[$lbl].ForeColor = \"Black\"
},
'normal')
}[/code:1]
J'ai la certitude de respecter la logique de Winform, c'est à dire d'utiliser les bons composants dédiés. J'attaque le label sur le thread de la gui, je le modifie. Ce même label est crée au démarrage du thread de la gui, en lisant un fichier xml. J'empile le tout via un flowlayout.
Mais peut être ai-je tort ? mon code d'interface est de fait plus compliqué (puisque plusieurs éléments), mais je le trouve infinement plus souple à maintenir. J'ai besoin d'un avis sur ce point.<br><br>Message édité par: Mrflamby, à: 11/07/16 10:24
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 9 ans 10 mois #22058
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Besoin d'un avis tranché sur des questions Winform
Mrflamby écrit:
Mrflamby écrit:
Dans ce cas, il faut savoir si les personnes en charge de la maintenance ont ou auront les compétences nécessaires.
Mrflamby écrit:
A lire ton post, j'ai comme l'impression que tu dois justifier tes choix auprès de certaines personnes ...
Les tests devraient répondre à cette interrogation.Mais peut être ai-je tort ?
Mrflamby écrit:
Si tu parles de la maintenance de ton code, c'est du code avancé, pas du code compliqué.J'ai besoin d'un avis sur ce point.
Dans ce cas, il faut savoir si les personnes en charge de la maintenance ont ou auront les compétences nécessaires.
Mrflamby écrit:
Sans être dans le projet difficile de donner un avis.J'ai besoin d'un avis tranché, car je me retrouve dans une situation inconfortable
A lire ton post, j'ai comme l'impression que tu dois justifier tes choix auprès de certaines personnes ...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.035 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Besoin d'un avis tranché sur des questions Winform