Microsoft hat mit dem SharePoint Framework SPFx vor einiger Zeit einen neuen und modernen Weg für die SharePoint-Entwicklung vorgestellt. Seit der ersten Version setzen wir bei Communardo auf dieses Pferd - und wurden nicht enttäuscht.
Einige unserer Lösungen sind allerdings bereits "in die Jahre" gekommen, da sich das Framework mit rasanter Geschwindigkeit entwickelt.
Warum sich ein Update lohnt und welche Schritte notwendig sind wird in diesem Beitrag vorgestellt.
Warum sollte ich das SharePoint Framework aktualisieren?
Für ein Update des Frameworks sprechen zunächst die tollen neuen Features, die Microsoft einbaut und die den Entwicklern das Leben erleichtern können. Beispielsweise wurden im Laufe der Zeit Environment-Klassen hinzugefügt, mit denen Webparts herausfinden können, ob sie im SharePoint Online oder on-premises im Einsatz sind. Auch die neuen SharePoint Framework Extensions erfordern ein Update, sowie das tenant-weite Deployment der Solution.
Für ein Update des Frameworks spricht aber auch die Frequenz, mit der weitere Updates zu erwarten sind. Im Laufe der Entwicklung wurde bisher die Struktur verschiedener Dateien erweitert oder verändert. Build-Prozesse, die davon abhängen müssen u.U. angepasst werden. Updates von Modul-Abhängigkeiten wie "webpack" können kleinere Änderungen der Modulauflösung mit sich bringen. Die daraus entstehenden Probleme löst man lieber in kleinen Schritten - Update für Update.
Wie erkenne ich alte SharePoint Framework Solutions?
Alte Solutions lassen sich schnell durch einen Blick in die "package.json" identifizieren.
Die Kern-Pakete des Frameworks sehen hier ziemlich alt aus, alle besitzen die initiale Version 1.0.0:
Stand heute sollte eine aktuelle "package.json" aber eher so aussehen:
Mit Visual Studio Code lässt sich sehr leicht nachsehen, ob eine aktuellere Version zur Verfügung steht. Fährt man mit der Maus über die Versionsnummer, wird die aktuellste Version angezeigt:
Praktisch! Jetzt kann das Update kommen.
Wie aktualisiere ich alte SharePoint Framework Solutions?
Um das Framework zu aktualisieren, muss bei allen dazugehörigen Paketen die aktuelle Versionsnummer eingetragen werden. Hier noch einmal das Bild von oben:
Wer genau hinschaut, sieht, dass ein Paket sogar noch die Version 1.0.0 besitzt. Hier gibt es keinen aktuelleren Stand. Das müssen wir wohl so hinnehmen.
Nachdem die Versionsnummern aktualisiert wurden, wird der Node Package Manager "npm" verwendet, um diese Versionen auch herunterzuladen. Folgender Befehl wird dazu in der Konsole ausgeführt:
npm install
Npm schaut in die "package.json" und lädt die gewünschten Dateien herunter.
Im Anschluss ist eventuell noch folgender Befehl notwendig, um die Konfigurationsdateien wie "config.json" auf den aktuellen Stand zu bringen:
gulp --upgrade
Wurde dieser Befehl noch nicht ausgeführt, erscheint beim nächsten Build in der Konsole ein Hinweis.
Wieviel Zeit sollte für das Update eingeplant werden?
In der Überschrift deutet sich schon die Antwort an: mehr als gedacht. Die Schritte oben sind schnell durchgeführt. Allerdings kann es sein, dass nach dem Update der Build nicht mehr funktioniert: Gulp-Tasks müssen aktualisiert werden, weil sie von Schema-Änderungen betroffen sind. Fehler bei der Webpack-Modulauflösung müssen behoben werden. Generierte Dateinamen ändern sich.
Wir hatten auch schon den Fall, dass kurz nach einem Update der SPFx-Pakete durch Microsoft kein Build mehr möglich war, da Framework-intern Abhängigkeiten nicht korrekt konfiguriert waren. Ein bis zwei Wochen und ein Update später war alles wieder in Ordnung.
Sofern der zuletzt genannte Fall nicht eintritt, sollte man sich in kleinen bis mittleren Projekten etwa 2-4 Stunden für das Update reservieren.
Zusammenfassung und Ausblick
Wir haben anhand einiger Beispiele gesehen, warum es sich lohnt, auf neuere Versionen des SharePoint Frameworks zu aktualisieren. Das Update an sich ist einfach, für die Nacharbeiten sollte man ein wenig Zeit einplanen.
Das SharePoint Framework und die ersten Extensions stehen erst am Anfang, auf der Roadmap stehen noch viele Punkte. Wir blicken gespannt in die Zukunft und werden unsere Solutions aktuell halten.
Vielen Dank für diesen detailreichen und sehr ausführlichen Beitrag.
Viele Grüße,
Ogün Akbulut