Anwendungsspezifisches Design im WCF 2.1 (Typhoon)


Mit dem WCF 2.1 ist es einfach möglich anwendungsspezifisch zu designen, d.h. z.B. eine Klasse, die in mehreren Anwendungen verwendet wird, kann pro Anwendung speziell angepasst werden. Allerdings funktioniert das nur wenn die Anwendung nativ für das WCF 2.1 geschrieben wurde. Die meisten WCF 2.0 Anwendungen, die im WCF 2.1 lauffähig gemacht wurden, unterstützen dies noch nicht. Der Community Blog 2.0 von WoltLab ist in seiner aktuellsten Version mit dem WCF 2.1 kompatibel, unterstützt diese Funktion aber nicht. Die derzeit auf der WoltLab-Webseite eingesetzte Entwicklerversion vom Community Blog 2.1 unterstützt jedoch die hier gezeigte Möglichkeit.


Ein kurzer Rückblick


Zu WCF 1.x-Zeiten hatte jede Anwendung ihre eigenen Header und Footer Templates. Wenn eine Anwendung nicht dem WCF-Standard entsprach (das kam leider bei einigen Anwedungen vor), blieb nichts anderes übrig als im schlimmsten Fall das headInclude-Template zu bearbeiten und für jede Anwendung, die Anpassungen benötigte, z.B. eine eigene Klasse mitzugeben. Ab WCF 2.0 stellt das WCF jeder Anwendung die gleichen Header und Footer Templates zu Verfügung und es gibt eine deutlich verbesserte Situtation in Bezug auf vereinheitlichtes Design. Waren aber trotzdem Anpassungen pro Anwendung innerhalb einer WCF-Installation nötig war dies nicht so einfach. WCF 2.1 bringt hier eine Verbesserung.


Das Szenario


Stellen wir uns als Beispiel vor, dass wir eine WCF-Installation haben, die ein Burning Board 4.1 und die Infinite Filebase 3.1 beinhaltet. Als simples Beispiel sollen alle Labels in der Filebase unabhängig von den verwendeten Einstellungen mit gelben Hintergrund und dunkler Schrift ausgegeben werden (warum auch immer man das möchte).


Folgender CSS-Code ist dafür in den zusätzlichen Deklationen des Stils erforderlich:


CSS
  1. body[data-application="wsif"] .label, body[data-application="wsif"] a.label {background: yellow !important; color: #222 !important;}


Die "Magie" verbirgt sich hier bei data-application - dort gibt jede für das WCF 2.1 entwickelte Anwendung ihren Namen aus - mal als Kürzel, mal als Wort. Wie erwähnt, die mit WCF 2.0 und WCF 2.1 in gleicher Version kompatiblen Anwendungen machen das nicht. Hier eine Tabelle mit den derzeit verfügbaren und mir bekannten appliction-Typen:


Die fragliche Stelle lässt sich übrigens leicht mit einem Blick in den Seitenquelltext herausfinden. Hier ein Screenshot aus der Forenauflistung im WBB 4.1:


applicationWBB.png


Anwendung data-application
Burning Board (ab Version 4.1) wbb
WoltLab Blog (ab Version 2.1) blog
Infinite Filebase (ab Version 3.1) wsif
Webproduktion Bugtracker (ab Version 2.1) wpbt
WoltLab Gallery (ab Version 2.1) gallery
WoltLab Calendar (ab Version 2.1) calendar
WoltLab Filebase (ab Version 2.1) filebase


Falls du noch andere Anwendungen kennst, die dies so schon unterstützen oder dir andere Szenarien für kreative anwendungsspezifische Designs einfallen oder du das sogar schon aktiv nutzt, lass es mich und die anderen Leser gern unten in den Kommentaren wissen.
Für weiter gehende Fragen, kannst du dich gern im Supportforum melden.