Entfernen der Telerik-Komponenten in DNN 9.8.0

DNN - 06.11.2020

Im Jahr 2009 schlossen die DNN Corp. und Telerik einen OEM-Vertrag ab, in dem festgehalten wurde, dass die gesamte RAD-Control-Suite von Telerik mit allen Editionen von DNN ausgeliefert wurde. Dieser Vertrag endete 2013, und der Stand der ausgelieferten Telerik-Controls wurde mit dem damaligen Zeitpunkt "eingefroren" - DNN Corp. erhielt den Source-Code mit der Berechtigung, Bugs und sicherheitsrelevante Probleme zu fixen, nicht aber die Suite weiterzuentwickeln oder neue Versionen einzusetzen.
Diese Sicherheits-Probleme wurden immer größer, und es bedurfte immer größerer Anstrengungen der Entwickler-Community, sie zu beseitigen.
Andererseits waren (und sind) viele DNN-Komponenten von dieser Bibliothek abhängig, sodass ein schrittweises Entfernen derselben aus DNN einer Operation am offenen Herzen gleicht. Durch die gemeinsame Anstrengung aller ist es mit Version 9.8.0 nun gelungen, diese aus einer DNN-Installation entfernen zu können, soferne man nicht Erweiterungen einsetzt, welche die Bibliothek benötigen.

Hinweis: Alle diese Schritte erfordern, dass man als System-Administrator angemeldet ist.

Schritt 1: Telerik Identifier installieren

Mitchel Sellers von Iowa Computer Gurus hat ein Modul geschrieben, welches erlaubt, Abhängigkeiten von Telerik in installierten Erweiterungen aufzufinden. Dies ist wichtig, um festzustellen, ob man die Komponenten gefahrlos aus der Installation entfernen kann.

Das Modul Dnn Telerik Identifier steht auf GitHub zum Download zur Verfügung. Es wird wie jede andere Erweiterung installiert.

Nachdem man es installiert hat erstellt man am Besten eine Seite, auf der das Modul hinzugefügt wird. Im günstigsten Fall erhält man folgende Meldung:
Telerik Identifier

Sollten hier Assemblies (.dll-Dateien, die sich üblicherweise im Ordner /bin der Installation befinden) angezeigt werden, so muss man zuerst prüfen, welche Erweiterungen diese Assembkies benötigen und diese Erweiterungen wenn möglich auf eine aktuellere Version aktualisieren, oder durch ein Alternativprodukt ersetzen.

WICHTIG: Bevor Sie nun weitermachen erstellen Sie bitte ein Backup der Datenbank und der DNN-Installation, oder arbeiten Sie mit einer Kopie Ihrer Website in einer Testumgebung! Die folgenden Schritte könnten Auswirkungen auf Erweiterungen haben, die durch das Modul nicht als abhängig erkannt wurden, es aber dennoch sind.

Schritt 2: Systemerweiterungs-Flag entfernen

Einige Systemerweiterungen sind von Telerik-Bibliotheken abhängig. Um diese deinstallieren zu können müssen Sie die Systemerweiterungs-Flags in der Datenbank entfernen. Kopieren Sie folgendes Skript, und fügen Sie es unter Einstellungen :: SQL-Konsole ein:

UPDATE {databaseOwner}{objectQualifier}Packages
SET IsSystemPackage = 0
WHERE Name IN ('DigitalAssetsManagement',
   'DotNetNuke.Telerik.Web',
   'DotNetNuke.Web.Deprecated',
   'DotNetNuke.Website.Deprecated')
GO

DELETE FROM {databaseOwner}{objectQualifier}PackageDependencies
WHERE (PackageName = 'DotNetNuke.Web.Deprecated')
GO

Klicken Sie danach auf die Schaltfläche [Skript ausführen]. Im Ergebinsibereich wird angezeigt, dass die Abfrage keine Daten zurückgegeben hat (was in Ordnung ist). Gehen Sie dann zu Einstellungen :: Server, und klicken Sie auf die Schaltfläche [Anwendung neu starten]. Warten Sie, bis die Anwendung neu gestartet ist.

Schritt 3: Digital Assets entfernen

Klicken Sie unter Einstellungen :: Erweiterungen auf das Symbol zum Deinstallieren des Moduls "Digital Asset Management":
Digital Assets entfernen

Aktivieren Sie das Kontrollkästchen [Dateien l&oouml;schen?], und klicken Sie auf die Schaltfläche [Löschen]. Bestätigen Sie die Sicherheitsabfrage mit [ja].
Digital Assets entfernen - Dateien löschen

Schritt 3: Entfernen der Bibliotheken

Wählen Sie in der Dropdown-Liste zeige: die Option "Libraries", und entfernen Sie die folgenden Bibliotheken. Aktivieren Sie auch hier jeweils das Kontrollkästchen [Dateien löschen?].

  • DotNetNuke Telerik Web Components
  • DNN Deprecated Web Controls Library
  • DotNetNuke Deprecated Website Codebehind files

Bibliotheken entfernen

Schritt 4: Referenzen in web.config entfernen.

Öffnen Sie nun die Datei web.config mit einem Texteditor, und löschen Sie alle Einträge, die "Telerik" enthalten:
Telerik-Referenzen aus web.config entfernen
(Hier beispielsweise jeweils die gesamte Zeile löschen)
Telerik-Referenzen aus web.config entfernen
(Hier den gesamten Block löschen)

Speichern Sie die Datei. Überprüfen Sie, ob im Ordner /bin Dateien vorhanden sind, in deren Namen "Telerik" vorkommt. Löschen Sie diese gegebenenfalls (bis auf die Datei IowaComputerGurus.Dnn.TelerikIdentifier.dll, die kann stehen bleiben).

Schritt 5: Resource Manager installieren

Wechseln Sie nun in das Register Verfügbare Erweiterungen und installieren Sie das Modul "Resource Manager":
Resource Manager installieren

Ein Sprachpaket für den Resource-Manager finden Sie unter Downloads. Installieren Sie auch dieses, wenn Sie auf der Website die Sprache Deutsch (Österreich) aktiviert haben.

Wechseln Sie nun zu Verwalten :: Website-Dateien. Sie finden anstelle des Datei-Managers, den wir in Schritt 2 deinstalliert haben, eine leere Seite. Fügen Sie nun eine Instanz des Moduls "Resource-Manager" hinzu.

Überprüfen Sie in den Moduleinstellungen folgende Einstellungen:
Moduleinstellungen des Resource Managers - Portal

Wiederholen Sie diese Schritte für die Seite Verwalten :: System-Dateien. Die Einstellungen hier sollten wie folgt aussehen:
Moduleinstellungen des Resource Managers - System

Schritt 5: Testen

Damit wäre die Website nun Telerik-frei. Testen Sie alle Erweiterungen, die Sie einsetzen um sicherzugehen, dass alles auch ohne Telerik funktioniert.