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

  • 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
  • 13/03/2025
  • Allgemein, Unternehmen

MEDtech Ingenieur verstärkt sein Führungsteam: Seit März 2025 übernimmt Daniel Saffer die Rolle des Chief Technical Officers (CTO). Mit seiner langjährigen Erfahrung in der Entwicklung sicherheitskritischer Embedded-Softwarelösungen für die ...

Weiterlesen
  • 29/01/2025
  • Allgemein, Hardware, Testen

EinleitungUm bei der EMV Prüfung für die Zulassung neuer medizintechnischer Geräte das Risiko zu reduzieren machen wir gerne Vortests mit den Geräten in der Prototypen Phase. Aktuell unterstützen wir ...

Weiterlesen
Cookie-Übersicht

Die Internetseiten der MEDtech Ingenieur GmbH verwenden Cookies. Cookies sind Textdateien, welche über einen Internetbrowser auf einem Computersystem abgelegt und gespeichert werden.

Zahlreiche Internetseiten und Server verwenden Cookies. Viele Cookies enthalten eine sogenannte Cookie-ID. Eine Cookie-ID ist eine eindeutige Kennung des Cookies. Sie besteht aus einer Zeichenfolge, durch welche Internetseiten und Server dem konkreten Internetbrowser zugeordnet werden können, in dem das Cookie gespeichert wurde. Dies ermöglicht es den besuchten Internetseiten und Servern, den individuellen Browser der betroffenen Person von anderen Internetbrowsern, die andere Cookies enthalten, zu unterscheiden. Ein bestimmter Internetbrowser kann über die eindeutige Cookie-ID wiedererkannt und identifiziert werden.

Durch den Einsatz von Cookies kann die MEDtech Ingenieur GmbH den Nutzern dieser Internetseite nutzerfreundlichere Services bereitstellen, die ohne die Cookie-Setzung nicht möglich wären.

Mittels eines Cookies können die Informationen und Angebote auf unserer Internetseite im Sinne des Benutzers optimiert werden. Cookies ermöglichen uns, wie bereits erwähnt, die Benutzer unserer Internetseite wiederzuerkennen. Zweck dieser Wiedererkennung ist es, den Nutzern die Verwendung unserer Internetseite zu erleichtern. Der Benutzer einer Internetseite, die Cookies verwendet, muss beispielsweise nicht bei jedem Besuch der Internetseite erneut seine Zugangsdaten eingeben, weil dies von der Internetseite und dem auf dem Computersystem des Benutzers abgelegten Cookie übernommen wird.

Die betroffene Person kann die Setzung von Cookies durch unsere Internetseite jederzeit mittels einer entsprechenden Einstellung des genutzten Internetbrowsers verhindern und damit der Setzung von Cookies dauerhaft widersprechen. Ferner können bereits gesetzte Cookies jederzeit über einen Internetbrowser oder andere Softwareprogramme gelöscht werden. Dies ist in allen gängigen Internetbrowsern möglich. Deaktiviert die betroffene Person die Setzung von Cookies in dem genutzten Internetbrowser, sind unter Umständen nicht alle Funktionen unserer Internetseite vollumfänglich nutzbar.

Weitere Informationen erhalten Sie in unserer Datenschutzerklärung.

Unbedingt notwendige Cookies

Dieses Cookie wird benötigt, um Ihre Cookie-Einstellungen zu merken und weitere Hauptfunktionen zur Verfügung zu stellen

Um Ihnen eine Auskunft über Ihre gespeicherten personenbezogenen Daten hier (https://medtech-ingenieur.de/gespeicherte-daten-2/) geben zu können, benötigen wir einen Cookie, um Sie bei der Datenabfrage identifizieren zu können. Dieser Cookie muss aus Sicherheitsgründen deshalb aktiviert sein. Ein weiterer Cookie wird gesetzt, um diesen Banner nicht erneut anzeigen zu müssen.

Cookie-Name Beschreibung
PHPSESSID Name: PHP session
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Wir benötigt, um Sie bei der Anfrage von personenbezogenen Daten identifizieren zu können. Das Cookie wird nur gesetzt, wenn Sie eine Anfrage hier (https://medtech-ingenieur.de/gespeicherte-daten-2/) stellen.
Laufzeit: Sitzungsende
Kategorie: Unbedingt notwendige Cookies
moove_gdpr_popup Name: Cookie-Box Einstellungen
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Wird benötigt, um Ihre Cookie-Einstellungen zu speichern, um den Cookie-Banner nicht erneut anzeigen zu müssen.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
comment_author_9c90e388e3e1be4a6c594fa6ac8a3eec
comment_author_email_9c90e388e3e1be4a6c594fa6ac8a3eec
comment_author_url_9c90e388e3e1be4a6c594fa6ac8a3eec
Name: Kommentar Einstellungen
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Cookie wird angelegt, wenn Sie ein Kommentar auf MEDtech Ingenieur veröffentlichen wollen, um Sie als Autor identifizieren und den aktuellen Status Ihres Kommentars anzeigen zu können. Das Cookie enthält den angegebenen Namen. Das Cookie wird erst gesetzt, wenn Sie der Speicherung Ihrer personenbezogenen Daten zustimmen.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
rmp-rate Name: RMP Rate
Anbieter: Eigentümer der Webseite (MEDtech Ingenieur)
Zweck: Cookie wird angelegt, wenn Sie eine Bewertung eines Blogbeitrags mithilfe des Sternebewertungssystems abgeben. Ihnen wird eine anonymisierte ID zugewiesen, um zu erkennen, ob Sie einen Artikel bereits bewertet haben oder nicht. Das Cookie wird nur verwendet, um zu verhindern, dass mehrfache Bewertung abgegeben werden und erst gesetzt, wenn Sie auf einen Stern klicken.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
medtech-download-page Name: Download Page
Anbieter: Eigentümer der Webseite (MEDtech Ingenieur)
Zweck: Cookie wird angelegt, wenn Sie den Landing-Page Prozess erfolgreich durchlaufen haben. Dies geschieht nur, wenn Sie einen Content-Download von unserer Website anstreben.
Laufzeit: 1/2 Jahr
Kategorie: Unbedingt notwendige Cookies