Blog 4 Umbraco 2.0.9 – Der richtige Datentyp für den SkinBrowser

Mittwoch, 9. Dezember 2009 von Immo Wache
Kategorien: Umbraco  Blog  deutsch  C#  Weihnachtskalender 

Original von Niels Hartvig

Vor einer Woche haben wir uns die ersten Gedanken für eine Design-Auswahl (engl. SkinBrowser) für das Blog 4 Umbraco gemacht. Heute werden wir mit der Arbeit am zugehörigen Datentyp starten, d.h. an dem Ort im Back-Office, von wo aus wir dann das aktuelle Design auswählen und laden können.

Obwohl die Arbeit noch längst nicht fertig ist war es bisher schon eine interessante Erfahrung in die Tiefen des Umbraco Kerns hinab zu tauchen. Darüber hinaus war es eine noch bessere Anregung, wie wir die Dinge in Umbraco zukünftig noch einfacher gestalten können. Dies war ja eine der Erwartungen an diesen Kalender - in einem über-agilem (sprich: komplett ungeplanten) Entwicklungsprozess mit den Teilen von Umbraco spielen, mit denen wir uns normalerweise kaum befassen würden. Aber lasst uns der Reihe nach anfangen.

Was ist ein benutzerdefinierter Datentyp überhaupt?

Beginnen wir mit der Frage, was denn eigentlich ein Datentyp ist. Nun, Datentypen in Umbraco sind die verschiedenen Editor-Optionen für die Eigenschaften von Dokumenttypen. Obwohl das recht komplex klingt kennen wir sie bereits: Upload, Richtext Editor, Ultimate Picker, Textbox multiple (und überhaupt: Warum dieser komische Name für etwas, das nur ein Texteingabebereich ist?) und viele weitere. Mit anderen Worten, Datentypen sind der "Type", den wir wählen wenn wir eine Eigenschaft zu einem Dokument-, Mitglieds- oder Medientyp hinzufügen.

Obwohl Umbraco mit mehr als 20 Datentypen ausgeliefert wird kann es passierten, dass diese nicht ausreichend sind. Das ist die Stelle wo der benutzerdefinierte Datentyp ins Spiel kommt: Genau wie in allen anderen Bereichen von Umbraco kann man auch hier eigene Erweiterungen hinzufügen.

Die Optionen

Datentypen sind der zentrale Dreh- und Angelpunkt von Umbraco und erscheinen daher ziemlich kompliziert, denn sie behandeln das Editieren, die Persistenz, die XML-Generierung und die Konfiguration der Daten mit allen dazugehörigen Aspekten und der Preis dafür ist ein ganzer Strauß von Schnittstellen, die dafür implementiert werden müssen. Gleichzeitig waren sie die aller ersten Elemente die damals im Jahr 2004 in Umbraco entwickelt wurden, und so - na gut, gehen wir elegant über diesen Teil hinweg und sagen einfach hier ist Raum für Verbesserungen - und genau diese Verbesserungen gibt es bereits!

Anstatt also eine Menge über all diese Schnittstellen und ihre Arbeitsweise lernen zu müssen, können wir nämlich jedes gewöhnliche ASP.NET Steuerelement in einen benutzerdefinierten Datentypen verwandeln. Wir müssen dazu nur ein Interface mit einer einzelnen Eigenschaft implementieren. Wir verwenden dazu den bereits existierenden Datentyp "Usercontrol wrapper" und das Interface "IUsercontrolDataEditor" (beide befinden sich im Namensraum umbraco.editorControls.userControlGrapper - beachten Sie bitte dabei den schönen Tippfehler. So etwas bezeichnet man auch als digitale Patina, und sie wird mit zunehmendem Alter immer charmanter. Es ist daher definitiv kein Bug!) Obwohl diese Technik sehr hübsch und einfach ist, passt sie leider nicht für unser Vorhaben. Wir wollen ja einen ziemlich allgemeinen Datentyp schaffen, der auch an anderer Stelle benutzt werden kann und nicht nur in unserem Blog 4 Umbraco, daher trifft unsere Wahl auf den …

AbstractDataEditor

Der AbstractDataEditor wurde in Umbraco 4.0.1 eingeführt, um das Schreiben von erweiterten Benutzerdatentypen zu erleichtern. Er macht es möglich, zusammengesetzte Steuerelemente gemeinsam mit benutzerdefinierten Konfiguratoren zu entwickeln. Mit seiner Hilfe muss man sich nicht mit den Detail befassen, wie alle diese Elemente in Umbraco miteinander verbunden werden - man definiert einfach nur die erforderliche Funktionalität. Dabei fällt allerdings der gesamte Konfigurationsteil etwas ab, diese könnte noch etwas liebevolle Pflege gebrauchen. Denn die gesamten CRUD-Operationen (CRUD: Wikipedia) für die Konfigurationsdaten sind noch ein manueller Prozess der ziemlich gewöhnungsbedürftig und unnötig komplex ist. Das bedeutet aber auch, dass wir Umbraco verbessern können, und das ist doch fantastisch :)

Während dieser (und der zuvor besprochene) Datentyp großartige Themen für zukünftige umbraco.tv Videos sind, können wir noch mehr über die Verwendung des Abstract Data Editors auf Tim Geyssens bemerkenswertem Blog lesen.

Mit der Auswahl des AbstractDataEditor haben wir nun endlich eine brauchbare (wenn auch noch unpolierte) Möglichkeit, um anzugeben, welches Design der SkinBrowser vom Package Repository laden soll und auch einen Platzhalter, der sich darum kümmert wie das neu ausgewählte Design abgeholt und installiert wird.

Für die Definition des Datentyps können wir nun den Umbraco Skin Browser als Render Control verwenden und den Skin Identifikator konfigurieren. Die Konfiguration des SkinBrowsers stellt sich wie folgt dar:

Picture 21

Und hier sieht man, wie sich der SkinBrowser gegenwärtig in der Dokumentansicht darstellt, wenn er auf einem Dokumenttyp platziert wurde (z.Z. noch als Platzhalter ohne Funktion):

Picture 22

In Kürze mehr zu diesem spannenden Thema …

3 Kommentar(e) zu “Blog 4 Umbraco 2.0.9 – Der richtige Datentyp für den SkinBrowser”

  1. Smiley schrieb:
    Superior thinking demonstrated above. Tahkns!
  2. pmaeaaomhc schrieb:
    kokhBj , [url=http://ffeuultbyati.com/]ffeuultbyati[/url], [link=http://gencnvkirdoz.com/]gencnvkirdoz[/link], http://sddkvzgjhkvl.com/
  3. fepeppebege schrieb:
    zpnXBt , [url=http://bsnutwjxztbu.com/]bsnutwjxztbu[/url], [link=http://saqhdbcfgcfy.com/]saqhdbcfgcfy[/link], http://clrdzuxxpaso.com/

Beitrag kommentieren:


wird nicht angezeigt


optional - bitte mit http://



Bitte geben Sie den im darüberliegenden Bild erkennbaren Sicherheitscode ein, um einen SPAM-Missbrauch des Formulars zu verhindern.