Banner Image
Jürgen Bäurle
Start  ·  Projekte  ·  Arbeiten  ·  Blog  ·  Kontakt

Projekte

Diese Projektseite wird derzeit überarbeitet und aktualisiert.

In den vergangenen Jahren habe ich eine ganze Reihe von Anwendungen mit Microsoft-Technologien entworfen und entwickelt. Diese Seite beschreibt einige der interessanteren Projekte, an denen ich gearbeitet habe, und zwar ausschließlich öffentlich verfügbare Arbeiten. Die meisten davon sind für Theobald Software und Peakboard entstanden, zwei Softwarefirmen aus Stuttgart.

Die Peakboard-Plattform, entwickelt von der Peakboard GmbH, bringt Low-Code und KI in Produktion und Logistik. Sie verbindet Echtzeitdaten aus Maschinen, Sensoren und IT-Systemen wie SAP und macht daraus intelligente industrielle Anwendungen auf dem Shopfloor.

Die Theobald Software GmbH entwickelt Schnittstellen, die SAP-Daten für andere Systeme nutzbar machen. Produkte wie Xtract Universal, Xtract IS und ERPConnect bringen SAP-Daten in Datenbanken, BI- und Analyse-Werkzeuge sowie Cloud-Plattformen und werden von Unternehmen weltweit eingesetzt.


Peakboard Plattform heute

2026

Peakboard Designer 2026 Peakboard startete 2015 als Digital-Signage-Werkzeug und ist zu einer Plattform für industrielle Anwendungen gewachsen. Ich bin seit der ersten Zeile Code dabei. Die Anwendungen werden im Designer gebaut, sie laufen auf Bildschirmen, Panels und mobilen Geräten im Shopfloor, und der Peakboard Hub verwaltet Geräte und zentrale Daten. Heute verbindet die Plattform Livedaten aus SAP, Maschinen, Datenbanken und IT-Systemen und macht daraus interaktive Anwendungen.

Die folgenden Einträge beschreiben einige der neueren Plattform-Funktionen, an denen ich gearbeitet habe.

Peakboard Produktseite

Kunde: Peakboard

Technologien: .NET, C#, WPF, Lua Scripting


Peakboard Flows

2024-2025

Peakboard Flows Im Sommer 2024 habe ich mit dem Entwurf und der Umsetzung von Flows begonnen, dem Teil eines Boards, der entscheidet, wann etwas passiert. Ausgeliefert wurde die Funktion 2025. Ein Flow legt fest, welche Datenquelle neu lädt, in welcher Reihenfolge und was danach läuft. Ein Trigger startet den Flow. Er kann periodisch laufen, zu einer festen Uhrzeit, bei einer Datenänderung in einer Liste oder beim Aufruf einer Funktion. Jeder Schritt lädt eine Datenquelle oder einen Dataflow neu, führt eine Funktion aus oder schreibt ein Ergebnis in eine Liste.

Das Modell habe ich bewusst klein gehalten. Ein Schritt, der eine Funktion ausführt, entscheidet über den weiteren Verlauf. Komplexere Logik gehört in eine Funktion, denn dort lässt sie sich testen. Mit Hub Flows braucht ein Flow kein Board mehr. Ein nächtlicher Job, der eine Liste lädt und ein Ergebnis speichert, braucht weder einen Bildschirm noch ein Gerät an der Wand.

Kunde: Peakboard

Technologien: .NET, C#, WPF


Peakboard Building Blocks

2021-2025

Peakboard Building Blocks Ich habe Building Blocks entworfen und gebaut, den visuellen Skript-Editor des Peakboard Designers und einen zweiten Weg, Logik neben Lua zu schreiben. Anwender stecken grafische Blöcke zusammen, und der Editor erzeugt dabei den passenden Lua-Code. Er nutzt dieselbe Skript-Engine und dieselben Ereignisse wie normale Skripte. Lokale Variablen haben Typen, damit der Editor Kombinationen ablehnen kann, die zur Laufzeit fehlschlagen würden.

Es gibt allgemeine Blöcke für Logik, Schleifen, Mathematik, Text, Datum und Farbe. Weitere Blockfamilien kapseln die Peakboard-Datenschicht, zum Beispiel SQL, MQTT, Azure, Hub-Listen, Dataflows, Timer und eigene Funktionen. Die erste Version startete 2021 unter dem Namen Visual Coding und wurde 2022 ausgeliefert. 2025 habe ich den Editor überarbeitet und Kommentare, Blocksuche und weitere Hilfen für Boards mit hunderten Blöcken ergänzt.

Building Blocks Dokumentation (EN)

Kunde: Peakboard

Technologien: .NET, C#, WPF, Lua


Peakboard Extension Kit

2020-2025

Peakboard Extension Kit 2020 habe ich das Peakboard Extension Kit entworfen und entwickelt, ein NuGet-Paket mit einer Handvoll Schnittstellen. Man implementiert eine Schnittstelle, liefert eine DLL aus, und die eigene Datenquelle erscheint im Peakboard Designer neben den eingebauten. Extensions sind fremder Code und laufen deshalb nicht im Runtime-Prozess. Jede Extension läuft in einem eigenen Host-Prozess und spricht über einen IPC-Kanal mit der Runtime. Eine Extension, die Speicher verliert, einen Thread blockiert oder beim Start abstürzt, kann kein Board mitreißen.

Extensions gibt es für Dynamics 365, Microsoft Graph, OData, DB2, MySQL, PostgreSQL, Philips Hue, SICK RFID-Leser und viele weitere. Installiert werden sie über einen Galerie-Dialog im Designer. Das Kit startete auf dem .NET Framework mit Remoting und System.AddIn, 2025 habe ich es auf .NET 8 portiert.

Peakboard.ExtensionKit auf NuGet  ·  Beispiel-Extensions auf GitHub  ·  Peakboard Templates

Kunde: Peakboard

Technologien: .NET, C#, IPC, .NET Remoting


Peakboard Dataflows

2018

Peakboard Dataflows 2018 habe ich Dataflows entwickelt, um Daten aufzubereiten, bevor sie auf den Bildschirm kommen. Ein Dataflow nimmt eine Datenquelle und legt eine geordnete Liste von Schritten darüber. Ein Schritt kann filtern, umbenennen, einen Typ ändern, verknüpfen oder etwas nachschlagen. Heraus kommt eine neue Liste, die sich wie jede andere Datenquelle verhält, und niemand muss dafür eine Zeile Lua schreiben. Eine Vorschau zeigt die Daten so, wie sie nach dem ausgewählten Schritt aussehen, damit die Wirkung jedes Schritts sofort sichtbar ist.

Die Schritte decken Spaltenoperationen, Typänderungen, Filter, Sortierung, Duplikate, Zeilenbereiche, Aggregation, Union und die vier üblichen Join-Arten ab. Am meisten gewünscht wurde die Lookup-Spalte. Eine Maschine meldet eine ID, der lesbare Text liegt woanders, und der Lookup ergänzt ihn. Ein Dataflow kann auch auf einem anderen Dataflow aufbauen, sodass sich eine lange Kette in kleinere Teile zerlegen lässt.

Erste Schritte mit Dataflows (EN)

Kunde: Peakboard

Technologien: .NET, C#, WPF


Peakboard Control Grouping

2018-2024

Peakboard Control Grouping 2018 habe ich die Gruppierung von Controls im Peakboard Designer umgesetzt. Eine Gruppe fasst mehrere Controls auf einem Screen zusammen, sodass sie gemeinsam verschoben, kopiert, fixiert, ein- oder ausgeblendet werden können. Gruppen haben Namen, sie lassen sich verschachteln, und eine Gruppe kann eine bedingte Formatierung bekommen, zum Beispiel um sie bei einem bestimmten Wert auszublenden.

Gruppen stehen auch in Skripten und Building Blocks zur Verfügung. Ein Skript kann eine Gruppe ein- oder ausblenden, sie drucken oder einen Screenshot davon per E-Mail, an OneDrive, an SharePoint oder an den Peakboard Hub senden. 2024 habe ich die Anordnungslogik überarbeitet.

Kunde: Peakboard

Technologien: .NET, C#, WPF


Peakboard Lua Scripting & Script Editor

2016-2024

Peakboard Script Editor Peakboard-Boards werden in Lua skriptet, die Runtime ist eine .NET-Anwendung. 2016 habe ich die Brücke zwischen beiden mit MoonSharp umgesetzt, einem in C# geschriebenen Lua-Interpreter. Skripte laufen im selben Prozess wie die Runtime, ohne native Bibliothek und ohne separaten Prozess. .NET-Objekte werden nicht automatisch freigegeben. Jeder Typ, den ein Skript verwenden darf, bekommt eine Descriptor-Klasse, und jedes Mitglied wird einzeln sichtbar gemacht, damit nichts versehentlich nach außen dringt.

Ein großer Teil der Arbeit steckt in den Konvertierungen zwischen den beiden Typsystemen. Lua kennt einen Zahlentyp, .NET viele, deshalb müssen Sammlungen vereinheitlicht werden. Datenzeilen haben überhaupt keine feste Form, denn ihre Spalten stammen aus der Abfrage, die der Board-Autor geschrieben hat. Eine fehlende Spalte liefert nil, statt das Board anzuhalten. 2024 habe ich diese Skriptschicht überarbeitet.

Peakboard Scripting Dokumentation (EN)

Kunde: Peakboard

Technologien: .NET, C#, Lua, MoonSharp


Peakboard Digital Signage Plattform

2015-2018

Im Herbst 2015 habe ich mit dem Entwurf und der Entwicklung der Peakboard Digital-Signage-Plattform begonnen. Das System besteht aus zwei Teilen: einem WPF-Designer und der Runtime-Anwendung auf Basis der Universal Windows Platform (UWP).

Für die Runtime habe ich einen eigenen Webserver und eine Administrationswebsite entwickelt, um Peakboard-Pakete mit dem Board, allen Screen-Definitionen und Ressourcendateien hochzuladen und zu verwalten. Jedes Board lässt sich direkt aus dem Designer ausrollen.

Mehr Informationen (EN)

Kunde: Theobald Software / Peakboard

Technologien: .NET, C#, UWP, WPF, Lua Scripting


Xtract IS Table Join Query Builder

2015

2015 habe ich einen visuellen Query Builder für Tabellen-Joins als Teil der Produktfamilie Xtract IS entwickelt. Mit der Komponente lassen sich Join-Abfragen grafisch entwerfen: SAP-Tabellen auswählen, Beziehungen definieren, Ausgabefelder und Einschränkungen ergänzen. Dazu gehört ein Kriterien-Designer, mit dem sich die WHERE- und HAVING-Klausel der fertigen Join-Anweisung visuell festlegen lässt.

Auf SAP-Seite habe ich einen eigenen BAPI-Funktionsbaustein (Z_XTRACT_IS_TABLE_JOIN) entwickelt, der die Join-Definition verarbeitet und daraus eine dynamische SAP-Open-SQL-Anweisung erzeugt (INNER und OUTER JOINS).

Mehr Informationen (EN)

Kunde: Theobald Software

Technologien: .NET, C#, WPF, WinForms, SAP, ABAP


ERPConnect Services Core Plattform

2014

2014 habe ich die Arbeit an der ersten Version von ERPConnect Services Core abgeschlossen. ECS Core ist eine serviceorientierte, claims-basierte und cloud-fähige (Azure) Webanwendungsplattform (SOA), die unternehmensweite, SAP-bezogene REST- und OData-Webservices bereitstellt.

Mehr Informationen (EN)

Kunde: Theobald Software

Technologien: .NET, C#, ASP.NET MVC, Web API, ERPConnect, Azure


ERPConnect Services Web Service Designer

2013

2013 habe ich die Anwendung Web Service Designer als Teil der Produktfamilie ERPConnect Services entwickelt, die die komplette Datenintegration zwischen SharePoint und SAP abdeckt.

Der Designer ist ein sehr praktisches Werkzeug, um SOAP- oder OData-Webservices für SharePoint ohne Code zu entwerfen und auszurollen, und zwar über eine Workflow-Designer-Oberfläche. Zusätzlich lassen sich C#-Ausdrücke einsetzen, um jedes Daten-Mapping fein abzustimmen.

Mehr Informationen (EN)

Kunde: Theobald Software

Technologien: .NET, C#, WPF, SharePoint


SAP HTML5 Beispielanwendungen

2012

2012 habe ich zwei HTML5-Beispielanwendungen mit aufwendigen visuellen Effekten erstellt. Die Demos zeigen SAP-Kunden- und Bestandsdaten in Echtzeit. Die Verbindung zwischen SAP und .NET übernimmt die Bibliothek ERPConnect von Theobald Software.

Die folgenden Videos zeigen die verwendeten jQuery-Effekte:
YouTube-Video der Bestandsdemo
YouTube-Video der Kundeninformationsdemo

Mehr Informationen (EN)

Kunde: Theobald Software

Technologien: .NET, C#, ASP.NET MVC, Web API, jQuery, ERPConnect


XQL - Xtract Query Language

2012

Vor einigen Jahren habe ich XQL entwickelt, die Xtract Query Language (XtractQL). Sie wurde inzwischen in verschiedene Theobald-Produkte integriert, um SAP-Geschäftsdaten dynamisch über eine einfache Abfragesprache zu lesen. Die Syntax ist an SQL und SAP-ABAP-Anweisungen angelehnt.

Mehr Informationen (EN)

Kunde: Theobald Software

Technologien: .NET, C#, Compilerbau


BCS Connector für SharePoint

2010

2010 habe ich mit dem Entwurf und der Entwicklung des BCS Connectors für SharePoint begonnen. Die Anwendung ist Bestandteil der Produktfamilie ERPConnect Services und verbindet SharePoint-Listen mit SAP-Objekten oder Tabellen, ganz ohne Programmierkenntnisse.

Mehr Informationen (EN)

Kunde: Theobald Software

Technologien: .NET, C#, WPF, SharePoint


ERPConnect Services für SharePoint

2010

2010 habe ich mit dem Entwurf und der Entwicklung der ERPConnect Services Runtime begonnen, der ersten Komponente der Produktfamilie ERPConnect Services. Das Werkzeug gibt .NET-Entwicklern die Möglichkeit, SharePoint als SAP-Datendrehscheibe zu nutzen.

Ein optionales Plugin für Visual Studio (siehe Screenshot) erlaubt es, SAP-Schnittstellen mit einem grafischen Designer zu entwerfen.

ERPConnect Services Video

ERPConnect Services Produktseite

Kunde: Theobald Software

Technologien: .NET, C#, ASP.NET, Visual Studio Extension, SharePoint


Mindbak - Online Mind Mapping

2010

2010 hatte ich die Gelegenheit, den Prototyp eines Online-Mindmapping-Werkzeugs in Silverlight zu entwickeln. Es ist ein reines Test- und Machbarkeitsprojekt und stellenweise fehlerhaft, die Grundfunktionen laufen aber.

Die Maps lassen sich mit Tastatur und Maus bearbeiten, Themen können per Drag and Drop verschoben werden.

Einfach ausprobieren: Mindbak.com.

Mehr Informationen (EN)

Technologien: .NET, C#, Silverlight


LINQ to SAP für Visual Studio

2008

2008 habe ich LINQ to SAP entwickelt, einen LINQ-Provider für SAP-Datenquellen und ein Visual-Studio-Plugin für ERPConnect, um SAP-Schnittstellen visuell zu entwerfen. Das Plugin bringt einen Designer und einen Codegenerator mit, der die SAP-Zugriffsschicht für C# und VB.NET automatisch erzeugt.

Die SAP-Objekte (BAPI, Tabelle, Query und weitere) werden einfach per Drag and Drop in die Designerfläche gezogen. Komplexe BAPIs lassen sich vereinfachen, sodass im generierten Code nur noch die Elemente übrig bleiben, die tatsächlich gefüllt werden sollen.

Mehr Informationen (EN)

Kunde: Theobald Software

Technologien: .NET, C#, Visual Studio Extension, ERPConnect, DSL Tools (Modeling SDK für Visual Studio)


Stock Quote Add-In für Excel

2007-2018

Vor einigen Jahren gab es von Microsoft das MSN MoneyCentral Stock Quotes Add-In für Excel 2002, ein wirklich praktisches Werkzeug, das dann plötzlich nicht mehr verfügbar war. Mein Stock Quote Add-In für Excel ist der Ersatz dafür. Es baut auf der Excel-DNA-Bibliothek auf und liest Kurs- und Wechselkursdaten über neue Excel-Funktionen ein.

Mehr Informationen (EN)

Technologien: .NET, C#, Office-Entwicklung