Auszug aus den letzten Projekten

DokaCalc

Eine Kalkulation für alle Doka-Standorte – Weltweit

Aufgabenstellung: Erstellung einer Applikation, zur Doka-spezifischen Kalkulation von Angeboten, die alle notwendigen Geschäftsfälle abdeckt. Diese muss in mehreren Sprachen verfügbar sein (auch die entsprechenden Dokumente). Außerdem müssen länderspezifische Besonderheiten berücksichtigt werden. Die Umsetzung erfolgt mit .NET 4.5, das System muss skalierbar sein und die Daten werden zentral am Hauptstandort in einer Oracle-Datenbank (11g) gespeichert und verwaltet.
Umsetzung: Die wichtigsten Punkte hierbei waren der Entwurf einer stabilen, wartbaren und skalierbaren Systemarchitektur, ein relationales Datenbank-Design, das alle notwendigen Eventualitäten abdeckt, und das Entwerfen bzw. Implementieren des Systemgerüsts inklusive der notwendigen Frameworks. Dabei wurden sämtliche Teile der Software nach dem MVVM-Pattern implementiert, da dies, neben der Trennung von Oberfläche und Code, eine gute Test- und Wartbarkeit der Komponenten gewährleistet.
Die Architektur gliedert sich in 3 Hauptkomponenten:
1) Datenbank: Es wurde die bereits im Konzern vorhandene Oracle 11g Datenbank eingesetzt. Über Datenbank-Links wurden auch Schnittstellen zu angrenzenden Systemen geschaffen. Sämtliche Zugriffe, egal ob lesend oder schreibend, werden über Server-Prozesse, den Services, durchgeführt. Die Bewegungsdaten werden außerdem historisiert abgelegt.
2) Services: Aufgrund der optimalen Skalierbarkeit werden die Services im IIS gehostet. Die Services selbst sind in einem Mehrschichtenmodell umgesetzt, was wiederum der Test- und Wartbarkeit dient. Zur Kommunikation mit den Smart-Clients wird WCF mit ProtoBuf (schnellste Methode, da die kleinsten Datenmengen übertragen werden).
3) Smart-Clients: Die Oberfläche des Clients wurde mit WPF umgesetzt. Um eine möglichst intuitive Bedienung zu gewährleisten, ist ein Ribbon zur Anwendung gekommen. Neben der eigentlichen Kalkulation sind viele zusätzliche Funktionen, wie z.B. Datei-Import von bestehender Software, der Export von Aufträgen nach Microsoft Dynamics AX (via Datenbank-Schnittstelle) oder auch ein Single-Sign-On über ActiveDirectory, realisiert worden. Auch auf den Druck wurde besonders Augenmerk gelegt: hier kommt eine komplett neu entwickelte PrintEngine zum Einsatz, die das volldynamische Zusammenstellen von Berichten ermöglicht (sofern die Daten entsprechend vorhanden sind).

DokaCalc - Projektdaten DokaCalc - Stückliste

Programm zum Arbeiten mit temperaturaufzeichnenden Daten-Loggern

Dieses Programm dient zum Steuern und graphischen Auswerten von Daten-Loggern. Die Funktionalität umfasst hierbei: Start (alte Messungen werden gelöscht), Resume (alte Messungen bleiben erhalten), Stop (die aktuelle Messreihe wird gestoppt).Bereits auf dem Logger vorhandene Daten von abgeschlossenen Messungen können graphisch angezeigt werden, wobei die entsprechenden Grenzwerte ebenfalls eingezeichnet werden.
Weiters kann man die Software mittels UDP-Telegrammen fernsteuern.

Die eigentliche Applikation wird dabei in die Symbolleiste minimiert und wird nur in einem Fehlerfall als Fenster angezeigt. Den aktuellen Status kann man über das Icon in der Leiste bzw. über den entsprechenden Tooltip erstehen.

Damit die Funktionalität der Fernsteuerung getestet und dem Kunden präsentiert werden kann, wurde ein entsprechendes Demo-Programm entwickelt.
Bildschirmfoto 2014-01-24 um 15.53.38
projekt0002projekt00001
projekt0003
Icons in der Symbolleiste
Screenshots

Mail-Client zur Integration in WPF-Applikation

Die Aufgabenstellung war, eine Mail-Komponente mit Hilfe von WPF (C#.NET, XAML) zu erstellen, das man in beliebige WPF-Programme einbinden kann. Die Lösung wurde in mehrere Teile gegliedert:

  1. Sendloop: Dieser Teil läuft in nur auf einem Computer und ist für den Mailversand zuständig.
    Möchte jetzt ein Client eine Mail versenden, so wird diese in die Datenbank eingetragen und der Sende-Prozess via UDP-Telegramm benachrichtigt. Daraufhin werden alle zu sendenden Nachrichten (Error Rollup) aus der Datenbank gelesen und versandt. Im Fehlerfall wird die Nachricht in der DB entsprechend markiert.

  2. Oberfläche: Das GUI-Control wird direkt im Client ausgeführt und bietet die graphische Oberfläche zum Lesen, Versenden, Weiterleiten, ...

  3. Business Logic: Dieser Teil beinhaltet die eigentliche Programmlogik. Jeder Befehl von der Oberfläche, wie z.B. ein Tastenclick, löst ein Kommando aus, das in dieser Ebene verarbeitet wird. Rückmeldungen an die Oberfläche erfolgen via Events.

pr01testfinal222
pr03pr04pr05pr06
Screenshots Demo-Programm
Screenshot Administration: