Tool development in C#

Alisa Schulz

27/07/2023

Why develop a tool?

Tools are utilities that can support us with specific tasks or subtasks, or even take them over completely. C# can also be used to create tools for specific tasks. Here at MEDtech Ingenieur, we have already developed several tools, for example, for testing or controlling devices, to perform such tasks more efficiently. This blog post explains why the C# programming language is a good choice for tool development and what a standard approach to tool development might look like.

 

Why C#?

    • C# is a modern and widely used programming language that is constantly being developed by Microsoft. Numerous packages and libraries already exist that facilitate programming with C#.

 

    • For most tools, the classic command line isn't sufficient. For C#, graphical user interfaces can easily be created using WPF, Windows Forms, or UWP, which provide all the necessary graphical functionality, such as buttons, sliders, text fields, etc.

 

    • To ensure the functionality of a tool, unit tests can be used to test the individual components of a program. This is particularly useful for applications with many special cases. Several extensions and tools for C# are available to enable detailed testing.

 

  • Instead of constantly handing the tool over to users as an executable or as a folder containing all the necessary files, you can create an installer for your project in just a few clicks using the SetupWizard package in Microsoft Visual Studio in C#. The generated installer installs your tool for your users and creates, for example, a shortcut directly on their desktop.

 

How to create a tool in C#?

Our approach
The following lists and explains the basic steps for successfully programming a tool. These steps can overlap or be repeated multiple times.

For example, it is rare that the first draft of the user interface does not need to be changed or that no further requirements arise during development.

 

Define problem and requirements

First, some questions must be answered that significantly influence the basic building blocks for the rest of the process and the structure of the tool:

    • What is the tool for?

 

    • Who is the end user

 

    • What knowledge does the end user have?

 

    • What kind of user interface should the tool have? Is a command line sufficient, or is a graphical user interface required?

 

  • What should the tool be able to do?
    – What should the user be able to enter?
    – What should be returned/displayed to the user?
    – Are there additional interfaces to other applications or devices?

 

Setting up the architecture

Before you dive into programming, it's a good idea to consider an architecture for the project. This will later serve as a guideline for programming the tool.

    • The architecture defines smaller functional units of your project and their relationships to each other.

 

    • Furthermore, it defines the areas of responsibility of the functional units.

 

    • The architecture is based on the knowledge from the requirements and ensures that the tool can later fulfill all required tasks.

 

  • The interfaces to other functional units such as other applications and devices must be considered and defined in the architecture

 

Creating a first draft of a user interface

    • Creating a user interface provides a first impression of whether the problem has been truly understood. By consulting with the target audience, missing features or confusing or incorrect program flows can be avoided early on.

 

  • In order to achieve a good user experience, it is recommended to test features together with future users after they have been implemented.

 

Programming the tool

    • Programming the functional units defined in the architecture

 

  • Connecting the logic to the user interface

 

Unit testing

    • Unit tests ensure the functionality of individual functional units (classes and methods)

 

  • The architecture should be designed so that functional units can always be tested independently and completely. This facilitates subsequent changes and the interchangeability of individual program sections, as well as providing assurance that a change won't "break" other functions.

 

Creating a Setup.exe

  • For most users, an installer is more convenient than a folder containing an executable. Using the SetupWizard package for C#, you can create an installer in just a few clicks, allowing your users to easily install the tool.

 

Helpful tips:

    • Regular consultation with the end user ensures that misunderstandings are resolved early on and that the user interface is designed to be understandable and user-friendly. For example, sliders or dropdown menus are sometimes more convenient for users than text fields and save time later on when using the tool.

 

  • Documentation and commenting of code
    If it's clear from the outset that the tool will be used for a long time and may need to be adapted later, it's worth creating documentation. This makes it easier for you to navigate the code even after a long time, and other programmers can also familiarize themselves with the code more quickly. Errors in the architecture or programming can also be discovered during documentation.

Written by Alisa Schulz


More articles

  • 26/11/2025
  • General, Hardware, Standards, Quality, Testing

Why EMC testing is vital in medical technology: Imagine a patient is lying in the hospital during critical monitoring. Suddenly, a visitor's smartphone rings – and the monitoring device... ...

Read more
  • 20/11/2025
  • General, Hardware, Quality, Technology, Testing

Have you ever considered sourcing inexpensive components from China? The temptation is strong, we know that. And we've already gained some experience, from which I... ...

Read more
  • 13/11/2025
  • General, manufacturing, production, quality, company

In our globalized world, relocating medical technology manufacturing to the Far East seems attractive at first glance: large production capacities and favorable prices. For many years, offshoring has also been ...

Read more
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.