Verwenden des Client Dependency Framework für DotNetNuke

Mit DotNetNuke 6.1 ist das Client Dependency Framework integriert: http://clientdependency.codeplex.com.

Damit können Javascirpt- und Css-Files zusammengefasst werden. In der Section clientDependency des web.config kann man den Mechanismus aktivieren.

In einem UserControl kann man ein Css-File hinzufügen, indem man die entsprechende Assembly registriert

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>

und z.B. im OnLoad-Event die Registrierung vornimmt:
        ClientResourceManager.RegisterStyleSheet(this.Page, "/css/MyCss.css", 170)

Der letzte Parameter ist die Priorität. Mit ihr kann man die Reihenfolge der css steuern. Mit dem Javascript-File funktioniert es analog:
        ClientResourceManager.RegisterScript(Me.Page, "/scripts/MyScript.js", 100)

Achtung: wenn das Skin-File abc.axcx heisst, so wird das entsprechende abc.css automatisch vom DNN hinzugefügt, falls vorhanden.

Die generierten Files werden im Verzeichnis App_Data/ClientDependency 'gecacht'.

Folgender Sachverhalt ist nicht optimal. Wenn z.B. ein Custom-Modul ein css-File registriert, so wird dieses File nur auf den Seiten hinzugefügt, welche das Modul verwenden. D.h. für verschieden Seiten lädt der DependencyHandler ganz verschiedene Files. Wahrscheinlich wäre es aber schneller, wenn er immer das selbe File laden würde, bzw. vom Browser gecachet werden könnte und auf speziellen Seiten zusätzliche Files geladen würden.

Kommentar schreiben