Toolentwicklung in C#

Alisa Schulz

27/07/2023

Warum ein Tool entwickeln?

Tools sind Hilfsprogramme, welche den uns bei bestimmten Aufgaben oder Teilaufgaben unterstützen oder diese vollständig abnehmen können. Mit C# können auch Tools für spezifische Aufgaben erstellt werden. Hier bei MEDtech Ingenieur haben wir schon mehrere Tools, etwa für das Testen oder Steuern von Geräten entwickelt, um solche Arbeiten effizienter durchführen zu können. In diesem Blockeintrag wird erläutert, warum die Programmiersprache C# eine gute Wahl für die Toolentwicklung ist und wie ein Standardvorgehen bei der Toolentwicklung aussehen könnte.

 

Warum C#?

    • C# ist eine moderne und weitverbreitete Programmiersprache, welche ständig von Microsoft weiterentwickelt wird. Es gibt bereits viele Packages und Libraries welche das Programmieren mit C# erleichtern.

 

    • Für die meisten Tools ist die klassische Kommandozeile nicht ausreichend. Für C# lassen sich ohne Probleme Graphische Benutzeroberfläche mit WPF, Windows Forms oder UWP erstellen, welche alle nötigen Graphischen Funktionalitäten, wie Buttons, Slider, Textfelder etc. bereitstellen.

 

    • Um die Funktionalität eines Tools zu sichern, können mit Unittests die einzelnen Komponenten eines Programms getestet werden. Dies ist gerade bei Anwendungen mit vielen Spezialfällen hilfreich. Für C# gibt es einige Erweiterungen und Tools um ein ausführliches Testen zu ermögliche.

 

  • Anstatt am Ende das Tool ständig als Executable oder als einen Ordner mit allen notwendigen Dateien an den Benutzer weiterzureichen, kann man in MS Visual Studio in C# mit dem SetUpWizard Package in nur wenigen Klicks einen Installer für das Projekt erstellen. Der erzeugte Installer installiert Ihr Tool für Ihre Nutzer und erstellt z.B. direkt eine Verknüpfung auf deren Desktop.

 

Wie erstellt man ein Tool in C#?

Unsere Vorgehensweise
Im Folgenden werden die Grundschritte für das erfolgreiche Programmieren eines Tools aufgelistet und erläutert. Die Schritte können dabei auch überlappen oder mehrfach durchlaufen werden.

Es ist z.B. selten, dass der erste Entwurf für die Benutzeroberfläche nicht mehr verändert werden muss oder dass keine weiteren Requirements während der Entwicklung aufkommen.

 

Problemstellung und Requirements definieren

Zunächst müssen einige Fragen beantwortet werden, welche die Grundbausteine für den restlichen Verlauf und den Aufbau des Tools maßgeblich beeinflussen:

    • Wofür ist das Tool?

 

    • Wer ist der Endnutzer

 

    • Welche Kenntnisse hat der Endnutzer?

 

    • Was für ein User Interface soll das Tool haben? Ist eine Kommandozeile ausreichend oder wird ein Graphical User Interface benötigt?

 

  • Was soll das Tool alles können?
    – Was soll der User eingeben können?
    – Was soll dem User zurückgegeben/angezeigt werden?
    – Gibt es weitere Schnittstellen zu anderen Anwendungen oder Geräten?

 

Aufstellen der Architektur

Bevor Sie sich in Programmierung stürzen, macht es Sinn sich vorher eine Architektur für das Projekt zu überlegen. Diese bildet später den Leitfaden für das Programmieren des Tools.

    • Die Architektur legt kleinere Funktionseinheiten ihres Projektes und deren Beziehungen zueinander fest.

 

    • Des Weiteren definiert sie die Aufgabenbereiche der Funktionseinheiten.

 

    • Die Architektur basiert auf dem Wissen aus den Requirements und sorgt dafür, dass das Tool später alle geforderten Aufgaben erfüllen kann.

 

  • Die Schnittstellen zu anderen Funktionseinheiten wie z.B. andere Anwendungen und Geräten müssen in der Architektur berücksichtigt und definiert werden

 

Erstellen eines ersten Entwurfes einer Benutzeroberfläche

    • Das Erstellen einer Benutzeroberfläche gibt einen ersten Eindruck, ob die Problemstellung wirklich verstanden wurde. Durch Rücksprache mit der Zielgruppe können fehlende Funktionen oder unübersichtliche oder falsche Programmabläufe früh vermieden werden.

 

  • Um eine gute User Experience zu erreichen, empfiehlt es sich, nach der Implementierung von Features, diese zusammen mit den späteren Usern zu testen.

 

Programmieren des Tools

    • Programmieren der Funktionseinheiten, welche in der Architektur festgelegt wurden

 

  • Verbinden der Logik mit der Benutzeroberfläche

 

Unittesten

    • Unittests sichern die Funktionalität einzelner Funktionseinheiten (Klassen und Methoden)

 

  • Die Architektur sollte darauf ausgelegt sein, dass die Funktionseinheiten immer alleinstehend und vollständig getestet werden können. Dies erleichtert spätere Änderungen und die Austauschbarkeit der einzelnen Programmabschnitte bzw. gibt Sicherheit, dass durch eine Änderung andere Funktionen nicht „kaputt gehen“.

 

Erstellen einer Setup.exe

  • Ein Installer ist für die meisten User angenehmer als ein Ordner mit einer Executable. Mithilfe des SetupWizard Packages für C# erstellen Sie in wenigen Klicks einen Installer, mit dem Ihre Nutzer das Tool bequem installieren können.

 

Hilfreiche Tipps:

    • Regelmäßige Rücksprache mit dem Endnutzer sorgt dafür das Missverständnisse frühzeitig aus dem Raum geschafft werden und dass die Benutzeroberfläche verständlich und benutzerfreundlich gestaltet ist. Beispielsweise sind Slider oder Dropdown-Menüs für den Nutzer manchmal angenehmer als Textfelder und sparen später bei der Nutzung des Tools Zeit.

 

  • Dokumentation und Kommentieren von Code
    Ist von vornherein klar, dass das Tool lange benutzt wird und später eventuell angepasst werden muss lohnt es sich eine Dokumentation zu erstellen. Dadurch findet man sich selbst auch nach langer Zeit leichter im Code zurecht und andere Programmieren können sich ebenfalls schneller in den Code einarbeiten. Fehler in der Architektur oder Programmierung können ebenfalls beim Dokumentieren auffallen.

Geschrieben von Alisa Schulz


Weitere Beiträge

  • 25/09/2025
  • Allgemein, Elektrodermale Aktivität, Hardware, Produktion

Darf ich vorstellen? Das ist EDA – unsere Eule für elektrodermale AktivitätDas ist EDA, unsere kleine Eule mit einem besonderen Talent. EDA kann elektrodermale Aktivität (kurz: EDA) messen – ...

Weiterlesen
  • 09/09/2025
  • Allgemein, Software

In vorangegangenen Blogbeiträgen habe ich zwei wesentliche Komponenten einer einfachen und universell einsetzbaren Software-Architektur vorgestellt: Events mit Dispatcher, Listeners und Datapool. Damit lassen sich bereits sehr viele einfache Use-Cases ...

Weiterlesen
  • 19/03/2025
  • Allgemein, Unternehmen, Veranstaltungen

Wir freuen uns, euch zu einem exklusiven VDI-Event des Netzwerk Systems Engineering einzuladen, das bei uns im Büro stattfindet!Am Freitag, den 28. März 2025, wird sich alles um die ...

Weiterlesen
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.