Frameworks
Passend zu Ihrer Umgebung, erstellen wir Frameworks, die auf Robustheit und Performance getestet sind.
Für Black- und Whitebox-Tests können optional die benötigten Schnittstellen erstellt und Testcode generiert werden.
Für eine nahtlose Integration in Ihre Entwicklungsumgebung werden auf Wunsch, an den Schnittstellen benötigte Metadaten-Informationen bereitgestellt.
Wollen Sie ein bestehendes Framework - z.B. wegen eines Wechsels Ihrer Basistechnologie - ablösen, unterstützen wir Sie bei der Migration.
Für wiederkehrende Middleware-Funktionalität bieten wir typsichere Basis-Implementierungen.
Komponenten
Wir realisieren Ihre individuellen und spezialisierten Komponenten. Je nach Ihren Gegebenheiten stellen wir Komponenten-Templates genauso wie eine Realisierung als Laufzeit-Services bereit.
Bei generischen Schnittstellen bietet sich der kombinierte Einsatz einer Basisimplementierung und das Erzeugen einer Wrapper-Klasse zu Parametrisierung an.
Schnittstellen für einen integrierten Black- und Whitebox Test werden nach Ihren Anforderungen umgesetzt.
Für eine nahtlose Integration in Ihre Entwicklungsumgebung werden auf Wunsch, Komponenten mit Metadaten-Informationen und den entsprechenden Schnittstellen bereitgestellt.
Generatoren
Sind für Dienste oder Schnittstellen Metadaten zu deren Beschreibung verfügbar, erstellen wir Ihnen für wiederkehrende Nutzungsmuster Code-Generatoren.
Der generierte Code bildet dabei die spezifischen Eigenschaften der Metadaten ab und ist auf die minimal benötigte Funktionalität der Schnittstellen reduziert.
Die Definition des Codegenerators erfolgt typischer Weise auf Basis von xml-Daten und xslt-Scripten. Als reine Textdateien sind diese optimal zur Archivierung mit bestehende/gängigen Revisionstools geeignet und können so gut gemeinsam mit regulären Softwarequelltexten versioniert werden.
Benötigte Metadaten können entweder durch explizite Parametrisierung oder als xml bereitgestellt werden; Metadaten lassen sich auch aus Laufzeitabfragen - z.B. die aktuelle Struktur einer SQL-Tabelle - ermitteln und bereitstellen.
Für eine Integration in Ihre Build-Umgebung stellen wir Ihnen unser .net-basiertes xslt-Frontend sowohl für Windows als auch aktuelle Linux-Distributionen zur Verfügung.
Abhängig vom Typ oder Inhalt von Metadaten können auch Spezialfälle gut abgebildet werden. Neutrale und gemeinsam nutzbare Anteile der Implementierung werden als Basisklassen bereitgestellt.
Die Anforderungen des Datenschutzes an dem Umgang mit sensiblen Daten lassen sich genauso wie ein technisches Rechtemanagement als zusätzliche Metadaten anreichern.
Für Daten mit sensiblen Inhalt kann abhängig vom definierten Rechtemanagement unterschiedlicher Code für Nutzung oder Änderung definiert werden. Für Klassen mit fehlenden Zugriffsrechten entfallen entweder die jeweiligen Methoden und Operationen oder es werden ersatzweise Handler erzeugt, die z.B. automatisch Ihr Monitoring-System triggern.
Für die Integration von externem Code und oder Funktionalität können Template-Klassen und oder Interfaces generiert werden.
Änderungen an externen Nutzungsschnittstellen lassen sich hierdurch ideal an einer Stelle im Generator behandeln. Nach einem Generatorlauf sind die entsprechenden Komponenten vollständig migriert.
Generierter Code kann effizient mit einer durchgehenden Fehlerbehandlung und Code zum Tracen und Loggen versehen werden.
Über frei definierbare "Build"-Switches können unterschiedliche Targets - wie z.B. Debug und Release-Versionen oder unterschiedliche HW-Konfigurationen - gut abgebildet werden.
In der Folge erhalten Sie vollständig getypten Klassen, die Nutzungsfehler bereits zu Compilezeit verhindern. Eine zusätzliche Laufzeitprüfung kann hierdurch auf elementare Eigenschaften reduziert werden.
Wird der generierte Code in einer interpretierten Laufzeitumgebung ausgeführt, können zusätzliche Prüfungen bzgl. Parameter-Typen und Zugriffsrechte zusammen mit einer entsprechenden Fehlerbehandlung transparent generiert werden. Analog zu Build-Switches lässt sich Funktionalitäten durch Runtime-Switches aktivieren bzw. deaktivieren
Je nach Nutzungsszenario werden zusätzlich benötigte Factories zum Erzeugen von Instanzen generiert.
Generierter Code kann mit erweiterten Attributen aus den Metadaten versorgt werden, um so z.B. Intellisense-Features einer IDE nutzen zu können. Dies unterstützt Entwickler erheblich bei der späteren Verwendung und vermeidet Nutzungsfehler.
Der Programmfluss kann im Debugger unmittelbar gut nachvollzogen werden. Laufzeitmessungen sind ohne zusätzliche Auswertung und Interpretation von Zustandsvariablen möglich.
Sämtliche für die Generierung benötigten Bestandteile - wie xslt-scripte und xml-Metadaten - können einheitlich mit den sonstigen Quelltexten über ein reguläres Revisionssystem - wie git oder cvs - verwaltet und versioniert werden.
Für Black- und Whitebox Test können optional die benötigten Schnittstellen und Testcode generiert werden.
Für eine vollständige Integration in Ihr Build-System stellen wir Ihnen unser .net-basierten xslt-Frontend sowohl für Windows als auch für aktuelle Linux-Distributionen zur Verfügung.