Werkzeug zur updatefähigen Anpassung von Standardsoftware
Solange schon Standardsoftware entwickelt wird, stehen Anwender, Administratoren und Consultants sowie die Software Hersteller vor der gleichen Aufgabe: Die Software soll alle benötigten Funktionen bieten, zusätzlich soll jedoch die Bedienung leicht und intuitiv von der Hand gehen.
Auch wenn dies logisch und nicht weiter problematisch erscheint, ergibt sich doch ganz automatisch das Problem, dass man gerade bei Business Anwendungen eine Aufgabe auf verschiedene Weise lösen kann. Und es zeigt sich, dass jedes Unternehmen, welches Business Software zu seiner eigenen Organisation nutzt, die Dinge im Detail auf seine Weise regelt und meistens sogar davon ausgeht, dass dies doch logisch sei und andere das auch so tun müssten.
Und genau wie jedes erfolgreiche Unternehmen seine Produkte eben mit dem „kleinen Unterschied“ produziert, so sind auch die Prozesse immer ein Stück individuell.
Dies ist eine wichtige Ursache dafür, dass fast jedes erfolgreiche Unternehmen mit einer speziell auf seine Anforderungen und Vorgehensweisen angepassten Software arbeiten müsste. Leider ist dies in fast allen Fällen zu teuer und in der Umsetzung zu langwierig. Außerdem gibt es neben den spezifischen eine große Zahl allgemeiner Prozesse, die eine Standardsoftware gut abbildet und bei denen man sich an der Art und Weise, wie die jeweilige Software arbeitet, orientieren kann, ohne dabei an Effizienz zu verlieren.
Aus diesem Grund ist eine Anpassung der Standardsoftware fast immer der Königsweg. So muss man sich nicht um die Dinge kümmern, die sowieso klar sind und auch nicht viel Geld dafür ausgeben, um das Rad immer wieder neu zu erfinden. Man kann sich vielmehr darauf konzentrieren, die wichtigen Anpassungen an der Software durchzuführen, die zu einer echten Verbesserung der Produktivität oder Qualität der Daten führen.
An dieser Stelle bietet der iCustomizer der nGroup ein universell geeignetes Werkzeug, um solche Anpassungen an einer vorhandenen Standardsoftware einfach und vor allem updatefähig vorzunehmen.
Funktionsweise für Anwender
Der iCustomizer ist im Hintergrund eines laufenden Programms aktiv und sorgt dafür, dass alle Anpassungen, die zur Laufzeit des Programms von einem Administrator gemacht wurden, an den richtigen Stellen arbeiten und dass das Programm sich dabei so verhält, als sei die Erweiterung eine Standardfunktion.
Somit ist für den Anwender nicht erkennbar, ob das Programm gerade eine Standardfunktion ausführt oder eine per iCustomizer definierte Zusatzfunktion. Da der iCustomizer alle vorhandenen Funktionen einer Software nutzen kann, gibt es praktisch keine Einschränkungen bei der Erweiterbarkeit einer Software.
Abbildung 1: Autorenmodus des iCustomizers
Funktionsweise für Administratoren oder Consultants
Ein Administrator oder Consultant startet den Autorenmodus des iCustomizers üblicherweise über eine frei definierbare Tastenkombination wie zum Beispiel STRG + F8. Dies kann in jedem Fenster oder Dialog der Anwendung geschehen, da sich die grafischen Anpassungen gemäß der Architektur des iCustomizers immer auf ein Fenster oder einen Dialog beziehen. Da im Autorenmodus drei zusätzliche Fenster auf dem Bildschirm erscheinen, empfiehlt sich für solche Arbeiten ein Bildschirm mit einer hohen Auflösung.
Das wichtigste Fenster ist normalerweise oben links positioniert, es handelt sich dabei um das Eigenschaftenfenster, das immer passend zum gerade im Anwendungsfenster selektierten Steuer-element dessen Eigenschaften und Ereignisse anzeigt.
So wie der Programmierer normalerweise in seiner Entwicklungsumgebung die Software programmiert und die Eigenschaften der visuellen Controls verändern kann, kann dies der Administrator nun ebenfalls tun. Dabei können ihm durch den Programmierer durchaus Grenzen gesetzt werden, damit keine vitalen Eigenschaften eines Controls verändert werden können, um die Gesamtfunktionalität der Software nicht zu gefährden. Interessant dabei ist, dass auch Eigenschaften von sogenannten Third-Party-Controls verändert werden können.
Neben den Möglichkeiten der Veränderung können auch neue Controls hinzugefügt werden. Das Fenster links unten zeigt die Liste der zur Verfügung stehenden Controls an, die wiederum vom Programmierer entsprechend vorgegeben oder eingeschränkt werden kann.
Auf diese Weise kann man die Fenster des Programms einfach um beispielsweise neue Datenfelder, Tabellenspalten, Buttons, Checkboxen oder Comboboxen erweitern.
Neben der Möglichkeit, die Attribute der Controls zu erweitern, können auch die Ereignisse der Controls genutzt werden, um auf Benutzeraktionen wie „Mouse Over“ oder „Lost Focus“ zu reagieren.
Im eingebauten Programmcode Editor kann der für das jeweilige Ereignis notwendige Programmcode inkl. IntelliSense einfach direkt eingegeben werden.
Ist man mit der Anpassung eines Bildschirms fertig und klickt auf Speichern, werden sämtliche Änderungen in eine XML-Datei gespeichert, die in einem konfigurierbaren Pfad beispielsweise im Benutzerprofil abgelegt wird. Die Anpassungen sind sofort aktiv.
Beim nächsten Öffnen des angepassten Fensters wird die XML-Datei mit den Anpassungen gelesen und die Modifikationen vor der Anzeige des Fensters vorgenommen, so als wäre die Software schon immer so gewesen.
Die XML-Dateien mit den Anpassungen lassen sich durch Kopieren auch auf andere Installationen anwenden oder auf andere Benutzer übertragen. Auf diese Weise ist ein einfaches Deployment der Anpassungen möglich, sei es, um von einer Testumgebung die Anpassungen auf das Produktivsystem zu übertragen oder um bestimmte Verhaltensweisen der angepassten Software anderen Mitarbeitern oder sogar global zur Verfügung zu stellen.
Es werden keine Modifikationen am Standard-Programm durchgeführt, was bedeutet, dass die Updatefähigkeit uneingeschränkt erhalten bleibt, so lange sich die grundlegende Struktur der Software nicht ändert.
Abbildung 2: Skript-Editor mit IntelliSense
Funktionsweise für Programmierer
Der iCustomizer wird über einige wenige Zeilen Programmcode in das bestehende Programm integriert. Als Programmierer hat man Einfluss darauf, welche Controls und welche Eigenschaften eines Controls einem Autor zur Änderung zur Verfügung gestellt werden.
Normalerweise wird der iCustomizer an eine Form angehängt, indem in einer Basisklasse die Methode OnHandleCreated() überschrieben wird. Damit werden die Änderungen im Lebenszyklus einer Form angewendet, nachdem der Konstruktor der Form inklusive des durch den Visual Studio Designer erzeugten Codes in InitializeComponent() durchlaufen, aber bevor weiterer Code der Geschäftslogik ausgeführt wurde.
So lässt sich ein Customizing als Erweiterung des Visual Studio Designprozesses verstehen, die aber nicht den eigentlichen Kerncode der Anwendung im Sinne der Geschäftslogik beeinflusst. Allerdings lassen sich auch hierfür gezielt Einstiegspunkte schaffen, indem entweder die vorhandenen Events der Form und ihrer Controls genutzt oder durch den Entwickler neue Ereignisse programmiert werden, die sich direkt auf die Geschäftslogik beziehen können und im Scripting des iCustomizers konsumiert und behandelt werden. Beispielsweise kann dafür gesorgt werden, dass ein Datenfeld entgegen der normalen Programmierung unsichtbar bleibt, indem es in Control.VisibleChanged immer wieder auf unsichtbar gesetzt wird. Oder ein Formular kann um die Ereignisse Before_StockBooking und After_StockBooking erweitert werden, um aus dem iCustomizer heraus direkten Einfluss auf einen Lagerbuchungsprozess nehmen zu können.
In einem Customizing wird lediglich das Delta zu dem Zustand einer frisch erzeugten Form sowie der Code zur Ereignisbehandlung abgelegt. Da hierbei ein XML-Format verwendet wird, bleiben die erfolgten Änderungen für einen Entwickler auch bei einem direkten Blick in die Customizing-Datei lesbar und verständlich.
Auch wenn das Scripting bereits ein mächtiges Werkzeug darstellt ist der Programmierer nicht lediglich auf den Einsatz von Scripting-Code beschränkt. Durch die Möglichkeit, im Scripting selbst Assemblies dynamisch zu laden und Funktionalitäten daraus zu nutzen, lassen sich auch kundenspezifische Erweiterungen höherer Komplexität auf diese Art und Weise lose gekoppelt einfach in der vertrauten Entwicklungsumgebung realisieren. Die Software kann wunschgemäß angepasst werden, ohne dabei die Releasefähigkeit zu verlieren.
Fazit
Der iCustomizer der nGroup ist ein einzigartiges Tool, welches den Wert einer Standardsoftware auf einfache Weise deutlich erhöht und eine hohe Akzeptanz bei Endanwendern erzielt. Gerade die Tatsache, dass in der Vergangenheit bei Updates einer angepassten Software jedes Mal aufs Neue hohe Kosten entstanden, hat das Vertrauen der Endanwender in die IT getrübt und zur Zurückhaltung bei Updates geführt, selbst wenn diese eigentlich notwendig waren und viele Vorteile gebracht hätten.
Dieses Problem gehört durch den Einsatz des iCustomizers zur Vergangenheit, überzeugen Sie sich selbst davon.
Auf einen Blick
• Unbeschränkte Möglichkeiten zur Anpassung von Software an eigene Bedürfnisse
• Erweiterung der Funktionen des Herstellers durch den Anwender und/oder Berater
• Nutzung der Anpassungen auch nach Update der Software
• Sofort einsatzbereit für alle .NET Softwarelösungen
Voraussetzungen
Einsetzbar in Software, die in .NET-Technologie in C# entwickelt wurde, ab .NET-Version 2.0
Datenblatt zum Downloaden
|