EDD9ADFBC6E745A6AD7251F8A545020A
  • Thomas Pollinger
  • 18.04.2019
  • DE

SmartExtensions: Einstieg

Im letzten Artikel SmartExtensions: Das neue OWUG Plug-In Framework wurde erstmal nur allgemein über das neue Framework berichtet. Der nun folgende Artikel beschäftigt sich mit dem Einstieg in das Framework und was man dafür benötigt bzw. welche Werkezuge genutzt werden sollten.
 

Visual Studio Code

Damit die Arbeit Spaß macht und es nicht gleich zu Unsummen für Kauf einer IDE kommt. Habe ich mich für die kostenfreie IDE von Microsoft - Visual Studio Code - entschieden. Diese nutze ich grundsätzlich in der aktuellsten Version und mit den nachfolgenden Erweiterungen (Extensions):

  • Add jsdoc comments
    Adds jsdoc @param and @return tags for selected function signatures in JS and TS.
  • Auto Close Tag
    Automatically add HTML/XML close tag, same as Visual Studio IDE or Sublime Text.
  • Beautify
    Beautify code in place for VS Code.
  • compareit
    Compare files.
  • Complete JSDoc Tags
    Provides code completion while editing JSDoc comments.
  • Document This
    Automatically generates detailed JSDoc comments in TypeScript and JavaScript files.
  • German Language Pack for Visual Studio Code
    Language pack extension for German.
  • GitLens — Git supercharged
    Supercharge the Git capabilities built into Visual Studio Code — Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more.
  • Handlebars
    Handlebars Visual Studio Code.
  • Handlebars Preview
    Live preview for Handlebar templates.
  • JSON Tools
    Tools for manipulating JSON.
  • Minify
    Minify for VS Code. Minify with command, and (optionally) re-minify on save.
  • Partial Diff
    Compare (diff) text selections within a file, across files, or to the clipboard.
  • PowerShell
    Develop PowerShell scripts in Visual Studio Code!
  • Whitespace
    Normalizes whitespace in files.
  • Whitespace+
    Clearly mark whitespace characters (including trailing) and custom patterns.
  • XML Tools
    XML Formatting, XQuery, and XPath Tools for Visual Studio Code.
     

PowerShell

Für den Build-Prozess nutze ich ein eigenes PowerShell-Skript, welches unter Microsoft PowerShell 5.1 oder Core 6.x plattformübergreifend und problemlos läuft.

Warum ich PowerShell nutze? 

PowerShell bzw. PowerShell Core hat für mich den Vorteil, dass man es unter Windows bereits installiert vorfindet und unter Linux bzw. MacOS es sich innerhalb weniger Minuten nachinstallieren lässt.

Es bringt dazu noch den Vorteil, dass man sich nicht mit komplexen Build-Pipelines beschäftigen muss. Und man in der Regel die nötige Infrastruktur nicht mal eben innerhalb einer Community zur Hand hat.

Mit einem PowerShell-Skript lässt sich aber ein ähnlicher Build-Prozess aufbauen und man kann Dinge auslagern in s.g. Includes, welche dann beim Zusammenbau bei allen relevanten Stellen eingearbeitet werden. Und man bekommt immer ein schönes strukturieres, gleichbleibendes und automatisch erzeugtes Paket.

Dazu aber später mehr in einem eigenen Artikel zum Thema Build-Prozess. ;)
 

GitHub Desktop

Für den Zugriff auf das GitHub Repository nutze ich den offizellen GitHub Desktop Client. Diese Applikation bietet eine einfache Oberfläche, einen problemlosen Zugriff auf die Repositories und es gibt es auch für MacOS.

Den Zugang für das GitHub Repository gibt es direkt über mich via Slack im Channel #owug-extensions. ;)
 

3rd Party Frameworks

Wie auch schon zuvor beschrieben, nutze ich unter MIT-Lizenz die folgende Frameworkpakete und jetzt auch in der letzten gültigen Version (heutiger Stand):

  • Bootstrap v4.3.1
  • ClipboardJS v2.0.4
  • FontAwesome v5.8.1
  • Gijgo v1.9.6a (a = angepasste Version)
  • Handlebars v4.1.2
  • jQuery v3.4.0
  • jQueryScrollingTabs v2.5.0
  • JSCookie v2.2.0
  • Lodash v4.17.11
  • Moment v2.24.0
  • Moment / MSDate v2.0.1
  • Moment / Timezone v0.5.25-2019a
  • Normalize v8.0.

Aktuell liegen diese Pakete noch den OWUG Extensions (Plug-Ins) bei. Jedoch ist in der Planung dies optional auf die CDN oder andere lokale Variantin umstellen zu können. Dies wird dann als Parameter beim Build-Prozess angegeben oder es werden einfach alle möglichen Varianten automatisch erzeugt. Das werden wir gemeinsam noch im Slack diskutieren und entscheiden. ;)
 

Management Server

Um die Früchte seiner Arbeit auch ernten zu können, benötigt man auch einen Management Server. Ich nutzen persönlich eine VirtualBox VM mit Windows Server 2012 R2 (Test/OEM Version), MS SQL 2014 Developer Edition (für Entwicklungszwecke gratis) und OpenText Web Site Management Server 16.0.3 (letzter Hotfix) mit Evaluations-Lizenz für 90 Tage.

Da nicht jeder eine s.g. Developer Lizenz zur Hand hat, besteht direkt von OpenText aus die Möglichkeit eine 90 Tage Test-Evaluations-Version sich zu installieren. Wenn man das geschickt baut, kann man sich somit eine eigene Developer Installation zzgl einer Test/QA Version aufbauen. Da eh regelmäßig ein Update kommt und man gerne mit der neuesten Version testen möchte - fällt der 90 Tage Takt fast nicht auf. ;)

Man muss jedoch beachten, dass man die Projekte immer exportieren/importieren muss oder über andere bekannte Wege wieder in die neu installierte Version einhängen darf.

Zum Thema Evaluation-Lizenzen gibt es einen Artikel Evaluation-Lizenzen - Wie geht das? und mit den heutigen Möglichkeiten der Automatisierung ist das alles eh kein Akt mehr. Auch dazu gibt es mehr Infos im Artikel Gewusst wie! "Hotfix per Kommandozeile installieren".

Wer dazu noch fragen hat bitte im Slack melden oder auf unserer Seite per Suche sich die entsprechenen Artikel raussuchen. Sollte etwas fehlen, bitte die Feedback-Funktion nutzen und uns ein Ticket schicken, damit wir die fehlenden Themen als Artikel nachliefern können. ;)
 

Slack

Jetzt kommen wir zum wichtigsten Tool überhaupt. Damit wir auch alle zusammen an dem Framework arbeiten können, nutzen wir schon seit über zwei Jahren das Community-Tool Slack. Damit lassen sich sehr einfach Fragen, Antworten, Rückmeldungen und Diskussionen über jegliche Art von Themen verwalten. 

Dazu kommt noch unser längjähriger Usergroup Bonus. Innerhalb dieser Slack-Community sind auch direkt unsere Ansprechpartner aus Oldenburg dabei - nicht alle, aber die wichtigsten. Damit lassen sich sehr gut Fragen zum Produkt, mögliche Veränderugen in Zukunft usw. fast zeitnah klären.

Damit wir zusammen ein stabiles Set an Erweiterungen (Extensions) für den Management Server bauen und pflegen können.
 

WSM-Camp, Webinar, Brownbag- und Trainings-Sessions

Als letztes möchte ich noch auf unser jährliches WSM-Bar-Camps hinweisen, bei dem wir auch regen Austausch und Vorstellungen der Ergebnisse zeigen. Dazu möchten wir die Kommunikation weiter ausbauen und werden in Zusammenarbeit mit OpenText auch eine neue Webinar-Serie auflegen. 

Jedoch schwebt mir persönlich auch noch ein regelmäßiger, verbaler und visueller Austausch in Form von Online-Sessions vor. Aktuell denke ich an zwei mögliche Varianten:

  • Brownbag-Sessions (max. 30 min)
  • Trainings-Sessions (max. 1 bis 2h)

Wir werden im laufe diesen Jahres noch den Versuch für beide Varianten starten und hätten dazu gerne euer Feedback im Slack oder auch gerne Vorschläge. ;)
 

Fazit

Für den Einstieg in das Framework benötigt man nicht viele Werkzeuge und man bekommt Hilfe innerhalb einer aktiven Community. Ebenso stehen Möglichkeiten für den Austausch, der Zusammenarbeit und Fortbildung zur Verfügung. 

Im nächsten Artikel beschäftigen wir uns mit SmartExtensions: Projektaufbau und Struktur ;)


Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.