Senior Fullstack Developer C# Angular

Profil DDO-002 · Deep Data Ocean

Senior-Fullstack-Entwickler mit über 25 Jahren professioneller Softwareentwicklung, davon die letzten 18 Jahre auf dem Microsoft-Stack: C# vom .NET Compact Framework und WPF über ASP.NET Core bis .NET 10, und auf der Webseite von jQuery und Angular.JS bis zu signalbasiertem, zoneless Angular 21 mit Ionic und Tailwind. Entwirft und baut komplette Line-of-Business-Systeme: REST- und OData-APIs mit Entity Framework auf MS SQL Server und Azure SQL, geplante Hintergrundverarbeitung mit Azure Functions und Quartz.NET, HTML-zu-PDF-Dienste in Docker sowie mobile Clients als PWA oder mit Xamarin Forms für Android und iOS. Hat wiederholt bestehende Anwendungen übernommen, stabilisiert und schrittweise neu geschrieben und war mehrere Jahre Lead Developer eines revisionssicheren Dokumentationssystems. Baut neben der Produktarbeit wiederverwendbare Grundlagen, darunter eine eigene Komponenten- und Hilfsbibliothek und einen Codegenerator für Datenmodelle, Controller und Views. Frühere Schwerpunkte in C und XML-Technologien, mit Open-Source-Beiträgen zu den Bibliotheken libxml2 und libxslt, unter anderem zu deren XML-Schema- und XSLT-Prozessoren. Setzt in aktuellen Projekten KI-gestützte Entwicklung mit Claude ein. Deutsch als Muttersprache, Englisch verhandlungssicher.

Jahrgang 1972. Kiel. Deutsch (Muttersprache), Englisch (verhandlungssicher).

Verfügbar ab 15.10.2026 · 100 % Auslastung · remote mit Besuchen vor Ort · Tagessatz auf Anfrage

Technologien

Erfahrung aus den unten aufgeführten Projekten, überlappende Zeiträume einfach gezählt.

TechnologieErfahrung
.NET16 Jahre
C#16 Jahre
SQL10,5 Jahre
Casimodo.Lib9,5 Jahre
REST API9 Jahre
EntityFramework8,5 Jahre
MS SQL Server8 Jahre
HTML7,5 Jahre
JavaScript7,5 Jahre
SCSS7,5 Jahre
TypeScript7,5 Jahre
ASP.NET MVC7 Jahre
Angular6,5 Jahre
ASP.NET6,5 Jahre
OData6 Jahre
XML6 Jahre
.NET Framework6 Jahre
Azure6 Jahre
Limilabs Mail5,5 Jahre
ASP.NET Core5 Jahre
.NET Core5 Jahre
Google Maps5 Jahre
jQuery5 Jahre
Kendo UI5 Jahre
Mojen5 Jahre
WPF5 Jahre
Angular.JS4 Jahre
IIS4 Jahre
Kendo UI for jQuery4 Jahre
Mojen code generator4 Jahre
MS Reporting Services4 Jahre
C3 Jahre
DOM3 Jahre
Python3 Jahre
Windows Forms3 Jahre
XML Schema3 Jahre
XPath3 Jahre
XSLT3 Jahre
DevComponents3 Jahre
Web API2,5 Jahre
WCF2,5 Jahre
Tailwind2 Jahre
TechnologieErfahrung
SQLite1,5 Jahre
Xamarin Forms1,5 Jahre
Entity Framework1,5 Jahre
Prism1,5 Jahre
.NET Compact Framework1 Jahr
Claude1 Jahr
DevExtreme1 Jahr
iBATIS.NET1 Jahr
SOAP1 Jahr
Socket Mobile API1 Jahr
TCP1 Jahr
Win32 API1 Jahr
Ionic1 Jahr
MailKit1 Jahr
Quartz.NET1 Jahr
Serilog1 Jahr
Source Generators1 Jahr
Angular Material1 Jahr
Azure BLOB storage1 Jahr
Azure Functions1 Jahr
Azure SQL1 Jahr
Chromium1 Jahr
Docker1 Jahr
JWT1 Jahr
Playwright1 Jahr
PWA1 Jahr
Silverlight11 Monate
WCF RIA Services11 Monate
DotSpatial7 Monate
Dragon NaturallySpeaking7 Monate
GeoFramework7 Monate
MEF7 Monate
Bootstrap6 Monate
Blazor3 Monate
CSS3 Monate
DevExpress3 Monate
EntityFramework Core3 Monate
PrimeNg3 Monate
SOA3 Monate
Telerik3 Monate
ADO.NET2 Monate
Delphi2 Monate

Projekte

Kunden nennen wir nach Branche, nicht mit Namen.

Entwickler — PEP Profilverwaltung App

10/2025 – 10/2026

Das Unternehmen möchte IT-Projekte für seine Mitarbeiter akquirieren. Die PEP Profilverwaltung ist eine Anwendung zur Erfassung, Verwaltung und zum Export von Mitarbeiterprofilen, die potenziellen Kunden vorgelegt werden. Sie enthält ein Profil-Analysesystem, das die Mitarbeiter auf Inkonsistenzen und mögliche Verbesserungen ihrer Profile hinweist.

Das Frontend der Anwendung wurde mit Angular 21 und TypeScript entwickelt. Die Angular-App ist zoneless (d. h. ohne zone.js) und verwendet ausschließlich Signals für Datenbindung und berechnete Eigenschaften. Ionic diente als primäre Komponentenbibliothek (mit dem Material-Design-Theme); für alle Ionic-Komponenten wurden jedoch Wrapper entwickelt, um einen späteren Technologiewechsel zu erleichtern und das HTML zu vereinfachen. Zusätzlich wurden eigene Controls entwickelt. Eine eigene Implementierung von „Angular Signal Forms“ kam zum Einsatz (da das Original noch im Preview-Status war); sie wurde mit Anthropics Claude entwickelt. Das Styling erfolgte mit SCSS und Tailwind.

Technologien: TypeScript, Angular 21, Ionic, Tailwind, HTML, SCSS, Claude

Entwickler — PEP Profilverwaltung Backend

10/2025 – 10/2026

Das Unternehmen möchte IT-Projekte für seine Mitarbeiter akquirieren. Die PEP Profilverwaltung ist eine Anwendung zur Erfassung, Verwaltung und zum Export von Mitarbeiterprofilen, die potenziellen Kunden vorgelegt werden. Sie enthält ein Profil-Analysesystem, das die Mitarbeiter auf Inkonsistenzen und mögliche Verbesserungen ihrer Profile hinweist.

Das Backend der Anwendung wurde in C# entwickelt. Mit ASP.NET 10 wurden die REST-API-Endpunkte (Web API) implementiert. EntityFramework 10 diente als ORM für den Zugriff auf die MS-SQL-Server-Datenbank; außerdem wurde eine Datenmigration von EF 4.8 auf EF 10 durchgeführt. Mit Source Generators wurde die Codegenerierung für Entity-Metadaten und Kopierfunktionen automatisiert, sodass die Deep-Copy-Funktionalität für Entity-Graphen automatisch aktuell bleibt. Quartz.NET übernahm die Planung von Hintergrundjobs wie E-Mail-Benachrichtigungen auf Basis der Analyseergebnisse oder die Bereinigung veralteter Daten. Serilog wurde für das Logging der gesamten Anwendung eingesetzt, z. B. für Auditing und Crash-Reports in Datenbank, Datei und E-Mail. MailKit wurde für den E-Mail-Versand verwendet.

Technologien: C#, ASP.NET 10, Web API, EntityFramework 10, Source Generators, Quartz.NET, Serilog, MailKit, MS SQL Server, REST API

Entwickler — AIR Reporting App

06/2025 – 10/2026

Das Management benötigt Geschäftsberichte. AIR ist eine interne Anwendung zur Verwaltung und zur Ad-hoc- oder geplanten Ausführung verschiedener Geschäftsberichte, z. B. Finanzberichte oder Stundenzettel der Mitarbeiter. Geschäfts- und Stammdaten können über die Anwendung bearbeitet werden. Die Berichtsdefinitionen sind im Backend fest codiert.

Das Backend der Anwendung ist in C# mit .NET 4.8 geschrieben. Die Kommunikation zwischen Frontend und Backend läuft über eine REST API (ASP.NET 4.8, Web API). Die Daten liegen in mehreren MS-SQL-Server-Datenbanken und werden über iBATIS.NET angesprochen, einen ORM-Mapper, der mit in XML formulierten SQL-Anweisungen arbeitet. Das Frontend ist in Angular 20 und TypeScript geschrieben und stützt sich stark auf die Angular-Komponenten von DevExtreme.
Ich habe die Abhängigkeiten von veralteten Abteilungs-/Team-/Vorgesetzten-/Mitarbeiter-Datenquellen entfernt und ein neues Abteilungs-/Team-/Vorgesetzten-/Mitarbeiter-System implementiert. Neue REST-API-Endpunkte, diverse Geschäftsobjekte, Data-Store-Objekte und SQL-Abfragen wurden ergänzt. Das Laden verschiedener Geschäftsobjekte wurde optimiert (Lazy Loading von Listen auf Eager Loading umgestellt), Performance-Profiling erfolgte mit Visual Studio 2026. Mit Anthropics Claude wurde ein experimenteller iBATIS-Parser (SQL/XML) für eine mögliche Migration auf .NET 10 entwickelt.
Eine neue Auswahl-UI für Vorgesetzte/Teams/Mitarbeiter wurde dem Angular-Frontend in HTML hinzugefügt und mit SCSS gestaltet.

Technologien: C#, ASP.NET 4.8, Web API, SQL, iBATIS.NET, Angular 20, DevExtreme, HTML, SCSS, Claude, REST API, .NET 4.8, TypeScript, MS SQL Server, XML

Entwickler — Außendienst-Auftrags-App (PWA)

04/2023 – 03/2024

Der Kunde benötigt eine mobile PWA für Mitarbeiter, die auf Baustellen Kampfmittel sondieren. Aufträge werden auf die Smartphones geladen, die Ergebnisse der erledigten Aufträge zurückgesendet. Offline-Fähigkeit (lokale Fotodatenbank) ist nötig, damit Aufträge auch in Gebieten ohne Netzabdeckung bearbeitet werden können. Zusätzlich können die Arbeitszeiten der Mitarbeiter erfasst werden.

Die App (PWA – Progressive Web Application) wurde mit Angular 18 und TypeScript nach einem signalbasierten, zoneless Ansatz entwickelt und auf Android- und iOS-Smartphones eingesetzt. Angular Material diente als Grundbaustein, um darauf eigene UI-Komponenten zu kapseln und aufzubauen. Nicht proprietärer Bibliothekscode wanderte anschließend in meine Casimodo.Lib. OData und REST API wurden für die Kommunikation mit dem Backend verwendet. HTML kam für Angulars Templating zum Einsatz, Tailwind und SCSS für das Styling.

Technologien: TypeScript, Angular 18, Casimodo.Lib, Angular Material, OData, Tailwind, HTML, SCSS, PWA

Entwickler — Auftragsplanungsportal – Server

04/2023 – 03/2024

Der Kunde benötigt eine Anwendung zur Planung von Kampfmittelsondierungsaufträgen, die von den Mitarbeitern auf den Baustellen in eine Angular-Smartphone-App geladen werden. Der Status der Kundenaufträge und der zugehörigen Einsätze kann überwacht werden; am Monatsende werden Rechnungen für alle Aufträge als PDF erzeugt. Kunden, Mitarbeiter, Aufträge und weitere für den Arbeitsalltag des Unternehmens nötige Stammdaten werden mit dieser Anwendung verwaltet.

Das Backend der Anwendung wurde in C# mit .NET 8 entwickelt. Mit ASP.NET 8 wurde eine REST API (Web API) implementiert. EntityFramework 8 diente als ORM für den Zugriff auf die Azure-SQL-Datenbank. Ergänzt wurden Azure BLOB Storage für Dateien, JWT-Authentifizierung (parallel zur Basic-Authentifizierung), geplante Verarbeitung (Azure Functions) für Datenbereinigung und BLOB-Verarbeitung, neue REST-API- (Web API) und OData-Endpunkte für den neuen Angular-Portal-Client sowie die Arbeitszeiterfassung der Mitarbeiter. Dazu Bugfixing und Refactoring.

Neu hinzugekommen ist ein HTML-zu-PDF-Konverter als App Service auf Basis von headless Chromium und Playwright; dieser Konverter wurde als Docker-Image ausgeliefert.

Meine Casimodo.Lib wurde für den HTML-zu-PDF-Konverter und allgemeine Funktionalität verwendet.

Technologien: C#, .NET 8, ASP.NET 8, REST API, Web API, Azure SQL, Azure Functions, Casimodo.Lib, Docker, OData, Playwright, Chromium, JWT, EntityFramework 8, Azure BLOB storage

Entwickler — Auftragsplanungsportal – Client

04/2023 – 03/2024

Der Kunde benötigt eine Anwendung zur Planung von Kampfmittelsondierungsaufträgen, die von den Mitarbeitern auf den Baustellen in eine Angular-Smartphone-App geladen werden. Der Status der Kundenaufträge und der zugehörigen Einsätze kann überwacht werden; am Monatsende werden Rechnungen für alle Aufträge als PDF erzeugt. Kunden, Mitarbeiter, Aufträge und weitere für den Arbeitsalltag des Unternehmens nötige Stammdaten werden mit dieser Anwendung verwaltet.

Die Browser-App wurde mit Angular 18 und TypeScript nach einem signalbasierten, zoneless Ansatz entwickelt. Angular Material diente als Grundbaustein, um darauf eigene UI-Komponenten zu kapseln und aufzubauen. Nicht proprietärer Bibliothekscode wanderte anschließend in meine Casimodo.Lib. OData und REST API wurden für die Kommunikation mit dem Backend verwendet. HTML kam für Angulars Templating zum Einsatz, Tailwind und SCSS für das Styling.

Technologien: TypeScript, Angular 18, Casimodo.Lib, OData, Tailwind, HTML, SCSS, Angular Material, REST API

Entwickler — Container-Tracking-App

01/2022 – 12/2022

Eine offline-/onlinefähige mobile Anwendung (Android/iOS) zur Verfolgung von Containern (Material, Bauschutt usw.). Die Container wurden an verschiedenen Stationen der Lieferung per QR-Code gescannt und ihre Position per GPS bestimmt. Ohne Internetverbindung wurden die Daten lokal gespeichert und automatisch gesendet, sobald wieder eine Verbindung bestand.

Die App wurde mit C# und Xamarin Forms implementiert. Die Kommunikation mit dem Backend lief über eine REST API. Daten wurden auf den Smartphones mit EntityFramework und SQLite gespeichert. Die App wurde größtenteils mit der Bibliothek aus Modellen und Komponenten gebaut, die ich zuvor für die Laborbefund-App entwickelt hatte.

Technologien: C#, Xamarin Forms, EntityFramework, REST API

Entwickler — Laborbefund-App

09/2021 – 03/2023

Der Medizinsoftware-Hersteller benötigt eine mobile App (Android/iOS), die medizinische Laborbefunde von Patienten in Text- und Grafikform anzeigt. Die App wird von Ärzten genutzt. Die Laborbefunde können je Labor oder je Patient angezeigt werden.

Die App wurde mit C# und Xamarin Forms implementiert. Die Kommunikation mit dem Backend lief über eine REST API. Daten wurden auf den Smartphones mit EntityFramework und SQLite gespeichert. Außerdem habe ich eine Bibliothek wiederverwendbarer Modelle und eigener UI-Komponenten entwickelt sowie eine Web-UI-Automatisierung und eine Test-Infrastruktur für Xamarin-Forms-Oberflächen geschrieben.

Technologien: C#, Xamarin Forms, REST API, EntityFramework, SQLite

Entwickler (unterstützend) — Anwendung für medizinische Auftragserfassung

06/2021 – 08/2021

Das Produkt des Unternehmens ist eine Anwendung zur Erfassung medizinischer Aufträge durch medizinisches Personal in Arztpraxen und Krankenhäusern. Das Senden und Empfangen von Laboraufträgen und -befunden ist automatisiert. Die Anwendung berechnet außerdem die passenden Behältergrößen für die Aufträge und druckt Etiketten.

Das HTML-Frontend wurde in JavaScript geschrieben und mit Bootstrap 4 und CSS gestaltet. Das Backend wurde mit C# und ASP.NET 4.8 implementiert.
Meine Aufgabe war die Implementierung einer Zwei-Faktor-Authentifizierung, der Filterung der zentralen Auftragsansicht sowie kleinerer UI- (HTML) und JavaScript-Arbeiten.

Technologien: JavaScript, C#, ASP.NET, HTML, CSS, Bootstrap 4

Entwickler — Hafen-Parkplatzkontrolle

06/2020 – 08/2020

Ein Seehafenbetreiber nutzt eine mobile App zur Kontrolle gebuchter Fahrzeuge auf Parkflächen. Die Mitarbeiter wählten im Kalender der App die Kennzeichenliste eines Tages aus und gingen die Parkplätze ab, um zu erfassen, welche Fahrzeuge an diesem Tag tatsächlich vor Ort waren. So ließen sich Falschparker und fehlende Fahrzeuge erkennen.

Die Frontend-App wurde mit TypeScript und Angular 10 implementiert. Die Oberfläche besteht aus HTML und PrimeNg-Komponenten; Bootstrap 4 und SCSS wurden für das Styling verwendet.
Das Backend wurde mit C# und ASP.NET Core implementiert. Die Kommunikation lief hauptsächlich über eine REST API (Web API), daneben über einige OData-Endpunkte. Für das Speichern und Abfragen der Daten in MS SQL Server nutzte das Backend EntityFramework Core.

Technologien: TypeScript, C#, Angular 10, HTML, SCSS, Bootstrap 4, PrimeNg, ASP.NET Core, Web API, OData, MS SQL Server, REST API, EntityFramework Core

Entwickler — Terminal-Operations-App

06/2020 – 08/2020

Ein Seehafenbetreiber nutzt eine App zur Steuerung des Be- und Entladens von Ladeeinheiten auf und von Schiffen. Jeder Mitarbeiter wurde von der App einzeln angewiesen, eine Ladeeinheit von A nach B zu transportieren. Der aktuelle Standort der Ladeeinheiten wurde verfolgt.

Das Frontend der App wurde mit C# und Blazor implementiert (Blazor ist ein Web-Frontend-Framework von Microsoft). Die Blazor-Komponenten wurden in HTML geschrieben. Ich habe DevExpress- und Telerik-Komponenten evaluiert; die Entscheidung fiel schließlich auf die Blazor-Komponenten von DevExpress. Das Styling erfolgte mit Bootstrap 4 und SCSS, die Kommunikation mit dem Backend über eine REST API.

Technologien: C#, Blazor, HTML, SCSS, Bootstrap 4, DevExpress, Telerik, REST API

Entwickler — Projektportal Kampfmittelsondierung

05/2015 – 04/2020

Eine webbasierte LOB-Anwendung, hauptsächlich zur Verwaltung von Projekten und Aufträgen rund um die Kampfmittelsondierung. Sie umfasste eine Einsatzplanung für Mitarbeiter, Auftragsanalyse und Validierung der Auftragsergebnisse, einen vorlagenbasierten Dokument- und E-Mail-Generator, einen HTML-zu-PDF-Dienst und eine To-do-Engine. Außerdem hatte jedes Projekt ein datenbankbasiertes Dateisystem zur Ablage von Dateien, z. B. Bildern von Leitungs- und Wassertrassen oder sonstigen Informationen für die Mitarbeiter.

Das Backend wurde mit C# und .NET Core implementiert. ASP.NET Core diente der Kommunikation über OData, einem standardisierten Weg, eine REST API (Web API) zu bauen und zu nutzen. Die Persistenzschicht bestand aus EntityFramework Core und einer Azure-SQL-Datenbank. Die Azure-Cloud hostete die Web-App und die Azure-SQL-Datenbank; Azure Functions übernahmen geplante Hintergrundjobs (z. B. Datenbereinigung). Mit meiner Casimodo.Lib und meinem Codegenerator Mojen wurden diverse HTML-Views, TypeScript-ViewModels und der Datenkommunikationscode definiert und generiert. Limilabs Mail wurde zum Senden und Empfangen von E-Mails eingesetzt. Google Maps diente der Ermittlung und Anzeige der Einsatzorte der Mitarbeiter sowie zusätzlicher Notfalldaten.

Das Frontend wurde mit HTML und jQuery implementiert. Anfangs in JavaScript, später auf TypeScript migriert. Für Dateneingabe und Dialoge kamen Kendo-UI-Komponenten zum Einsatz, das Styling erfolgte mit SCSS.

Technologien: C#, TypeScript, JavaScript, OData, EntityFramework, Azure, HTML, SCSS, Kendo UI, jQuery, Limilabs Mail, Casimodo.Lib, Mojen, .NET Core, REST API, ASP.NET Core, Google Maps

Entwickler — KamiJob App

05/2015 – 06/2019

Die KamiJob App ist eine mobile Anwendung zur Bearbeitung von Kampfmittelsondierungsaufträgen. Die geplanten Aufträge werden von den Mitarbeitern auf den Baustellen heruntergeladen. Nachdem der Mitarbeiter die Daten ausgefüllt hat, werden die Ergebnisdaten des Auftrags an das Backend des Projektportals zurückgesendet.

Die mobile Anwendung wurde mit JavaScript und Angular.JS implementiert. Für die Kommunikation mit dem Server wurde die OData-REST-API-Technologie verwendet. Für Eingabe und Navigation kamen die Angular.JS-Widgets von Kendo UI zum Einsatz. Mit meiner Casimodo.Lib und meinem Codegenerator Mojen wurden einige HTML-Views und JavaScript-Modelle definiert und generiert, alles andere HTML/JS wurde von Hand geschrieben. SCSS wurde für das Styling verwendet.

Gegen Ende meiner Tätigkeit wurde ein experimenteller Prototyp der App mit TypeScript und Angular 8 begonnen.

Technologien: JavaScript, Angular.JS, OData, REST API, HTML, SCSS, Kendo UI, TypeScript, Angular 8, Casimodo.Lib, Mojen code generator

Autor — Mojen Codegenerator

05/2015 – 06/2019

Codegenerator zur Definition und Generierung von Anwendungsteilen, z. B. Datenentitäten, Datenmodelle, EntityFramework-Modelle, OData-Modelle, OData-Controller, ASP.NET-MVC-Controller und HTML-Views.

Implementiert in C# und .NET. Der Codegenerator erzeugte Code für folgende Technologien: OData (Controller, Queries, Actions, Functions), EntityFramework (Modelle, Entitäten, Context, diverse Funktionalität), HTML, ASP.NET MVC, JavaScript und Kendo UI for jQuery.

Technologien: C#, .NET, OData, EntityFramework, HTML, ASP.NET MVC, JavaScript, Kendo UI for jQuery

Autor — Casimodo.Lib

05/2015 – 06/2019

Während meiner damaligen Tätigkeit habe ich meine eigene Bibliothek geschaffen. Sie enthält abstrakte Basisfunktionalität vor allem für die Arbeit mit .NET im Allgemeinen, EntityFramework, ASP.NET, Kendo UI for jQuery, jQuery, Google Maps und WPF. Darüber hinaus Bausteine für Templating, einfaches Parsing, eigene Autorisierung und webbezogene Aufgaben.

Die Bibliothek wurde in C# und TypeScript geschrieben. Sie stellt Funktionalität für folgende Technologien bereit: .NET, EntityFramework, ASP.NET, Kendo UI for jQuery, jQuery, Google Maps und WPF.

Technologien: C#, TypeScript, EntityFramework, ASP.NET, Kendo UI for jQuery, jQuery, WPF, Google Maps, .NET

Lead Developer — DocSetMinder

04/2011 – 06/2014

DocSetMinder ist ein revisionssicheres Dokumentationssystem. Verschiedene Standards und Normen (z. B. BSI IT-Grundschutz) sind in den Modulen der Anwendung abgebildet. Anwender erfüllen diese Standards und Normen, indem sie die einzelnen Teile der Module ausfüllen. Die Daten werden validiert und können über Trigger überwacht werden, die benutzerdefinierbare Aktionen auslösen.

Verantwortlich für die Übernahme, die schrittweise komplette Neuentwicklung und die Weiterentwicklung aller Aspekte der Anwendung, darunter unter anderem:
– Kern-Domänenmodell, dynamisches und programmierbares Klassen-/Objekt-/Eigenschafts-/Daten-/Attributsystem, Domänenkontext für Datenspeicherung und -abfrage (ähnlich Entity Framework).
– Klassen-/Eigenschafts-/Datendesigner mit Code-Behind, um das Verhalten der entworfenen Klassen, Validierungsregeln usw. zu programmieren.
– Modulsystem
– Implementierung des IT-Grundschutz-Moduls
– Workflow-/Aufgabensystem: eigener Workflow-Server (mit Azure-ähnlichen Worker Roles), Workflow-Definitionen, benutzerdefinierte und System-Aufgaben, daten- und zeitgesteuerte Trigger, Trigger-Sprache, E-Mail-Benachrichtigungen, UI-Designer und -Viewer
– UI: eigenes Framework, ViewModels, Controller, Views, Controls, Infrastruktur, Lokalisierung
– Dokumenteditoren (dynamische Formulare, HTML- und Flowchart-Editoren usw.)
– Navigation über Dokumente und Revisionen, Filterung, Laden bei Bedarf, Visualisierung von Abhängigkeiten
– Rollen-/gruppenbasierte Benutzerverwaltung
– Datensichten/Berechtigungen/Sicherheit
– Datensuche und zugehörige Serverseite
– System zur Darstellung/Transformation von Daten nach HTML, zahlreiche XML-Prozessoren
– Framework/Engines/Strategien für den Dokumentationsexport nach MS Word und HTML
– Framework/Engines/Strategien/UI/Aufgaben für Datenexport und -import
– Schreibgeschützter Web-Client (überwiegend die Serverseite)
– Repositories/DAL/Serialisierung/Verschlüsselung/Entity-Generator/eigenes Mini-ORM/SQL
– Transformation in auswertbare relationale Daten
– Generator für Berichtsdefinitionen und manuelle Berichte (MS Reporting Services)
– Bibliothek, Werkzeuge, technische Untersuchungen und Kundensupport

Implementiert in C#; verwendet wurden .NET Framework 3.5 – 4.0, Windows Forms, DevComponents, MS SQL Server 2005-2011, ASP.NET MVC 3-4, Casimodo.Lib, MS Reporting Services, IIS

Technologien: C#, .NET Framework, Windows Forms, DevComponents, MS SQL Server, ASP.NET MVC, Casimodo.Lib, MS Reporting Services, IIS

Entwickler — Telekommunikations-Reports

01/2011 – 03/2011

Ein Telekommunikationsunternehmen musste alte Daten analysieren, berechnen und visualisieren. Da der Berechnungsteil – das fehlende Bindeglied – längst verloren war, mussten wir die Quelldaten und ihre Ergebnisse analysieren, um den Algorithmus, der die Daten auf die Ergebnisse abbildete, per Reverse Engineering zu rekonstruieren. Das habe ich manuell durchgeführt.

Die Ergebnisdaten wurden mit MS Reporting Services visualisiert. Die Daten lagen in MS SQL Server. Die Abfragealgorithmen wurden in SQL implementiert.

Technologien: MS Reporting Services, SQL, MS SQL Server

Designer & Entwickler — Geo Field Assistant

06/2010 – 12/2010

Geo Field Assistant ist eine mobile (Tablet-PC) und Desktop-Anwendung für geotechnische Baugrunduntersuchungen unter rauen Außenbedingungen. Sie ermöglicht es den Außendienstmitarbeitern, Daten von Bohrungen, Rammsondierungen und Nivellements zu erfassen. Die Ergebnisdaten wurden ans Büro gesendet und dort mit der Desktop-Variante der Anwendung weiterverarbeitet. Etiketten für die Behälter der entnommenen Bodenproben können gedruckt werden. Die Daten ließen sich außerdem nach GeODin (geotechnische Datenverwaltungssoftware) exportieren.

Die gesamte Anwendung wurde in C# geschrieben, von den Eingabeformularen bis zur Datenzugriffsschicht. Als Plattform darunter lieferte .NET 3.5, später 4.0, Laufzeit und Basisklassenbibliothek für die Tablet- und die Desktop-Variante. Die Benutzeroberfläche wurde mit WPF gebaut, dessen eigene Templates und Controls, darunter eine virtuelle Tastatur, die Eingabe auf dem Tablet im Feld ergonomisch machen. Die Persistenz von Projekten, Bohrungen und Sondierungsergebnissen läuft über Entity Framework, das die Domänenobjekte auf die Datenbank abbildet. Alle erfassten Felddaten und die Projektstammdaten liegen in MS SQL Server.

Die einzelnen Module wie Bohrungserfassung, Rammsondierung, Nivellement, GPS, Foto und Etikettendruck werden beim Start von MEF gefunden und zusammengesetzt, sodass jedes unabhängig entwickelt und ausgeliefert werden kann. Innerhalb des Clients liefert Prism die MVVM-Struktur, Regionen und die lose gekoppelte Kommunikation zwischen diesen Modulen. Wiederverwendbare UI- und Datenkomponenten für alle Module stammen aus Casimodo.Lib. Der E-Mail-Hub, der Projekte zwischen Feld und Büro transportiert, ist mit Limilabs Mail implementiert. Druckbare Berichte werden von MS Reporting Services erzeugt, neben den Excel-Exporten. Etiketten wurden mit WPF gestaltet und über .NET gedruckt.

Die vom GPS-Modul erfassten Positionen werden von GeoFramework zwischen Koordinatensystemen umgerechnet. Die Bohrpunkte werden mit DotSpatial auf einer Karte dargestellt und verarbeitet. Für freihändiges Arbeiten vor Ort können Feldbeobachtungen mit Dragon NaturallySpeaking diktiert werden.

Technologien: C#, .NET, WPF, Entity Framework, MS SQL Server, MEF, Prism, Casimodo.Lib, Limilabs Mail, MS Reporting Services, GeoFramework, DotSpatial, Dragon NaturallySpeaking

Designer & Entwickler — UMKS

07/2009 – 05/2010

UMKS ist eine Rich Internet Application zur Verbesserung der internen Kommunikation und Zusammenarbeit in einer großen Organisation. Sie dient als zentrale Plattform, über die Mitarbeiter sich vernetzen, Wissen teilen und auf unternehmensweite Informationen zugreifen. Das System umfasst eine umfangreiche Unternehmens-Wissensdatenbank und visualisiert die Organisationshierarchie, um das Auffinden von Informationen und die Teamkoordination zu erleichtern.

Client- und Serverseite der Anwendung wurden beide in C# geschrieben, sodass Geschäftsregeln und Validierungslogik gemeinsam genutzt werden konnten. Im Browser läuft die reichhaltige Oberfläche mit ihren Wissensdatenbank-Ansichten und dem interaktiven Organigramm auf Silverlight 3. Ihre modulare Struktur, das MVVM-Muster und die lose gekoppelte Navigation zwischen den Modulen bauen auf Prism auf. Der Datenzugriff vom Client erfolgt über WCF RIA Services, die das Domänenmodell samt Abfragen und Validierungsregeln auf die Silverlight-Seite projizieren. Weitere Dienste für Authentifizierung und domänenübergreifende Kommunikation werden über WCF bereitgestellt.

Auf dem Server übernimmt Entity Framework die Persistenz und das objektrelationale Mapping des Domänenmodells. Die Unternehmens-Wissensdatenbank, die Benutzerdaten und die Organisationshierarchie liegen in MS SQL Server. Alle serverseitigen Komponenten laufen auf dem .NET Framework. Die Webdienste und der Silverlight-Client selbst werden von IIS gehostet und an die Benutzer ausgeliefert.

Technologien: C#, Silverlight 3, Prism, WCF RIA Services, WCF, Entity Framework, MS SQL Server, .NET Framework, IIS

Entwickler — App zur Schiffshygiene-Inspektion

11/2008 – 12/2008

Die Anwendung wird von einer hafenärztlichen Dienststelle zur Verwaltung, Inspektion und Zertifizierung der Schiffshygiene eingesetzt. Die Mitarbeiter erfassten mit Windows-Tablet-PCs Daten der Schiffe nach ISO-Vorgaben. Die Ergebnisdaten und die Zertifikate wurden anschließend gedruckt.

Die Anwendung wurde mit C# und dem .NET Framework 2.0 implementiert. Die Oberfläche wurde mit Windows Forms gebaut. Microsofts ADO.NET diente der Speicherung der Daten in einem lokal installierten MS SQL Server 2005.

Technologien: C#, .NET Framework, MS SQL Server, ADO.NET, Windows Forms

Designer & Entwickler — Bank-IT-Helpdesk-Prototyp

06/2008 – 08/2008

Der Bank-IT-Helpdesk ist ein Trouble-Ticket-System für den internen IT-Support eines Bankdienstleisters: Kunden melden Störungen und Anfragen, und das Support-Team verfolgt jedes Ticket von der Aufnahme bis zur Lösung. Tickets werden als Serviceanfragen an das zuständige Team geleitet, sodass jedes Anliegen einen klaren Verantwortlichen hat und sein Status jederzeit sichtbar ist. Die Anwendung entstand als Prototyp, um zu zeigen, was das damals brandneue WPF für eine ergonomische, moderne Desktop-Oberfläche im täglichen Support leisten kann.

Der Prototyp gliedert sich in einen Desktop-Client, einen eigenständigen Service-Host und eine Entitätsschicht, die in diesem Stadium mit Testdaten statt einer Datenbank arbeitet. Client und Service-Host wurden beide in C# geschrieben und teilen sich die Ticket- und Serviceanfrage-Verträge als gemeinsame Assemblies. Als Laufzeit aller drei Teile lieferte das .NET Framework 3.5 die Basisklassenbibliothek samt der damals neuen UI- und Kommunikations-Stacks. Der Desktop-Client wurde mit WPF gebaut und nutzt Datenbindung, Templates und Styles, um Ticketlisten und Detailansichten modern und ergonomisch zu gestalten. Die Kommunikation zwischen Client und Ticketdiensten läuft über WCF, wobei die Ticketoperationen als Service-Verträge bereitstehen, die der Client über generierte Proxys nutzt. Das Gesamtdesign folgt SOA, sodass Ticketaufnahme, Weiterleitung und Statusverfolgung als unabhängige Dienste angeboten werden, die auch andere interne Anwendungen aufrufen können.

Technologien: C#, .NET Framework, WPF, WCF, SOA

Designer & Entwickler — MindPic Mobile, Framework & Server

01/2007 – 05/2008

MindPic Mobile ist eine PocketPC-Anwendung, mit der Außendienstmitarbeiter XML-basierte Formulare herunterladen, ausfüllen, die Daten auf dem Gerät anzeigen und speichern und die Ergebnisse zurücksenden, inklusive Barcode-Scannen mit Socket-Mobile-Scannern. Dahinter steht das MindPic Mobile Framework, ein deklaratives XML-Scripting-Toolkit, mit dem sich neue mobile Formulare und Abläufe schnell und zuverlässig auf der begrenzten Hardware jener Zeit bauen ließen. MindPic Server ist das Gegenstück im Backoffice: ein Webservice-Server, der die Daten der Geräte entgegennimmt und in einer zentralen Datenbank speichert, mit einem Codegenerator, der Server- und Mobile-Geschäftsobjekte synchron hält. Ich habe die ursprüngliche Anwendung übernommen, neu entworfen und schrittweise komplett neu geschrieben sowie Framework und Server von Grund auf entworfen und implementiert.

Das System besteht aus drei Teilen: dem PocketPC-Client, dem mobilen Framework darunter und einem eigenständigen Webservice-Server im Backoffice. Alle drei wurden in C# geschrieben, das ich in genau diesem Projekt bei Übernahme und Neuentwicklung des Clients gelernt habe. Auf dem Gerät laufen Client und Framework auf dem .NET Compact Framework 3.5, dessen Grenzen das Design prägten: Reflection ist dort sehr langsam, daher werden in proprietären Schemata beschriebene Geschäftsentitäten stattdessen in generische, datenbindungsfähige Objekte projiziert. Funktionen, die dem Compact Framework fehlen, etwa Geräte- und Displaysteuerung, wurden direkt über die Win32 API angesprochen. Das Framework selbst ist um XML herum gebaut, mit einer deklarativen, funktionalen Skriptsprache für Validierungsregeln und XSLT-ähnliche Transformationen von Geschäftsobjekten, einer kleinen, für PocketPCs optimierten XML-Datenbank mit XPath-ähnlicher Abfragesprache, geskripteten Hintergrundjobs und WPF-ähnlichen UI-Definitionen mit Datenbindung. Formulardaten werden über einfache TCP-Verbindungen auf das Gerät geladen und von dort hochgeladen. Für Aufrufe an den Server spricht der Client SOAP, das vom Compact Framework von Haus aus unterstützt wird. Serverseitig sind diese Dienste mit WCF als eigenständiger, selbst gehosteter Webservice-Server implementiert. Dieser Server läuft auf dem vollen .NET Framework 3.5 und enthält einen Codegenerator, der mit den Geschäftsobjekt-Schemata des Frameworks gespeist wird, sodass Server- und Mobile-Geschäftsobjekte synchron bleiben. Alle von den Geräten empfangenen Daten werden in MS SQL Server 2008 gespeichert, den das Framework auch über einen eigenen Adapter erreicht. An die PocketPCs angeschlossene Barcode-Scanner werden über die Socket Mobile API angesteuert.

Technologien: C#, .NET Compact Framework, Win32 API, XML, TCP, SOAP, WCF, .NET Framework, MS SQL Server, Socket Mobile API

Designer & Entwickler — MIME-Type-Evaluator

10/2005 – 01/2006

Designer & Entwickler — ExContacts

07/2005 – 07/2005

Entwickler — Xcl2Delphi

04/2005 – 04/2006

Designer & Entwickler — Epsilon

02/2005 – 03/2005

Epsilon ist ein kleiner, XML-skriptgesteuerter Prozessor zur Ausführung externer Anwendungen über Named Pipes. Ein Tray-Icon informiert den Benutzer über drei Positionen im Skript: Initialisierung, Ausführung und Abschluss; gedacht zum bequemen Öffnen/Schließen eines VPN-Tunnels auf Notebooks.

Verantwortlich für Design und Implementierung von Epsilon; Wartung.

Implementiert in Delphi; verwendet wurde XML.

Technologien: Delphi, XML

Entwickler — Lambda

10/2004 – 08/2006

Entwickler — Go.Omega

08/2004 – 11/2004

Designer & Entwickler — Database-Workbench

02/2004 – 05/2004

Designer & Entwickler — Tau

06/2003 – 12/2004

Open-Source-Mitwirkender — Libxml2 und Libxslt

04/2003 – 08/2006

Arbeit an den Open-Source-Bibliotheken Libxml2/Libxslt (www.xmlsoft.org). Anlass war meine Implementierung einer W3C-konformen XML-Verarbeitungssuite in Delphi, die diese Bibliotheken als Unterbau nutzt. Die Mitarbeit in dieser Community hat mir viel Freude gemacht.

Neben diversen Erweiterungen, Korrekturen und Tests waren die Hauptaufgaben:
– Implementierung DOM-basierten Codes für Wrapper.
– Implementierung/Test/Wartung des XML-Schema-Prozessors.
– Refactoring/Optimierung/Korrektur des XSLT-Prozessors.
– Optimierung des XPath-Prozessors

Implementiert in C; verwendet wurden XML und Verwandtes, DOM und Verwandtes, XSLT 1.0/2.0, XPath 1.0, Streaming-XPath, XML Schema, Python (für Tests).

Technologien: C, XML, DOM, XSLT, XPath, XML Schema, Python

Entwickler — Omega

09/2002 – 08/2006

Designer & Entwickler — XML-Skript-Prozessor

09/2002 – 10/2002

Designer & Entwickler — OzXml

07/2002 – 08/2006

Entwickler — Frameworks und Bibliotheken

06/2002 – 12/2004

Designer & Entwickler — XML-Editor

05/2002 – 05/2002

Designer & Entwickler — Audio-CD-Ripper

07/2001 – 08/2001

Entwickler — DECT-Kommunikation

04/2001 – 05/2001

Designer & Entwickler — Elenoah

11/2000 – 03/2002

Designer & Entwickler — Elenoah

05/2000 – 10/2000

Designer & Entwickler — Webauftritt für einen Antiquitätenhändler

01/1998 – 12/1998

Mitarbeit — Eine Finanzanwendung

01/1991 – 12/1991

Passt das Profil zu deinem Projekt?

Schick uns die Anforderung und nenne die Profilnummer DDO-002. Du bekommst eine klare Antwort: ob es passt und ab wann.