it-frosch
Goto Top

Wie macht man so etwas professioneller?

Hallo Kollegen,

auch wenn es in der Powershell Abteilung steht, es ist eine übergreifende Frage.

Um mich endlich in Powershell einzuarbeiten, habe ich mir zur Aufgabe gestellt ein kleines Tool für die User zu erstellen, mit dem diese bestimmte Aufgaben per Eingabe und klick ausführen können.
Für jede Aufgabe habe ich in der GUI ein bestimmte Überschrift, Beschreibung, Eingabefelder und einen
Schalter (Änderungen anwenden) vorgesehen. Ich habe also auf der GUI 6 Schalter für die Aufgaben wobei beim Click auf einen Schalter sich Überschrift, Beschreibung, Eingabefelder und Schalterbeschriftung an die jeweilige Aufgabe anpassen.

Dazu habe ich ein Rudel Label, Button, rtfbox und Textboxen definiert, die für jede Aufgabe auf dem Formular einblende.

Momentan habe ich bei jedem Aufgaben Button im Ausführungsteil 1,5m Deklarationen stehen,
in der ich alle anderen Label, Button und rtfboxen ausblende, um anschließend nur die für die aktuelle Aufgabe notwendigen Label, Button und rtfbox auf dem Formular einzublenden.

Das ist natürlich zum einen extrem aufwändig und fehleranfällig, da ich Änderungen in den Deklarationen jedes Aufgabenschalters mitziehen muss.

Meine erste Idee ging in Richtung einer Funktion, der ich die jeweilige Aufgabe mitgebe und in der dann das ganze Aus- und Einblenden der Steuerelemente stattfindet.
Wie macht man so etwas aber professionell?

Grüße vom it-frosch

Content-ID: 8138517081

Url: https://administrator.de/contentid/8138517081

Printed on: November 2, 2024 at 23:11 o'clock

em-pie
Solution em-pie Aug 14, 2023 updated at 13:57:20 (UTC)
Goto Top
Moin,

Der Weg über Funktionen ist schon der richtige Weg. Du hast dann am Ende vermutlich nur einen wust an Parametern und musst mit jeder Änderung/ Interaktion in der GUI die Funktion erneut aufrufen

Besser wäre es da vermutlich, direkt/ zusätzlich mit Klassen zu arbeiten
https://adamtheautomator.com/powershell-classes/

Wenn du dann (stark vereinfacht) eine Klasse TheAction hast, mit dem Parameter show, würde das Ändern des Objekt-Attributes "show" dessen Verhalten direkt beeinflussen:
class TheAction {
    [bool]$show
}

$Command1 = [TheAction]::new()
$Command1.show = $true
$Command1.show = $false
it-frosch
it-frosch Aug 14, 2023 at 13:58:55 (UTC)
Goto Top
Zitat von @em-pie:
Besser wäre es da vermutlich, direkt/ zusätzlich mit Klassen zu arbeiten
https://adamtheautomator.com/powershell-classes/

Danke dir, da muss ich wohl in den sauren "Klassen" Apfel beißen.
Sprich, mich noch einmal auf die Schulbank setzen. :D

Grüße vom it-frosch
StefanKittel
StefanKittel Aug 14, 2023 at 16:25:50 (UTC)
Goto Top
Programmierer hassen es Dinge mehrfach zu programmieren.
Es ist aufwendig, fummelig und fehleranfällig.

Also mehrfache Funktionen zu einer zusammenfassen und mit Parametern aufrufen.

Das kann man auch prima mit Objekten (Klassen) machen.

Stefan
lifeadmin
lifeadmin Aug 15, 2023 at 16:07:09 (UTC)
Goto Top
Generell lassen sich Anwendungen bei den Usern über eine Webanwendung besser darstellen und verteilen.
Die Progammstruktur und Syntax ist z.B. mit PHP ähnlich wie bei Powershell und mit HTML hat man schnell ein Formular erstellt. Allerdings braucht man dafür einen Webserver.