Archiv für den Monat: Dezember 2013

Erstes WordPress Plugin: List Last Changes

Für die Startseite meiner Webseite habe ich im Rahmen der Umstellung auf das neue Design und auf WordPress ein eigenes WordPress Plugin geschrieben. Dieses zeigt die letzten geänderten Seiten an. Der Titel und die Anzahl der Einträge können dabei über einen Dialog im Widgets-Bereich konfiguriert werden.

Seit heute ist es auch im WordPress Plugin Directory offiziell verfügbar. Das Plugin List Last Changes kann über das WordPress Plugin Directory heruntergeladen oder direkt aus WordPress heraus installiert werden.

Weitere Informationen zum Plugin können auch auf meiner Webseite gefunden werden.

Piwik 2.0 als Weihnachtsgeschenk

Logo Piwik 2Das Piwik Team hat ein vorzeitiges Weihnachtsgeschenk gemacht: Am 18. Dezember wurde die lang ersehnte Version 2.0 veröffentlicht. Gleichzeitig wurde auch die Website im neuen Design präsentiert. Dieses ist aus meiner Sicht übersichtlicher als das alte Design. Auch das Logo wurde angepasst und erscheint durch die neue Schlichtheit weniger verspielt und dadurch seriöser.

Die wichtigsten Änderungen des Major Releases:

  • Piwik unterstützt nun Themes um das Design anzupassen. Dabei hat Piwik auch gleich das neue Default Theme ‚Morpheus‘ erhalten.
  • Über den Piwik Marketplace können die verfügbaren Themes und Plugins durchsucht und heruntergeladen werden.
  • Der Zugriff auf den Marketplace kann direkt aus Piwik heraus erfolgen.
  • Anonymisieren von IPv6 Adressen.
  • Einige Plugins, die bisher zur ‚Grundausstattung‘ gehörten wurden in den Marketplace verschoben.
  • Es wurde auch einen neue Mobile App für Piwik 2.0 für iPhone und Android vorgestellt.

Insgesamt wurden 171 Tickets bearbeitet. Neben den oben beschriebenen Neuerungen wurden dabei auch Fehler behoben und kleinere Verbesserungen vorgenommen.

Im Rahmen des Updates wurde auch der Service Piwik PRO präsentiert, mit dem Hosting und Support von Piwik für Firmen und Organisationen angeboten wird. Piwik selber soll aber weiterhin Open Source bleiben.

NSIS Plugin „CLR“ verwenden

NSIS & .NET

NSIS & .NET

Mit C# und dem .NET Framework von Microsoft kann man oftmals einfacher eine Funktionalität implementieren als mit C++, besonders da man sich dank dem Garbage Collector nicht (oder weniger) um das Speicherhandling kümmern muss.

Wenn man dies auch in einem NSIS-Installer nutzen möchte (evtl. hat man den Code bereits vorhanden und möchte ihn nicht noch einmal implementieren) kann man das NSIS-Plugin CLR verwenden.

Dabei sind aber ein paar Punkte zu beachten, damit der Installer auch wirklich funktioniert.

  1. Das .NET Framework muss installiert sein.
    Ohne das .NET Framework kann auch die gewünschte Funktion nicht ausgeführt werden. Je nach Systemvoraussetzungen kann aber davon ausgegangen werden, dass dies schon erfüllt ist. Eine Beschreibung, wie das .NET Framework mit NSIS installiert wird kann im Artikel „Simple Way To Install .NET Framework“ nachgelesen werden.
  2. Das .NET Assembly muss mit .NET 2.0 lauffähig sein.
    Das Plugin CLR wurde mit dem .NET Framework 2.0 erstellt. Dementsprechend können keine Assemblies gestartet werden, die eine neuere .NET Version voraussetzen (z.B. durch den Einsatz von LINQ). In Visual Studio kann das Ziel-Framework in den Project-Optionen angegeben werden. Wenn auf der Kommandozeile mittels csc.exe kompiliert wird muss csc.exe aus dem .NET Framework 2.0 Ordner verwendet werden.
    Um diese Einschränkung zu umgehen kann das Plugin selber mit der passenden .NET Version übersetzt werden. Der Sourcecode ist im .ZIP File enthalten.
  3. Das .NET Assembly muss im Installer enthalten sein.
    Das Plugin fügt das .NET Assembly nicht automatisch dem Installer hinzu. Deshalb müssen das .NET Assembly und alle weiteren nötigen Assemblies mit dem File-Kommando dem Installer hinzugefügt werden.

Noch ein paar Tipps und weitere Quellen:

  • Ausgaben von der .NET Assembly in die NSIS-Konsole.
    Wenn die .NET Assembly eine Arbeit verrichtet, die eine längere Zeit in Anspruch nimmt oder man dem Benutzer anzeigen möchte, was die DLL ausgeführt hat, kann man Anhand des Artikels „DetailPrint From Inside .NET DLL“ die Ausgaben vornehmen.
  • Zusätzliche Hinweise zum Plugin „CLR“.
    Im Forumsthread „Calling managed .NET DLL from NSIS – this works :-)“ ist die Entstehungsgeschichte des Plugins beschrieben und es werden weitere Hinweise zur Verwendung gegeben (Seiten 2 und 3 auch beachten).

Habt ihr dieses Plugin auch schon eingesetzt und wie sind eure Erfahrungen. Fehlen hier noch Fallstricke, die erwähnt werden sollten?