Die Erstellung von Software ist eine schwierige, hochqualifizierte, professionelle Tätigkeit, die bisweilen höhere Mathematik vergleichsweise leicht erscheinen lässt. Sie müssen zuversichtlich sein, dass sie die Leistung erbringen können, insbesondere, wenn sie den Auftrag erhalten, eine Lösung für jemand anderen zu schreiben. Man wird Ihnen nicht dankbar sein, wenn sie es vermasseln, ebenso wenig Sie selbst. Es gibt jedoch viele Möglichkeiten, wie Sie echtes Zuvertrauen in Ihre eigenen Fähigkeiten erlangen können, Automatisierungs- und Integrationslösungen für Impact zu schreiben.
Die nötige Zuversicht
Schulung
Arden bietet Schulungskurse zu den Besonderheiten unserer Automatisierungsschnittstelle und die Entwicklung von Lösungen, die sie dazu befähigen, ihre Gestaltungsmöglichkeiten umzusetzen. Unser eigenes Team an hochqualifizierter und erfahrener Softwareentwickler ist stets bereit, Geheimnisse mit Ihnen zu teilen, Sie zu unterstützen und zu motivieren. Ihr Erfolg ist für uns genauso wichtig wie für Sie.
Sonstige Qualifikationen
Die Autoren benötigen ein generelles Verständnis der Analyse- und Designprozesse bei der Softwareentwicklung, gepaart mit Kenntnis der von ihnen benutzten Technologien und Sprachen. Viele akademische Institutionen und Einrichtungen wie Microsoft bieten Zertifizierungs- Diplomkurse und Schulungen an. Vielleicht haben Sie ja die notwendigen Qualifikationen und übertragbare Kompetenzen.
Professionalität
Wir ermutigen Autoren, die ihren Beruf ernst nehmen wollen, einem Berufsverband wie IEEE Computer Society, Association for Computing Machinery (ACM) oder British Computer Society (BCS) [Gesellschaft für Informatik GI] beizutreten. Solche Verbände verlangen von ihren Mitgliedern, dass sie einem Verhaltenskodex zu Themen wie Vertraulichkeit, Kompetenz, Fairness, Qualität, Verantwortung und Integrität folgen und bieten sowohl Mitgliedern wie auch Arbeitgebern von Mitgliedern Beistand und Schutz.
Fähigkeiten
Autoren brauchen eventuell Branchenkenntnisse und Grundlagen der Mathematik und CAD, um wirksam und effektiv die Funktionen der Automatisierungsschnittstelle zu benutzen.
Spaß haben
Zwar stellt das Schreiben von Lösungen mit unserer Technologie eine Herausforderung dar, es ist jedoch äußerst lohnend und erfüllend. Vergessen Sie nicht, die Erfahrung zu genießen.
Die Schnittstelle
Damit Sie Makros, Scripte und Plugins schreiben können, die unsere Software automatisieren und in anderen Systemen integrieren, bieten wir Ihnen eine Programmierschnittstelle für Ihren Gebrauch.
IML oder COM
Unser erster Versuch an so einer Schnittstelle, Impact Macro Language (IML), war leistungsfähig, aber letztlich durch die damals verfügbaren Technologien begrenzt. Sie wurde von Impact COM und nServer abgelöst, die Microsofts branchenübliche COM-Technologie (Component Object Model) einsetzen. Auch wenn Autoren weiterhin Markos benutzen können, wird IML unsererseits weder unterstützt noch weiterentwickelt. Sie sollten Impact COM und nServer für alle neuen Impact-Automatisierungsprojekte benutzen.
Abstraktion
Impacts COM-Bibliotheken bieten eine Schnittstelle an, über die Sie mit einem Script oder Plugin Zugriff auf Impacts Kernfunktionalität haben. Welche Methoden und Eigenschaften des CAD-Systems über diese Schnittstelle offengelegt werden, ist sorgfältig geplant und kontrolliert. Viele interne Aspekte des CAD-Systems sind nicht offengelegt und werden weiterhin abgeschirmt bleiben. Impacts COM-Bibliotheken sind keine direkte Darstellung von Impacts Interna, sondern abstrahieren sie. Diese Abstraktion macht die Bibliotheken für Sie leichter verständlich und handhabbar, gibt Ihnen jedoch nicht die gleiche Macht und Kontrolle wie unseren eigenen Entwicklern mit direktem Zugriff auf die Interna. Impact ist nicht Open Source. Dies bedeutet zudem zwangsläufig, dass Systeme, die über Impacts COM-Bibliotheken eine Lösung bieten, schwächer sind als ein von unserem eigenen Team in nativem Code geschriebenes System. Für den Weg über die COM-Schnittstelle entstehen Unkosten. Auch wenn es weit unten auf Ihrer Prioritätenliste steht, können wir nicht garantieren, dass die Leistung eines beliebigen Systems mit Impacts COM- und nServer-Funktionalität immer Ihre Erwartungen erfüllen wird. Bitte kontaktieren Sie uns, falls dies für Sie der Fall sein sollte.
Implementierung
Wie bereits besprochen kann die Automatisierung mit Impact in Form eines Makros, eines Scripts oder eine Pluginbibliothek erfolgen. Es ist ebenfalls möglich, eine separate Anwendung oder Script zu erstellen, dass unabhängig von Impact laufen soll. Jede Form hat ihre Vor- und Nachteile. Es liegt an Ihnen, für jede Aufgabe eine Implementierungsform zu wählen.
Makros
Auch wenn Impact Ihnen erlaubt, Makros mit IML zu schreiben, können sie nicht Impact-COM und nServer benutzen; Sie sollten keine neuen Makros schreiben. Sie werden lediglich aus Gründen der Abwärtskompatibilität unterstützt.
Scripte
Mit Impact und nServer können Sie Skripte mit Microsoft Visual Basic Script (VBScript oder VBS) schreiben. Diese Skripte können direkt in das Objekt eingebettet werden, das sie verwendet (z. B. Vorlagen, Textelemente, Auto-Aufgaben, Plugintools oder Menüelemente), sie können aber auch in einer externen Datei gespeichert werden oder, neu in Impact 2014, in Dateien mit Includes. VBScript wird in Windows standardmäßig unterstützt und daher muss nicht zusätzlich auf der Arbeitsstation installiert werden. Eingebettetes VBScript ist nützlich für kleine, einfache Lösungen, zumal keine Dateien verteilt oder an einem Ort abgelegt werden müssen, auf den die Arbeitsstation Zugriff hat. Allerdings kann es schwierig sein, den diese Weise eingebetteten Quellcode zu verwalten und zu bearbeiten, da man dies nur innerhalb der Impact-Umgebung machen kann. Außerdem können Sie aktualisierte Scriptdateien verteilen, ohne die Objekte selbst ändern zu müssen, was vorteilhaft sein kann, wenn Sie die Scripte in einer Testumgebung ändern, bevor Sie die Änderungen an ein aktives oder anderes System verteilen. Scripte sind für Menschen lesbar und einfacher zu erstellen und zu bearbeiten als Pluginbibliotheken und eigenständige Anwendungen. Mit ihnen lassen sich schnell kleine Hilfsprogramme entwickeln, und sie können in Impacts Scripteditor als Prototypen erstellt werden.
Pluginbibliotheken
Anstelle von Scripten können Sie eine Bibliothek in einer beliebigen Sprache schreiben, die COM unterstützt. Eine einzelne Pluginbibliothek kann mehrere Schnittstellen unterstützen, und jede davon kann anstelle eines Skripts in einem Objekt in Impact verwendet werden. Sie sind schwieriger zu entwickeln, doch viel leistungsfähiger. Im Gegensatz zu Makros und Scripten benötigen Sie dazu eine integrierte Entwicklungsumgebung (IDE) wie Microsoft Visual Studio oder Embarcadero RAD Studio, obwohl es eine kostenlose (Express-)Version von Visual Studio mit begrenzter Debugfunktionalität gibt. Sie haben eine größere Sprachauswahl als bei Scripten, darunter VB.Net, C# und C++, sofern sie COM unterstützen. Falls Sie Visual Studio verwenden, haben Sie vollen Zugriff auf das .Net Framework, das Autoren Zugang zu einer Reihe zusätzlicher leistungsstarker Tools bietet. Bibliotheken müssen kompiliert werden, wodurch Binärdateien (.dll oder .tlb) entstehen, die für den Menschen nicht lesbar sind. Dies ist jedoch oft wünschenswert, da es die Laufzeitleistung verbessert und den Code verschleiern kann (siehe Schutz Ihres geistigen Eigentums). Diese Bibliotheken müssen dann auf jeder Impact-Arbeitsstation installiert und registriert werden, so dass Sie möglicherweise auch ein Installationsprogramm erstellen müssen, falls sie verteilt werden sollen. Idealerweise verlangen solche Installationsprogramme nicht, dass die Bibliothek für alle Benutzer dieser Arbeitsstation installiert wird, da dies normalerweise Administratorenrechte erfordert. Sie können eine Bibliothek nicht neu kompilieren, wenn Impact sie bereits geladen hat, was Entwicklungstests erschweren kann, weil Impact jedes Mal neu gestartet werden muss, wenn Sie den Code ändern.
Eigenständige Anwendungen
Sie können auch eine eigenständige Anwendung schreiben, die völlig unabhängig von Impact ist, aber weiterhin Impact COM und nServer nutzt. Sie sind im Vergleich zu Pluginbibliotheken viel stärker beschränkt, weil sie nicht von Objekten in Impact benutzt werden können; sie können nur neben Impact laufen. Es wird nicht empfohlen, dass Autoren eigenständige Anwendungen erstellen, die mit Impact selbst interagieren müssen. Obwohl sie etwas einfacher zu entwickeln sind als Pluginbibliotheken, benötigen sie immer noch eine IDE, müssen sie immer noch in Binärdateien (.exe) kompiliert werden, die nicht für Menschen lesbar sind, und immer noch installiert werden.
Innovation
Wie alle anderen erfolgreichen, aktuellen Softwareprodukte wird auch Impact kontinuierlich weiterentwickelt, erweitert und verbessert. Wir setzen auf Innovation. Die Interna des CAD-Systems bilden dabei keine Ausnahme. Dies ist ein wichtiger Grund dafür, dass Impacts COM-Bibliotheken eher eine Abstraktion als eine direkte Schnittstelle sind; andernfalls würde sich die Schnittstelle zu regelmäßig ändern, und die Autoren müssten ihre Scripte und Anwendungen ständig neu entwerfen oder umschreiben, um Schritt zu halten. Zu Ihrem Vorteil versuchen wir unser Bestes, um die Funktionalität der Impact COM- und nServer-Schnittstelle zwischen den einzelnen Produktversionen zu bewahren und sie nur zu ergänzen, anstatt bestehende Methoden und Eigenschaften zu ändern. Glücklicherweise ist es weniger wahrscheinlich, dass sich Funktionen auf niederer Ebene wie Zeichnungsstruktur und -durchlauf im Laufe der Zeit erheblich ändern als Funktionen auf höherer Ebene wie Impacts Benutzeroberfläche. Es ist für uns schwierig, Funktionen, die sich im Umbruch befinden, über COM offenzulegen und gleichzeitig die Schnittstelle zwischen den Versionen zu bewahren. Daher haben wir uns entschieden, solche hochrangigen Funktionen nicht über COM verfügbar zu machen oder sie nur mit sehr geringer Granularität bereitzustellen. Der Autor sollte sich nicht eingeschränkt fühlen, was mit Impacts COM-Schnittstelle erreicht werden kann. Er kann beliebigen Code schreiben oder sogar APIs von Drittanbietern verwenden, um Dinge zu erreichen, welche Impacts COM-Schnittstelle derzeit nicht direkt unterstützt. Wir können nicht garantieren, dass die Funktionen von Impact COM und nServer auch in Zukunft unverändert bleiben. So wie technologische Fortschritte dazu geführt haben, dass IML überholt ist, könnte dies auch bei COM der Fall sein. Dies liegt außerhalb der Kontrolle von Arden. Die Autoren sind dafür verantwortlich, ihre Systeme auch mit zukünftigen Änderungen kompatibel sind.
Prüfung
Wir haben uneingeschränkten Zugriff auf unsere eigenen Systeme und investieren viel Aufwand in die umfassende Prüfung aller unserer Softwareprodukte vor der Veröffentlichung. Sollte nach der Veröffentlichung ein Fehler oder Problem auftreten, was bei allen Softwareprodukten von Zeit zu Zeit unvermeidlich ist, können wir die Probleme intern effizient untersuchen und beheben, wobei wir die Auswirkungen etwaiger Änderungen auf andere Teile des Systems umfassend berücksichtigen, da uns der gesamten Quellcode und die gesamte Dokumentation zur Verfügung stehen. Wir sind bestrebt, für alle unsere Softwareprodukte einen hochwertigen Wartungs- und Supportservice anzubieten. Leider können wir diese Garantie nicht für von Ihnen geschriebene Software übernehmen. Wir können den von Ihnen geschriebenen Code, auf den wir keinen Zugriff haben oder dessen Existenz wir nicht einmal kennen, nicht mit jeder Version der von uns veröffentlichten Software testen. Die Verantwortung für das Testen und die Wartung von Quellcode, der Impacts COM- und nServer-Schnittstelle mit jeder Version verwendet, muss beim Autor liegen. Alle Fehler, die ausschließlich in Ihrem Code vorhanden sind, müssen von Ihnen behoben werden. Wir bemühen uns zwar stets, alle Fehler in unserem Code schnellstmöglich zu beheben, aber wenn sich solche Fehler nur über Ihren Code reproduzieren lassen, kann es schwierig sein, die Fehlerquelle genau zu bestimmen, insbesondere ohne die volle Zusammenarbeit und Unterstützung des Autors. Dies kann ein Problem sein, wenn der Quellcode wirtschaftlich vertraulich ist. Arden kann seinen Kunden versichern, dass es stets in ihrem besten Interesse handeln und solche Informationen niemals an Dritte weitergeben wird.
Harte Arbeit bewahren
Der Quellcode von Impact und die dazugehörige technische Designdokumentation nach Industriestandard werden intern für die Gegenwart und Zukunft sicher gespeichert. Sollte uns, entweder als Einzelpersonen oder als Unternehmen insgesamt, ein Unglück widerfahren, gibt es andere, die den Quellcode retten und mithilfe der Dokumentation, die ihnen das Verständnis erleichtert, unsere Kunden auch in Zukunft bedienen können. Als Autor des Quellcode gilt für Sie dasselbe Prinzip. Es liegt in Ihrer Verantwortung dafür zu sorgen, dass Ihre Arbeit für die Zukunft erhalten bleibt.
Sicherungskopien
Erstellen Sie regelmäßig Backups Ihres Codes. Es kann verheerend sein, wenn Sie Ihre Arbeit aufgrund eines Hardwarefehlers oder eines anderen Ereignisses außerhalb Ihrer Kontrolle verlieren. Erwägen Sie, ein Tool zur Quellcodeverwaltung zu benutzen, mit dem Sie auch Änderungen an Ihrem Code verfolgen können, und nehmen organisatorische Änderungen vor, welche die Wiederverwendung von für verschiedene Zwecke geschriebenen Code vereinfachen.
Dokumentation and Codekommentare
Es ist für andere Personen sehr schwierig, Quellcode zu verstehen, der keine zugehörige Dokumentation hat oder sogar ohne Kommentare im Code ist, wenn sie ihn nicht selbst geschrieben haben. Ohne Verständnis ist keine Wartung möglich. Wenn Sie als Autor beauftragt werden, eine Lösung für jemand anderen zu liefern, ist es unprofessionell, einfach nur eine Lösung zu liefern, ohne zu berücksichtigen, wie das Geschäft dieses Kunden gefährdet werden könnte, wenn Sie nicht verfügbar sind, um sie jetzt und in Zukunft für ihn zu warten, so verlockend es auch sein mag, ihn mit Ihren Dienstleistungen einfach an sich zu binden. Liefern Sie keine Lösung, die nur jetzt funktioniert, aber eventuell nicht mehr in Zukunft. Liefern Sie Quellcode und Dokumentation. In der Regel werden Ihre Kunden Ihnen dafür dankbar sein und Sie eher wieder beauftragen. Selbst wenn es Ihnen egal ist, ob andere Ihren Code verstehen, werden Sie in sechs Monaten sogar Ihren eigenen Code ohne Dokumentation nur schwer wiedererkennen und verstehen können, es sei denn, Sie haben ein fotografisches Gedächtnis! Es wird sein, als hätte jemand anderes ihn geschrieben.
Hinterlegung
Falls Sie einem Kunden weder Quellcode noch Dokumentation zur Verfügung stellen möchten, können Sie die Dienste eines Dritten in Anspruch nehmen, der die Informationen in Ihrem Namen verwahrt.
Schutz geistigen Eigentums
Ein Autor kann Maßnahmen ergreifen, um sein geistiges Eigentum zu schützen.
Codesicherheit
Autoren möchten möglicherweise ihren Code so sichern, dass er nur innerhalb ihrer Organisation oder mit ihrer Genehmigung verwendet werden kann. Skripte sind für Menschen lesbare Textdateien und können daher leicht geändert und somit auch missbraucht werden. Plugin-Bibliotheken und eigenständige Anwendungen sind hingegen kompilierte Binärdateien und daher sicherer, aber dennoch Dateien, die kopiert und wiederverwendet werden können. Es obliegt dem Autor selbst, alle von ihm als notwendig betrachtete Sicherheitsvorkehrungen zu treffen, um das geistige Eigentum seines Unternehmens zu schützen. Dafür gibt es viele Möglichkeiten. Die einfachste besteht darin, dass die Pluginbibliothek oder Anwendung die Impact-Lizenznummer für die Arbeitsstation oder Organisation abruft und diese mit einer Liste genehmigter Lizenzen zum Schutz vor unbefugter Benutzung abgleicht. Wenn der Autor seine Plugins an Dritte vertreiben und verkaufen möchte, kann Arden Software ihn durch die Verwendung von „Bibliotheksobjekten” unterstützen, die den Zugriff auf die Pluginbibliothek für Impacts weltweiten Kundenstamm kontrollieren. Darüber hinaus sollte der Entwickler Binärdateien vor Reverse Engineering durch Debuggingtools von Drittanbietern schützen. Für .Net-Anwendungen stehen hierfür mehrere beliebte Verschleierungstools zur Verfügung.
Beispiele
Das folgende einfache VBScript-Beispiel veranschaulicht, wie einfach es ist, die Lizenzinformationen aus Impact abzurufen.
Lizenznummer abrufen
licenceNumber = Impact.System.Licence.Id
Beachten Sie, dass die Nummer für die Arbeitsstation, den Standort oder Ihre Organisation eindeutig ist, je nachdem, welche Option Sie bei der Bestellung der Lizenzen ausgewählt haben.
Bibliotheksobjektsuche
‘ Das ist der Name des gesuchten Bibliotheksobjekts,
‘ das von Arden für Ihre Anwendung bereitgestellt wird.
name = “Mega Corp\Plug-ins\Mega Plugin 1”
‘ Bibliotheksobjekt suchen
Set libraryObject = Impact.System.Licence.LibraryObjects.Item( name )
If libraryObject Is Nothing Then
‘ Diese Impact-Lizenz enthält nicht das angegebene Element,
‘ sagen Sie dem Benutzer, er soll die Anwendung beenden
Else
‘ Die Lizenz ist gültig, fahren Sie fort …
End If
Bevor Sie Ihre Produkte vertreiben
Es ist relativ einfach, einen Quellcode zu schreiben, der das macht, was Sie wollen. Auf Ihrem Rechner. Mit einer bestimmten Zeichnung. An einem Freitag. Mit Rückenwind. Es dauert jedoch viel länger, darauf aufzubauen, diesen Quellcode zu optimieren und eine Lösung zu entwickeln, die in genügend verschiedenen Szenarien zuverlässig genug funktioniert und als „fertig“ gelten kann (natürlich ist keine Software jemals fertig) oder zumindest zweckmäßig und vertriebsfähig ist. Dieser Prozess dauert immer länger, als man denkt.
Robustheit
Der von Ihnen geschriebene Code sollte robust sein, d. h. er sollte keine Annahmen über das Ergebnis einer einzelnen Operation oder eines einzelnen Funktionsaufrufs treffen. Überprüfen Sie jedes Ergebnis und generieren Sie Fehlermeldungen (in der COM-Bibliothek gibt es Funktionen, um diese in Impacts Fehlersuchprotokoll zu schreiben, was sehr nützlich ist), die Ihnen bei der Behebung von Problemen helfen, die auftreten können und werden. Testen Sie Ihre Lösung mit vielen Beispielen, vielen realistischen Fällen und vielen ungewöhnlichen Fällen. Der Großteil Ihrer Zeit beim Erstellen von Quellcode dient dem Testen und nicht dem Tippen.
Zielgruppe
Impact und nServer bieten eine Vielzahl unterschiedlicher Konfigurationsoptionen, sodass keine zwei Impact-Arbeitsstation gleich sind. Falls Sie Code speziell für ein Unternehmen schreiben, ist es verlockend, Zeit zu sparen, indem Sie nur für dieses Unternehmen relevante Optionen berücksichtigen. Dies kann problematisch werden, wenn das Unternehmen diese Optionen irgendwann in der Zukunft ändern möchte, aber vielleicht kommen Sie auch ungeschoren davon. Wenn Sie jedoch Ihre Lösung vertreiben möchten, werden Sie damit sicherlich nicht durchkommen. Anbei ein paar der vielen zu berücksichtigenden Dinge:
- Funktioniert Ihre Lösung mit verschiedenen Datenbanken (Oracle, SQL Server …)?
- Funktioniert Ihre Lösung mit verschiedenen Sprachen (Englisch, Deutsch ...)?
- Funktioniert Ihre Lösung mit verschiedenen Lokalisierungseinstellungen (metrisch, englisch ...)?
- Funktioniert Ihre Lösung mit verschiedenen Darstellungseinstellungen (Farben, Sichtbarkeit ...)?
- Funktioniert Ihre Lösung mit verschiedenen Benutzern (Berechtigungen, Standorte ...)?
Ihre Produkte vertreiben
Freigabe
Ein wichtiger Grundsatz der Softwareentwicklung lautet, niemals Code zu schreiben, den bereits jemand anderes geschrieben hat. Warum sollten Sie Ihre Zeit verschwenden, wenn es effizienter (und günstiger!) ist, den vorhandenen Code zu verwenden (oder zu kaufen)? Um dies zu tun, müssen Sie natürlich wissen, dass jemand anderes bereits Code geschrieben hat, der Ihre Anforderungen erfüllt. Auch wenn Autoren ihr geistiges Eigentum und die Details einer von ihnen entwickelten Lösung schützen möchten, ist es selten, dass die Existenz einer solchen Lösung ein Geschäftsgeheimnis sein muss. Sie können zu Recht damit prahlen. Wir sind sehr daran interessiert, von Ihren Lösungen zu erfahren. Mit Ihrer Erlaubnis können wir Ihnen sogar dabei helfen, sie als Produkte zu vermarkten.
Impact Auto-Plugins
Neu in Impact 2014 sind die Impact Auto-Plugins (IAP), mit denen Autoren einfach, bequem und effektiv Pakete mit Automatisierungsfunktionen an andere Impact-Benutzer verteilen können. Diese Benutzer profitieren von der nahtlosen Integration dieser Automatisierungsfunktionen in ihre normale Impact-Installation, Umgebung und Formatierungseinstellungen. Es wird erwartet, dass dies Autoren dazu ermutigt, ihre IAPs zu teilen, zu tauschen und zu vermarkten und einen größeren Markt für Impact-Softwarelösungen von Drittanbietern etablieren wird.
Fazit
Unternehmen akzeptieren keinen einheitlichen Ansatz für ihre benötigte Software. Mit Impacts Automatisierung können Autoren unsere Software auf eine Weise anpassen, integrieren und erweitern, die selbst wir uns nicht vorstellen können, um sich selbst oder ihren Kunden einen echten Wettbewerbsvorteil auf dem Markt zu verschaffen. Wir helfen Ihnen dabei.