<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>t3n Magazin &#187; TECHNOLOGIE</title>
	<atom:link href="http://t3n.de/magazin/category/technologie/feed/" rel="self" type="application/rss+xml" />
	<link>http://t3n.de/magazin</link>
	<description>Open. Web. Business.</description>
	<lastBuildDate>Fri, 10 Feb 2012 14:28:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Kanban: Entwicklungsprozesse im Produktionsablauf geschickt verschlanken</title>
		<link>http://t3n.de/magazin/kanban-simple-227559/</link>
		<comments>http://t3n.de/magazin/kanban-simple-227559/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 09:28:58 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=227559</guid>
		<description><![CDATA[Kanban befindet sich im Aufwind. Zwar liegt der Bekanntheitsgrad nach wie vor hinter Scrum, jedoch zu Unrecht. Lassen sich doch mit Kanbans schlankem Vorgehensmodell vor allem in der Support- und Wartungsphase von Projekten schnell verblüffende Ergebnisse erzielen. Kanban [1] ist ein relativ neues, schlankes Vorgehensmodell zum einfachen Verwalten von Entwicklungsprozessen. Man hat sich dabei die [...]]]></description>
			<content:encoded><![CDATA[<p>Kanban befindet sich im Aufwind. Zwar liegt der Bekanntheitsgrad nach wie vor hinter Scrum, jedoch zu Unrecht. Lassen sich doch mit Kanbans schlankem Vorgehensmodell vor allem in der Support- und Wartungsphase von Projekten schnell verblüffende Ergebnisse erzielen.<span id="more-227559"></span></p>
<p>Kanban <a title="Kanban" href="http://www.limitedwipsociety.org/" >[1]</a> ist ein relativ neues, schlankes Vorgehensmodell zum einfachen Verwalten von Entwicklungsprozessen. Man hat sich dabei die Grundprinzipien der – ursprünglich von Toyota für die Automobilindustrie entwickelten – „Lean Production“ zum Vorbild genommen und versucht, diese Prinzipien auf die Software-Entwicklung zu übertragen. Die wichtigsten Ideen daraus:</p>
<ul>
<li>Es soll eine gleichmäßige Arbeitsbelastung geschaffen werden. Engpässe und Lastspitzen sind zu vermeiden, da sie den gesamten Prozess verlangsamen. Alles ist „im Fluss“.</li>
<li>Produktionsfaktoren und Mitarbeiter müssen aus-, aber nicht überlastet sein. So lässt sich die Produktivität erhalten.</li>
<li>Nur der Nachschub wird extern organisiert („push“), in ihrem Aufgabenbereich arbeiten die Teams jedoch eigenverantwortlich und weisen sich Aufgaben selbst zu („pull“).</li>
</ul>
<h2>Einsatzgebiet</h2>
<p>Sobald ein Projekt ausgeliefert wurde, beginnt dessen Nachbetreuung, also die Support- und Maintenance-Phase. Diese ist gekennzeichnet durch viele kleine, kurz getaktete, oftmals unzusammenhängende Arbeitspakete von unterschiedlicher Priorität und Dauer. Aufgaben werden gern per Bugtracker-Ticket, Mail oder schlimmstenfalls mündlich zugewiesen.</p>
<p>Typischerweise befinden sich außerdem noch weitere Projekte in dieser Phase. Eine unübersichtliche Situation also, die sich kaum effektiv organisieren oder zumindest kontrollieren lässt. Und weder Scrum noch das alte Wasserfallmodell helfen hier weiter, da der Overhead beider Methoden einfach zu groß ist. Allein die Planungsdauer einer Sprintphase kann bereits den Umfang eines Arbeitspakets überschreiten. Hier nun liegen die Stärken von Kanban.</p>
<h2>Funktionsweise</h2>
<p>Das zentrale Element in Kanban ist das so genannte Kanban-Board, ein Whiteboard, auf das alle Mitarbeiter Zugriff haben. Das Board ist in verschiedene, frei definierbare Spalten aufgeteilt, die den Workflow des Entwicklerteams visualisieren. In diesen Spalten landen anschließend Arbeitspakete, die auf Karten notiert und priorisiert werden. Das Entwicklungsteam bedient sich anschließend selbst („Pull“ statt „Push“) und arbeitet so Paket für Paket ab. Ist eine Aufgabe erledigt, wandert das Paket eine Spalte weiter.</p>
<p>Was ein Paket ist, bestimmt das Team. Ebenso die Hürden, um von einer Spalte in die nächste zu kommen: Wichtig sind einheitliche Kriterien. So kann ein Paket alles sein, was länger als zwei Stunden und weniger als zwei Tage zur Umsetzung benötigt. Und als erledigt gilt ein Paket womöglich dann, wenn es tatsächlich ins Produktivsystem gespielt wurde. Auf diese Art lässt sich auch ein großes Arbeitspaket von mehreren Tagen Aufwand ganzheitlich nachverfolgen – von der Analyse bis zum Rollout.</p>
<div id="attachment_227560" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=227559dms_61c1fe61ed790b2d8f551e0ae7fe7382"><img class="alignleft size-large wp-image-227560" title="Ein Kanban-Board visualisiert die einzelnen Prozesschritte und ihren Status." src="http://t3n.de/magazin/wp-content/uploads/2011/04/dms_61c1fe61ed790b2d8f551e0ae7fe7382-596x383.jpg" alt="Ein Kanban-Board visualisiert die einzelnen Prozesschritte und ihren Status." width="596" height="383" /></a></p>
<p class="wp-caption-text">Ein Kanban-Board visualisiert die einzelnen Prozesschritte und ihren Status.</p>
</div>
<p>Trotz geringer Reglementierung – ein Grundsatz Kanbans muss immer gelten: Jede Spalte hat ein eigenes „Work in Progress“-Limit (WiP-Limit), das nicht überschritten werden darf. Das WiP-Limit legt fest, wie viele Arbeitspakete sich gleichzeitig in einem Prozessschritt befinden dürfen. Es bestimmt sich somit aus der Entwicklungskapazität des Teams und verhindert damit dessen Überlastung. Auch Engpässe im Prozess fallen sofort auf. Ein Arbeitspaket, das partout nicht abgenommen wird, sorgt demnach für Stau in den vorhergehenden Schritten – in der Lehre des Kanban, die alles „im Fluss“ halten und gleichmäßig bewegen will, stellt das ein Problem dar, dem man sich umgehend annehmen muss.</p>
<h2>Messtechnik</h2>
<p>Kanban bietet vielfältige Metriken, um die Leistung eines Teams zu messen oder Flaschenhälse im Prozess aufzuspüren. So lässt sich etwa feststellen, wie lange ein Arbeitspaket braucht, um den gesamten Workflow zu durchlaufen („Cycle Time“). Diese Zahl stellt im Durchschnitt und auf alle Pakete gerechnet nichts anderes als die Entwicklungsgeschwindigkeit des Teams dar.</p>
<p>Ein „Cumulative Flow“-Diagramm hingegen deckt auf, in welchem Prozessschritt Engpässe auftreten und sich Arbeitspakete stauen. Dazu wird die Summe aller Pakete pro Prozessschritt in Abhängigkeit der Zeit gemessen. So kann man gezielt gegensteuern, indem man etwa das Abnahme/Testing-Team aufstockt, falls es bei der Abnahme immer wieder zu Verzögerungen kommt.</p>
<div id="attachment_227561" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=227559dms_d263ced3199a809b0e51de66ea51644c"><img class="alignleft size-large wp-image-227561" title="Ein Cumulative-Flow-Diagramm macht Engpässe sichtbar – zu sehen an den Stellen, an denen die Linien stärker auseinander laufen." src="http://t3n.de/magazin/wp-content/uploads/2011/04/dms_d263ced3199a809b0e51de66ea51644c-596x301.jpg" alt="Ein Cumulative-Flow-Diagramm macht Engpässe sichtbar – zu sehen an den Stellen, an denen die Linien stärker auseinander laufen." width="596" height="301" /></a></p>
<p class="wp-caption-text">Ein Cumulative-Flow-Diagramm macht Engpässe sichtbar – zu sehen an den Stellen, an denen die Linien stärker auseinander laufen.</p>
</div>
<p>Das Verwalten mehrerer Projekte ist ebenfalls problemlos zu bewerkstelligen, ohne für jedes Projekt ein neues Whiteboard aufstellen zu müssen. Dazu gibt es zwei unterschiedliche Ansätze: Ergänzt man das Board um weitere Zeilen („Swimlanes“), lassen sich diese jeweils einem bestimmten Projekt zuordnen. Alternativ sind Kanban-Karten in verschiedenen Farben gebräuchlich.</p>
<div id="attachment_227562" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=227559dms_15f199f79f7344e803ce1a7a256d117e"><img class="alignleft size-large wp-image-227562" title="Für unterschiedliche Projekte eignen sich entweder unterschiedlich gefärbte Karten oder eigene Zeilen auf dem Whiteboard." src="http://t3n.de/magazin/wp-content/uploads/2011/04/dms_15f199f79f7344e803ce1a7a256d117e-596x225.jpg" alt="Für unterschiedliche Projekte eignen sich entweder unterschiedlich gefärbte Karten oder eigene Zeilen auf dem Whiteboard." width="596" height="225" /></a></p>
<p class="wp-caption-text">Für unterschiedliche Projekte eignen sich entweder unterschiedlich gefärbte Karten oder eigene Zeilen auf dem Whiteboard.</p>
</div>
<p>Auch online lässt sich das Kanban-Modell visualisieren. Entsprechende Werkzeuge wie Greenhopper <a title="Greenhopper" href="http://www.atlassian.com/software/greenhopper/" >[2]</a> oder das Kanban-Tool <a title="Kanban-Tool" href="http://kanbantool.com/" >[3]</a> sind aufgrund des zeit- und ortsunabhängigen Zugangs besonders bei verteilten Teams an unterschiedlichen Standorten sinnvoll.</p>
<h2>Fazit</h2>
<p>Nach einem Jahr Kanban-Nutzung in der Wartungsphase fällt das Urteil des Autors durchwegs positiv aus: Denn so simpel das Prinzip auch ist, in der Praxis zeigen sich verblüffende Effekte, sobald sich das Team darauf eingestellt hat. Durch die zentrale Bündelung aller Aufgaben am Kanban-Board gerät nichts in Vergessenheit.</p>
<p>Arbeitspakete werden nicht mehr per Mail oder gar auf Zuruf verteilt, sondern strukturiert erfasst und im Kontext der anderen Projekte betrachtet, was die Koordination der verschiedenen Aufgaben erheblich verbessert. Entwickler können sich endlich wieder auf die Entwicklung konzentrieren, anstatt ihre anstehenden Aufgaben verwalten zu müssen. Die WiP-Limits vermeiden indes eine Überlastung und störende Kontextwechsel zwischen verschiedenen Aufgaben. All das hat für erheblich mehr Ruhe und Konzentration im sonst hektischen Entwickleralltag gesorgt.</p>
<p>Aber auch das Projektmanagement profitiert von Kanban: Ein einziger Blick auf das Board sorgt für Transparenz und bringt einen schnellen Überblick. Wie hoch ist die Auslastung? Wer arbeitet gerade an welcher Aufgabe? Was steht als nächstes an? Aufwändige Status-Meetings und Nachfragen reduzieren sich von selbst auf ein kurzes, tägliches Stand-Up-Meeting vor dem Board. Die Arbeitsplanung und umständliche Lokalisierung freier Entwicklerkapazitäten wird vereinfacht, da letztlich nur noch Karten ans Board gepinnt werden müssen</p>
<p>Unterm Strich sorgt Kanban damit für eine höhere Mitarbeiterzufriedenheit und Produktivität, obschon das System (fast) ohne Regeln auskommt. Henrik Kniberg, Kanban-Evangelist, bemerkt dazu lapidar: „Just inches from „Do whatever“, but still surprisingly powerful“ <a title="Kanban and Scrum (Minibook)" href="http://bit.ly/5iznN1" >[4]</a>. Recht hat er.</p>
<div class="article_author_box">
<p class="article_author_header"><span>Der Autor</span></p>
<div class="article_author_description"><img title="Daniel Haller " src="http://t3n.de/magazin/wp-content/uploads/authors/6cf1ce325c9ef9cfce690eea4703d1aa_thumb.jpg" alt="Daniel Haller " />Daniel Haller studierte in Darmstadt Media System Design, wo er 2009 diplomierte. Seitdem arbeitet er als Technischer Manager und Entwickler bei der Frankfurter Agentur BlueMars.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/kanban-simple-227559/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wireframing: Von der Idee zur App</title>
		<link>http://t3n.de/magazin/idee-app-227593/</link>
		<comments>http://t3n.de/magazin/idee-app-227593/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 08:36:11 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=227593</guid>
		<description><![CDATA[„Ich habe da eine Idee für eine App!“ Das hört man des Öfteren. Entscheidend für den Erfolg einer App ist aber nicht nur eine wirklich gute Idee, sondern die richtige Herangehensweise bei der Konzeption. Dabei gibt es Basics, die jeder Konzepter kennen sollte, und nützliche Tools, die einem den Weg zur App erleichtern. Ob Furzkissen-App [...]]]></description>
			<content:encoded><![CDATA[<p>„Ich habe da eine Idee für eine App!“ Das hört man des Öfteren. Entscheidend für den Erfolg einer App ist aber nicht nur eine wirklich gute Idee, sondern die richtige Herangehensweise bei der Konzeption. Dabei gibt es Basics, die jeder Konzepter kennen sollte, und nützliche Tools, die einem den Weg zur App erleichtern.<span id="more-227593"></span></p>
<p>Ob Furzkissen-App oder die fünfundzwanzigste Taschenlampen-App, die Sinnhaftigkeit solcher Applikationen stellen nicht nur Entwickler, sondern mehr und mehr vor allem die Nutzer in Frage. Für jene, die ernsthafte Apps entwickeln, gilt: innovativ und neu, nutz- und gewinnbringend müssen sie sein. Bei über 300.000 Applikationen im iPhone App-Store machen Mehrwert, Nutzen genauso wie Usability den Erfolg künftiger Apps aus.</p>
<h2>Dasselbe Spiel, eine andere Liga</h2>
<p>Unabhängig von Idee und Plattform sind die Bedienbarkeit und damit die Akzeptanz der Nutzer entscheidend für den Erfolg einer App. Hierfür muss man sich von klassischen Webkonzepten lösen. Mobile Endgeräte stehen im Vergleich zu Desktop-Computern in einem völlig anderen Nutzungskontext. Wechselnde Lichtverhältnisse, akustische Beeinträchtigungen, Ablenkungen durch ein hektisches Umfeld sowie eine eventuell suboptimale Netzabdeckung sind da nur einige Faktoren, die man bei der Entwicklung mobiler Applikationen berücksichtigen muss. Aufgrund ihrer geringen Bildschirmgröße bieten Smartphones außerdem nur wenig Platz für Content und Bedienelemente. Diese veränderten Rahmenbedingungen diktieren die Anforderungen an das Konzept und die damit verbundene Usability einer mobilen Anwendung.</p>
<h2>Groovende Apps</h2>
<p>Setzt das Konzept auf bereits erlernte Interaktionsprinzipien und -elemente, mit denen der Nutzer durch sein jeweiliges Betriebssystem schon vertraut ist, findet er sich besser zurecht. Dadurch erleichtert man ihm den Einstieg schon ab der ersten Nutzung erheblich. Einen realen Mehrwert schafft das Einbeziehen von Funktionalitäten der Endgeräte. In der App-Gestaltung sollte man daher die gestenbasierte Steuerung auf Multi-Touch-Displays berücksichtigen.</p>
<p>Dazu zählen unter anderem doppeltes Antippen („Double-Tap“) oder Zoomen mit zwei Fingern („Pinching“). Die lagesensitive Steuerung ermöglicht dem Nutzer, sein Gerät vertikal oder horizontal zu halten, Inhalte passen sich entsprechend an. Ebenso birgt der Neigungssensor weitere ungeahnte Möglichkeiten. Die automatische Standortermittlung findet ihren Einsatz beim Auffinden von Personen, Orten oder Ereignissen in der Nähe.</p>
<h2>Jedes Pixel zählt</h2>
<p>
<figure id="attachment_229261" class="caption alignnone">
	<a href="http://t3n.de/magazin/idee-app-227593/absatz_spaltenlayout-2/" rel="attachment wp-att-229261"><img class="size-large wp-image-229261 " title="Absatz_SpaltenLayout" src="http://t3n.de/magazin/wp-content/uploads/2011/05/Absatz_SpaltenLayout-243x596.jpg" alt="Absatz SpaltenLayout" width="243" height="596" /></a>
	<figcaption>Single-Spalten-Layouts machen Inhalte scrollbar, sodass der Nutzer nicht zoomen muss.</figcaption>
</figure>
</p>
<p>Den geringen Platz richtig nutzen – eine Vorgabe, die durch die kleineren Bildschirmgrößen von mobilen Endgeräten eine Grundvoraussetzung für erfolgreiche Applikationen ist. Das heißt konkret, sich auf die essenziellen Funktionen zu konzentrieren und Inhalte zu reduzieren. Dabei kann der Einsatz eines Layouts mit nur einer Spalte helfen, das die gesamte Bildschirmbreite ausnutzt.</p>
<p>Obwohl Icons „small-screen-freundlich“ sind, da sie weniger Platz als Beschriftungen verbrauchen, ist es von entscheidender Bedeutung, dass die Nutzer diese auch verstehen. Um das Verständnis von Symbolen sicherzustellen, können kleine Textbeschreibungen unter dem Symbol stehen, speziell innerhalb einer Navigation. Dieser Kompromiss unterstützt unerfahrenere Nutzer, die mit dem Symbol weniger vertraut sind. Experten, die das Icon bereits kennen, werden dadurch jedoch nicht behindert. Ziel ist es, dass der Nutzer die App herunterlädt, öffnet und nutzt – ohne Erklärungen und ohne ein Herantasten. Applikationen für mobile Endgeräte müssen als „walk-up-and-use-system“ an den Markt gehen.</p>
<div id="attachment_227595" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=227593dms_69fe61af2a54d215b7ce8987298abd17"><img class="alignleft size-large wp-image-227595" title="Die Kombination von Symbol und Text ist gerade bei der Navigation ein Gestaltungsprinzip, das dem  Nutzer bereits bekannt ist." src="http://t3n.de/magazin/wp-content/uploads/2011/04/dms_69fe61af2a54d215b7ce8987298abd17-596x120.jpg" alt="Die Kombination von Symbol und Text ist gerade bei der Navigation ein Gestaltungsprinzip, das dem  Nutzer bereits bekannt ist." width="596" height="120" /></a></p>
<p class="wp-caption-text">Die Kombination von Symbol und Text ist gerade bei der Navigation ein Gestaltungsprinzip, das dem Nutzer bereits bekannt ist.</p>
</div>
<h2>Finger sind keine Mauszeiger</h2>
<p>Konzepter müssen allerdings nicht nur eine Sichtbarkeit der Buttons und Links auf dem Touchscreen gewährleisten, sondern auch die Bedienung mit dem Finger optimal ermöglichen. Daher muss man bei der Konzeption die Bedienelemente in einer entsprechenden Größe und mit ausreichend Raum platzieren. Nur so minimiert man die Wahrscheinlichkeit einer falschen Berührung.</p>
<h2>Everything as simple as possible</h2>
<p>Auch die beste Tastatur eines Smartphones kann einer Computertastatur mit entsprechender Größe nicht das Wasser reichen. Anwender machen auf dem mobilen Endgerät weit mehr Fehler und sind langsamer beim Tippen. Daher sollte man Texteingaben innerhalb einer Applikation so häufig wie möglich vermeiden. Lösungen hierfür sind zum Beispiel, den Nutzern den Zugriff auf bereits gespeicherte Daten zu erlauben oder eine PIN statt eines Passworts zu verwenden. Eine innovative Form für den Input von Informationen besteht in der Verwendung von QR-Codes – sie sind nützlich und machen Spaß.</p>
<h2>Gib mir Feedback</h2>
<p>Direktes Feedback ist wichtiger als je zuvor. Nach einer Interaktion zwischen Nutzer und Applikation muss der Nutzer Feedback darüber bekommen, was gerade passiert beziehungsweise was bereits geschehen ist. Das fängt bei Ladevorgängen an und hört beim Tap auf eine Interaktionsfläche auf. Je nach mobilem Nutzungskontext ist die Internetanbindung nicht mit gleicher Qualität gewährleistet. Ein Ladekreisel unterstützt den User dabei zu verstehen, dass die Anwendung gerade im Hintergrund arbeitet. Die farbliche Veränderung bei Berührung einer Schaltfläche verdeutlicht, dass diese tatsächlich aktiviert wurde. Speziell bei Touchscreen-Geräten ist dieses Feedback von Bedeutung. Zusätzlich zur visuellen Rückmeldung eignen sich auch die gerätespezifischen Funktionalitäten, wie die Vibration. Diese Features sprechen gleich mehrere Sinne des Users an.</p>
<div id="attachment_227596" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=227593dms_bea719fe22055a59e4529f477c2c5a9f"><img class="alignleft size-large wp-image-227596" title="Durch die farbliche Veränderung bei Berührung einer Schaltfläche wird verdeutlicht, dass diese tatsächlich aktiviert wurde." src="http://t3n.de/magazin/wp-content/uploads/2011/04/dms_bea719fe22055a59e4529f477c2c5a9f-596x435.jpg" alt="Durch die farbliche Veränderung bei Berührung einer Schaltfläche wird verdeutlicht, dass diese tatsächlich aktiviert wurde." width="596" height="435" /></a></p>
<p class="wp-caption-text">Durch die farbliche Veränderung bei Berührung einer Schaltfläche wird verdeutlicht, dass diese tatsächlich aktiviert wurde.</p>
</div>
<h2>Nützliche Werkzeuge für erfolgreiche Konzepte</h2>
<p>Die Anforderungen der Zielgruppen sind das A und O für den Erfolg einer
Anwendung. Diverse Werkzeuge helfen dabei, sich den Anforderungen der
Nutzer anzunähern und diese gleichzeitig dem Kunden zu vermitteln. Der
Einsatz von Rollenmodellen (Personas) und Nutzungsszenarien (Use Cases)
unterstützen dabei, sich in den Nutzer hineinzuversetzen und ihn
greifbar zu machen. Für die Auswahl der konzeptionellen Tools gibt es kein Nonplusultra. Individuelles Eingehen auf Projekt und Auftraggeber ist unabdingbar. Die Auswahl ist abhängig von Abstraktionsfähigkeit und technischem sowie gestalterischem Background des Kunden. Ebenso ist der zeitliche Rahmen des Projekts ein Auswahlkriterium für die Art des zu liefernden konzeptionellen Ergebnisses.</p>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/idee-app-227593/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS leicht gemacht &#8211; wichtige Kniffe für mehr Übersicht</title>
		<link>http://t3n.de/magazin/css-leicht-gemacht-227553/</link>
		<comments>http://t3n.de/magazin/css-leicht-gemacht-227553/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 11:55:46 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=227553</guid>
		<description><![CDATA[Wer Webseiten baut, kommt an CSS nicht vorbei. Und dank breiter CSS3-Unterstützung der Browser bieten sich die Stylesheets zunehmend für komplexere Aufgaben an, etwa abgerundete Ecken oder Schattierungen. Mit wachsendem Einsatz nehmen aber auch Umfang und Komplexität der CSS-Dateien zu. Höchste Zeit also, die Wartung der Layouts mit Hilfsmitteln zu vereinfachen. &#160; Beim Bau einer [...]]]></description>
			<content:encoded><![CDATA[<p>Wer Webseiten baut, kommt an CSS nicht vorbei. Und dank breiter CSS3-Unterstützung der Browser bieten sich die Stylesheets zunehmend für komplexere Aufgaben an, etwa abgerundete Ecken oder Schattierungen. Mit wachsendem Einsatz nehmen aber auch Umfang und Komplexität der
CSS-Dateien zu. Höchste Zeit also, die Wartung der Layouts mit Hilfsmitteln zu vereinfachen.<span id="more-227553"></span></p>
<p>
<figure id="attachment_229277" class="caption alignnone">
	<img class="size-large wp-image-229277" title="iStock_000014840887Medium_7io_bearb" src="http://t3n.de/magazin/wp-content/uploads/2011/05/iStock_000014840887Medium_7io_bearb-596x366.jpg" alt="iStock 000014840887Medium 7io bearb" width="596" height="366" />
	<figcaption>(Bildnachweis: io7/iStock)</figcaption>
</figure>
</p>
<p>&nbsp;</p>
<p>Beim Bau einer CSS-Datei kommt es nicht selten vor, dass man für verschiedene Elemente ähnliche oder gar redundante Anweisungen vornimmt. Bestes Beispiel hierfür sind Farbangaben. Aber auch Angaben für Formatierungen, Abstände oder Größen weisen häufig Abhängigkeiten innerhalb einer oder mehrerer CSS-Dateien auf. Ein Programmierer würde hier wiederkehrende Elemente zentral definieren, Vorlagen verwenden und den eigentlichen CSS-Quellcode anschließend generieren lassen. Genau das ist der Ansatz von Syntactically Awesome Stylsheets (SASS) <a title="SASS" href="http://sass-lang.com/" >[1]</a>. CSS-Stylesheets werden um Möglichkeiten erweitert, die Zusammenhänge zwischen verschiedenen Angaben in Form einer eigenen „Sprache“ notieren.</p>
<p>Eines der Ziele bei der Entwicklung der nächsten TYPO3-Generation 5.x (Codename „Phoenix“) war es, wo möglich auf Grafiken zu verzichten und gestalterische Elemente durch die reine Verwendung von HTML und CSS abzubilden. Dies erleichtert dann auch die einfache und zentrale Anpassbarkeit. Entsprechend verwundert es wenig, dass sich die Entwickler entschieden, die CSS-Angaben mit Hilfe von SASS aus zentralen Layout-Definitionen zu generieren.</p>
<p>Bei SASS existieren zwei verschiedene Syntax-Varianten. Die klassische Syntax (Dateiendung .sass) verzichtet auf Klammern und setzt stattdessen auf Einrückungen zur Gliederung von Elementen. Die ab SASS3 unterstützte „SCSS“-Syntax („Sassy CSS“, dt.: freches CSS, Dateiendung .scss) hingegen setzt auf CSS3, verwendet also Klammern und erweitert CSS um zusätzliche Möglichkeiten. Innerhalb eines Projekts ist es auch möglich, SASS- und SCSS-Syntax zu mischen. Je Datei findet aber jeweils nur eine Syntax Anwendung. Im Folgenden liegt der Fokus auf der SCSS-Syntax.</p>
<h2>Erste Schritte</h2>
<p>Das Werkzeug zur Umwandlung von SCSS/SASS-Code in CSS-Code selbst ist in Ruby geschrieben. Aber keine Angst: Wer das Tool nicht im Kern erweitern, sondern einfach nur nutzen möchte, benötigt keine Ruby-Kenntnisse. Nach Installation des Ruby-Gems „haml“ per „gem install haml“ ist das SASS-Tool auch schon für den ersten Einsatz bereit. Wer ein HAML-Paket seiner Linux-Distribution nutzen möchte, sollte beachten, dass dies die SCSS-Syntax erst ab Version 3.0 unterstützt.</p>
<p>Mit „sass style.scss:style.css“ ist die Konvertierung einer einzelnen Datei möglich. Alternativ können hier auch Quell- und Zielverzeichnis angegeben werden, die dann rekursiv abgearbeitet werden. Mit „sass --watch style.scss:style.css“ ist es außerdem möglich, einen Live-Modus zu aktivieren, bei dem die Quelldateien auf Änderungen beobachtet und die Zieldateien automatisch neu generiert werden.</p>
<p>Wie die Ausgabe aussieht, bestimmt das „--style“-Attribut. Standardmäßig aktiv ist „nested“; Einrückungen also, die die CSS-Hierarchie leserlich darstellen. Alternativ lassen sich die Angaben über „compressed“ auf das Nötigste reduzieren oder mittels „compact“ auf eine Zeile komprimieren.</p>
<h2>Variablen</h2>
<p>Jede gültige CSS3-Datei ist automatisch auch eine gültige SCSS-Datei. Ein zu Beginn häufig verwendetes Beispiel ist die zentrale Definition von Farben und Größenangaben mit Hilfe von Variablen. Diese werden in der Form „$variablenname“ angegeben, gefolgt von einem Doppelpunkt sowie dem gewünschten Wert, der selbst eine gültige CSS-Angabe ist. Auch ist es möglich, einfache mathematische Konstrukte wie Additionen oder Multiplikationen zu nutzen. Für diverse andere Anwendungen stehen sogar Funktionen bereit, etwa zur Berechnung von Farbwerten.</p>
<div class="article_code_box"><span class="article_code_title">Variablen und Funktionen</span></p>
<pre>$dark-white: #f1f1f1;
$grey: lighten(#000000, 20%);
$light-grey: #9e9e9e;
$small-radius: 3px;
$mid-radius: 5px;

a.link-help {
	color: $light-grey;
}

div.button {
	width: 20px - 2*$small-radius;
}</pre>
<p><span class="article_code_subtitle">Listing 1</span></p>
</div>
<p>Wiederkehrende Angaben lassen sich auch per „mixin“ auslagern und dann über „include“ an verschiedenen Stellen nutzen. Dabei ist die Angabe von optionalen Parametern möglich – ganz im Stil programmierter Funktionen.</p>
<div class="article_code_box"><span class="article_code_title">Mixin und Include</span></p>
<pre>@mixin rounded-corners-middle-right {
	-moz-border-radius: 0 $mid-radius $mid-radius 0;
	-webkit-border-radius: $mid-radius;
}

@mixin spacing($margin: 5px) {
	margin-right: $margin;
}

.errorMessages {
	@include rounded-corners-middle;
	@include spacing(10px);
	border: 1px solid #000000;
}</pre>
<p><span class="article_code_subtitle">Listing 2</span></p>
</div>
<h2>Verschachteln</h2>
<p>Besonders hilfsreich ist die Verwendung von verschachtelten Angaben. Sie erleichtern den Überblick, geben den Definitionen klare Strukturen und ermöglichen auf einfache Weise beispielsweise die Umbenennung einer class-Angabe.</p>
<div class="article_code_box"><span class="article_code_title">Einrücken und verschachteln</span></p>
<pre>table.menu {
	background-color: blue;
	td.active {
		font-weight: bold;
		label {
			margin-left:10px;
		}
	}
}

div.headline {
	font: {
		weight: bold;
		size: 1.2em;
	}
}</pre>
<p><span class="article_code_subtitle">Listing 3</span></p>
</div>
<div class="article_code_box"><span class="article_code_title">Ergebnis in CSS</span></p>
<pre>table.menu { background-color: blue; }
table.menu td.active { font-weight: bold; }
table.menu td.active label { margin-left: 10px; }
div.headline { font-weight: bold; font-size: 1.2em; }</pre>
<p><span class="article_code_subtitle">Listing 4</span></p>
</div>
<h2>Vererben</h2>
<div class="article_code_box"><span class="article_code_title">Vererbung</span></p>
<pre>.important {
	font-weight:bold;
}
.headline {
	font-size:1.2em;
}
.importantErrorheadline {
	@extend .important;
	@extend .headline;
	color: red;
}</pre>
<p><span class="article_code_subtitle">Listing 5</span></p>
</div>
<p>Durch die Vererbung von einem oder mehreren Selektoren ist es möglich,
selbst komplizierte Abhängigkeiten einfach und strukturiert abzubilden.
Auch ist die Vererbung entlang einer Kette von Selektoren ist möglich.</p>
<div class="article_code_box"><span class="article_code_title">Ergebnis in CSS</span></p>
<pre>.important, .importantErrorheadline { font-weight: bold; }
.headline, .importantErrorheadline { font-size: 1.2em; }
.importantErrorheadline { color: red; }</pre>
<p><span class="article_code_subtitle">Listing 6</span></p>
</div>
<h2>Auslagern und Einbinden</h2>
<p>Wiederkehrende Werte und Definitionen werden bestenfalls bereits zu Beginn ausgelagert. Dies ermöglicht es, die im weiteren Verlauf eines Projekts üblicherweise stetig steigende Komplexität der CSS-Angaben auf ein überschaubares Maß zu reduzieren. Auch lassen sich so Module in verschiedenen CSS-Dateien zentral und einfach wiederverwenden. Dank mathematischer Ausdrücke und Funktionen lassen sich so Ursprungswerte wie die zu verwendende Bildschirmbreite zentral ändern und abhängige Werte automatisch neu berechnen.</p>
<div class="article_code_box"><span class="article_code_title">Einbinden</span></p>
<pre>@include „Dateiname“;</pre>
<p><span class="article_code_subtitle">Listing 7</span></p>
</div>
<p>Beginnt der Dateiname mit einem
Unterstrich, signalisiert dies SASS übrigens, dass die Datei nicht in eine
eigenständige CSS-Datei zu konvertieren ist. Sie wird stattdessen lediglich als Modul
innerhalb anderer Dateien genutzt.</p>
<h2>Fazit</h2>
<p>Die Möglichkeit beispielsweise Längen, Abstände und Farben zentral zu definieren erhöht die Übersichtlichkeit bereits enorm <a title="Video-Podcast zu SASS" href="http://bit.ly/fZoUO9" >[2]</a>. Verbunden mit mathematischen Operationen, Funktionen und wiederverwendbaren Blöcken wird es auf flexible Weise möglich, mit CSS-Angaben zu „programmieren“. Der Funktionsumfang lässt sich zudem durch andere Bibliotheken, etwa Compass <a title="Compass" href="http://compass-style.org/" >[3]</a>, erweitern – sie bringen fertige Mixins, Vorlagen und eine wachsende Community. Durch die Generierung von standard-konformem CSS3 lässt sich SASS/SCSS außerdem ohne Anpassung mit allen Browsern nutzen.</p>
<div class="article_author_box">
<p class="article_author_header"><span>Der Autor</span></p>
<div class="article_author_description"><img title="Stefan Neufeind" src="http://t3n.de/magazin/wp-content/uploads/authors/7aba6205c5f75c59b2cf4d71a2f89f16_thumb.jpg" alt="Stefan Neufeind" />Stefan Neufeind arbeitet als Experte für Webentwicklung und -administration bei der SpeedPartner GmbH in Neuss. Er ist Mitglied im TYPO3 Certification Team und engagiert sich in verschiedenen Open-Source-Projekten von PHP/PEAR bis hin zu OpenStreetMap. Außerdem ist er als Speaker auf Konferenzen zu Themen wie IPv6 und DNSSEC anzutreffen und als Autor für IT-Fachmagazine aktiv.</p>
<p style="clear: both;">
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/css-leicht-gemacht-227553/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Magento: Aus dem Shopsystem mehr Performance rausholen</title>
		<link>http://t3n.de/magazin/magento-tunen-227618/</link>
		<comments>http://t3n.de/magazin/magento-tunen-227618/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 10:40:22 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=227618</guid>
		<description><![CDATA[Wer einen Onlineshop plant, kommt an Magento kaum vorbei. Das Open-Source-System punktet vor allem mit Flexibilität. Doch die geht zu Lasten der Leistung. Vermeintlich, denn auch aus Magento lässt sich jede Menge Performance herausholen. Bequem vom eigenen Sofa aus zu bestellen, scheint Volkssport geworden zu sein. Doch ob Besucher eines Onlineshops verweilen und schließlich einkaufen [...]]]></description>
			<content:encoded><![CDATA[<p>Wer einen Onlineshop plant, kommt an Magento kaum vorbei. Das Open-Source-System punktet vor allem mit Flexibilität. Doch die geht zu Lasten der Leistung. Vermeintlich, denn auch aus Magento lässt sich jede Menge Performance herausholen.<span id="more-227618"></span></p>
<p>Bequem vom eigenen Sofa aus zu bestellen, scheint Volkssport geworden zu sein. Doch ob Besucher eines Onlineshops verweilen und schließlich einkaufen oder direkt wieder in den Weiten des Webs verschwinden, hängt von vielen Faktoren ab: Finden sie auf Anhieb, was sie gesucht haben? Erscheint der Shop vertrauenswürdig? Passen Preise für Produkte und Versand?</p>
<p>Hinzu kommt die Reaktionszeit der Seite, die einen großen Anteil am „Wohlfühlfaktor“ des Besuchers hat. Wenn der Nutzer den Eindruck hat, dass die Seite nur behäbig auf die Eingaben reagiert, macht das Surfen durch die Produkte des Shops nur wenig Spaß und der Einkauf wird bei Mitbewerbern fortgesetzt. Google wird deshalb in Zukunft die Ladegeschwindigkeit einer Seite stärker in seine Beurteilung innerhalb der Suche einbeziehen – ein weiterer Grund, ein Auge auf die Performance zu werfen.</p>
<h2>Flexibilität als Fluch und Segen</h2>
<p>Flexibilität galt bei Magento von Beginn an als Maxime. Über Module und Templates lässt sich das System sowohl funktional als auch optisch an fast alle Anforderungen und Ansprüche der Shopbetreiber anpassen. Nicht zuletzt dieser Flexibilität ist die hohe Beliebtheit Magentos zu verdanken.</p>
<p>Gleichzeitig erweist sich diese Flexibilität aber als größter Feind der Performance. Statt Prozesse, Daten und Layouts strikt festzulegen, bleibt dem Betreiber immer die Möglichkeit, Dinge anzupassen und zu erweitern. Dass das System hierdurch komplexere Routinen durchlaufen muss, ist die logische Konsequenz.</p>
<p>Bestes Beispiel hierfür ist das Entity-Attribute-Value-Pattern (EAV), das Magentos Datenmodelle hochgradig flexibel macht. Über das Backend können Betreiber Produkte frei mit beliebigen Attributen verschiedener Typen ausstatten. Die Besucher können dann Produkte anhand dieser Attribute vergleichen, filtern oder suchen.</p>
<p>Andererseits ist EAV sehr performancelastig. Im Gegensatz zu herkömmlichen Datenbankmodellen, bei denen die Eigenschaften eines Objekts in einzelnen Spalten einer flachen Tabelle gespeichert werden, teilt EAV die Daten in mehrere Tabellen auf: Entitätstypen wie Produkte, Kategorien oder Kunden werden zentral in der Tabelle eav_entity_type definiert. Attribute zu Produkten werden in eav_attribute spezifiziert und den jeweiligen Entitätstypen zugeordnet. Optionen für Auswahl-Attribute werden in eav_attribute_option, deren Labels in eav_attribute_option_value gespeichert. Die eigentlichen Daten der Produkte, Kategorien und sonstigen EAV-Objekte liegen aber in den Wertetabellen. Hierbei handelt es sich um eine Kopftabelle (beispielsweise catalog_product_entity) und bis zu neun datentypspezifische Tabellen für Integer, Texte, Datumswerte und andere.</p>
<div id="attachment_227619" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=227618dms_f1fb7c0bef45383cd00ab2914cc210fb"><img class="alignleft size-large wp-image-227619" title="Ganze fünf Tabellen sind nötig, um das Entity-Attribute-Pattern abzubilden; die Werte selbst, die das EAV komplettieren, fehlen in der Abbildung aus Platzgründen." src="http://t3n.de/magazin/wp-content/uploads/2011/04/dms_f1fb7c0bef45383cd00ab2914cc210fb-596x473.jpg" alt="Ganze fünf Tabellen sind nötig, um das Entity-Attribute-Pattern abzubilden; die Werte selbst, die das EAV komplettieren, fehlen in der Abbildung aus Platzgründen." width="596" height="473" /></a></p>
<p class="wp-caption-text">Ganze fünf Tabellen sind nötig, um das Entity-Attribute-Pattern abzubilden; die Werte selbst, die das EAV komplettieren, fehlen in der Abbildung aus Platzgründen.</p>
</div>
<p>Um nun ein Produkt vollständig aus der Datenbank zu lesen, muss zunächst bestimmt werden, welche Attribute diesem Produkt zugeordnet sind, um anschließend die jeweiligen Werte auslesen zu können. Hierfür sind mehrere Datenbankzugriffe über mehrere Tabellen notwendig, was mehr Zeit und Ressourcen in Anspruch nimmt als der Zugriff auf eine einzelne Tabelle.</p>
<p>Ein weiteres Beispiel sind die Module: Über XML-Konfigurationen lässt sich das Verhalten anderer Module anpassen, indem beispielsweise Klassen dynamisch ausgetauscht werden. Hierdurch wird der Instanzierungsprozess von Klassen jedoch deutlich gebremst. Noch verstärkt wird dieser Effekt durch die vier Codepools „lib“, „core“, „community“ und „local“, durch die die Ordnung und Update-Fähigkeit des Systems gewahrt bleiben soll. Wird eine bestimmte Klasse gesucht, probiert das System die vier Ordner rückwärts durch. Dadurch wird das Laden der Klassen in Magento paradoxerweise schneller, je mehr Klassen in „local“ oder „community“ überschrieben werden.</p>
<h2>Caching, Caching, Caching</h2>
<p>Um Flexibilität und Performance unter einen Hut zu bringen, beinhaltet Magento diverse Caching-Mechanismen. Hierbei wird ausgenutzt, dass die meisten Konfigurationseinstellungen zu Beginn eines Projekts stark variieren, zur eigentlichen Produktivphase jedoch überwiegend gleich bleiben.</p>
<p>Eine Übersicht über die Zustände der Caches findet man im Backend bei System, Cache Management. Während es für die Entwicklungsumgebung durchaus sinnvoll sein kann, die Caches zu deaktivieren, ist dies in der Produktivumgebung keine Option. Innerhalb des Caching-Moduls finden sich folgende Optionen:</p>
<ul>
<li>Konfiguration: Beinhaltet die Grundkonfiguration des Systems sowie die Konfiguration aller aktiven Module.</li>
<li>Layouts: Definition der Ausgabeblöcke sowie deren Positionen.</li>
<li>Block HTML-Ausgabe: Speichert die HTML-Ausgaben von Blöcken, wenn diese für Caching konfiguriert wurden.</li>
<li>Übersetzungen: Dieser Cache speichert die verschiedenen Übersetzungen zentral ab.</li>
<li>Kollektionsdaten: Bestimmte Listen werden in Magento immer wieder aufgerufen. Werden diese zwischengespeichert, kann wertvolle Zeit gespart werden.</li>
<li>EAV-Typen und -Attribute: Konfiguration der verschiedenen EAV-Elemente, sodass diese nicht permanent aus der Datenbank gelesen werden müssen.</li>
<li>Konfiguration der Webdienste: Vorrangig für die SOAP-API interessant; speichert öffentliche Methoden und Zugriffsrechte.</li>
</ul>
<p>Obschon überall zu Caching geraten wird, finden sich in der Praxis noch zu viele Magento-Shops mit (partiell) deaktiviertem Cache. Das ist zum Teil einer fehlenden Unterstützung durch Templates oder Erweiterungen von Drittanbietern geschuldet: Haben die Entwickler Caching bei der Programmierung nicht vorgesehen, beeinträchtigt dies unter Umständen die komplette Installation.</p>
<h2>Cache-Keys</h2>
<p>Ob Magento einen Block live generieren muss oder eine valide Version aus dem Cache beziehen kann, wird anhand so genannter Cache-Keys entschieden. Diese geben den aktuellen Zustand der Ausgabe wieder und werden vor der Ausgabe eines Blocks generiert.</p>
<p>Wird der aktuelle Zustand in einem gültigen Eintrag im Speicher gefunden, kann der dort hinterlegte Inhalt direkt ausgegeben werden, ohne weitere Programmlogik ausführen zu müssen. Wird der Block nicht im Speicher gefunden, erzeugt Magento die Blockausgabe und legt diese für die definierte Cache-Lebenszeit statisch ab. Ohne Cache-Informationen im Block kann das System die Blockausgaben nicht zwischenspeichern und erzeugt die Ausgaben bei jedem Zugriff dynamisch.</p>
<p>Die Definition der Cache-Angaben erfolgt in der Regel im
Magento-eigenen Platzhalterkonstruktor des Blocks (Template Method
Pattern).</p>
<div class="article_code_box"><span class="article_code_title">Definition der Cache-Header im Block</span></p>
<pre>class T3n_Example_Block_Example extends Mage_Core_Block_Template
{
	protected function _construct()
	{
		$this-&gt;addData(array(
			'cache_lifetime'	=&gt; 86400,
			'cache_tags'	=&gt; array(Mage_Catalog_Model_Product::CACHE_TAG)
		));
	}

	public function getCacheKeyInfo() {
		return array(
			'T3N_EXAMPLE',
			(int)Mage::app()-&gt;getStore()-&gt;isCurrentlySecure(),
			Mage::getDesign()-&gt;getPackageName(),
			Mage::getDesign()-&gt;getTheme('template')
		);
	}

}</pre>
<p><span class="article_code_subtitle">Listing 1</span></p>
</div>
<p>Der angegebene Wert in der Cache-Lifetime definiert den Zeitraum in Sekunden, für den der Cache gültig sein soll. Der Wert sollte mit Bedacht gewählt werden. Fällt er zu niedrig aus, wird der Block zu häufig dynamisch generiert. Ist er zu hoch, kommt es zu keiner Aktualisierung und die Informationen bleiben länger im Speicher als gewünscht. Im Beispiel wird eine Cache-Lebenszeit von einem Tag (in Sekunden; 60 x 60 x 24 = 86400) definiert.</p>
<p>Die Cache-Tags unterteilen die Informationen im Cache in verschiedene Kategorien. Diese Kategorien werden etwa verwendet, um bestimmte Bestandteile gezielt zu aktivieren, zu deaktivieren oder zu verwerfen. Genau das passiert auch beim Löschen eines Caches über das Magento-Backend.</p>
<div id="attachment_227620" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=227618dms_160b12233d5779cf908fbd5f44bf36d8"><img class="alignleft size-large wp-image-227620" title="Im Backend lassen sich die einzelnen Caches überwachen und steuern." src="http://t3n.de/magazin/wp-content/uploads/2011/04/dms_160b12233d5779cf908fbd5f44bf36d8-596x177.jpg" alt="Im Backend lassen sich die einzelnen Caches überwachen und steuern." width="596" height="177" /></a></p>
<p class="wp-caption-text">Im Backend lassen sich die einzelnen Caches überwachen und steuern.</p>
</div>
<p>Dritter Bestandteil des Listings ist die Definition des Keys in der Methode getCacheKeyInfo. Der Cache-Key ist der eindeutige Bezeichner für eine im Cache hinterlegte Information. Die Werte des Cache-Keys sollten alle verschiedenen Zustände eines Blocks wiedergeben, die einzeln gespeichert werden. Erlaubt ein Block verschiedene Zustände, so darf es genauso viele unterschiedliche Cache-Keys für den aktuellen Block geben. Um Cache-Kollisionen mit anderen Blöcken zu vermeiden, wird als erster Teil meist der Identifikator des aktuellen Blocks verwendet. Weitere Komponenten sind häufig das Package und Theme sowie die Sprache.</p>
<h2>Cache-Backends</h2>
<p>Wie die Caching-Daten gespeichert werden, entscheidet die Wahl der Cache-Backends, welche in der Konfigurationsdatei app/etc/local.xml eingestellt werden.</p>
<div class="article_code_box"><span class="article_code_title">Beispiel einer Cache-Backend-Konfiguration</span></p>
<pre>&lt;config&gt;
	&lt;cache&gt;
		&lt;backend&gt;memcached&lt;/backend&gt;
		&lt;slow_backend&gt;database&lt;/slow_backend&gt;
		&lt;fast_backend&gt;memcached&lt;/fast_backend&gt;
		&lt;memcached&gt;
			&lt;servers&gt;
				&lt;server&gt;
					&lt;host&gt;192.168.0.1&lt;/host&gt;
					&lt;port&gt;11211&lt;/port&gt;
					&lt;persistent&gt;0&lt;/persistent&gt;
				&lt;/server&gt;
			&lt;/servers&gt;
		&lt;/memcached&gt;
	&lt;/cache&gt;
	[...]
&lt;/config&gt;</pre>
<p><span class="article_code_subtitle">Listing 2</span></p>
</div>
<p>In &lt;backend&gt; wird das Cache-Backend eingetragen, welches mit der Zwischenspeicherung beauftragt werden soll. Mögliche Werte sind memcached, apc, xcache, eaccelerator, sqlite, database und file. Wird kein Wert übergeben, nutzt Magento standardmäßig den dateibasierten Cache.</p>
<p>Die vier erstgenannten Cache-Backends sind arbeits­speicher­basiert und dementsprechend schnell; allerdings sind sie nicht persistent und unterstützen keine Cache-Tags. Sie werden deshalb im Rahmen des Two-Level-Cache-Backends mit einem langsameren, aber persistenten Speicher kombiniert. Dies geschieht über die Konfigurations-Tags &lt;slow_backend&gt; und &lt;fast_backend&gt;. Darüber hinaus werden dem memcached-Backend im Beispiel noch notwendige Serverinformationen übergeben.</p>
<p>Zur Verbesserung der Two-Level-Cache-Performance existiert ein Cache-Modul <a title="Cache-Modul" href="https://github.com/Flagbit/Magento-Cache" >[1]</a>, welches verhindert, dass Magento bei jedem Lesezugriff den schnellen Cache neu schreibt. Über das Modul kann zusätzlich das Cache-Backend Libmemcached aktiviert werden, welches in den Benchmarks deutlich besser abschneidet als Memcached <a title="Benchmark" href="http://bit.ly/j4AaAj" >[2]</a>.</p>
<p>Empfohlen wird für einzelne Webserver übrigens APC mit File-Cache. Werden mehrere Webserver verwendet, sollte das Libmemcached- mit dem Datenbank-Backend kombiniert werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/magento-tunen-227618/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>HTML5 und die Sache mit den Kunden</title>
		<link>http://t3n.de/magazin/erfolgsstories-html5-227641/</link>
		<comments>http://t3n.de/magazin/erfolgsstories-html5-227641/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 08:51:49 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=227641</guid>
		<description><![CDATA[Seit knapp drei Jahren werden uns Webworkern HTML5, CSS3 und weitere moderne Techniken ans Herz gelegt. Browser bieten uns mit jeder neuen Version weitere Möglichkeiten, diese Techniken nutzen zu können. Richtig angekommen sind die neuen Standards aber erst, wenn Kunden von sich aus danach verlangen. Von all den Techniken, Spielereien und Trends, mit denen wir [...]]]></description>
			<content:encoded><![CDATA[<p>Seit knapp drei Jahren werden uns Webworkern HTML5, CSS3 und weitere moderne Techniken ans Herz gelegt. Browser bieten uns mit jeder neuen Version weitere Möglichkeiten, diese Techniken nutzen zu können. Richtig angekommen sind die neuen Standards aber erst, wenn Kunden von sich aus danach verlangen.<span id="more-227641"></span></p>
<p>
<figure id="attachment_229185" class="caption alignnone">
	<img class="size-large wp-image-229185" title="html5css3_82605-916x687" src="http://t3n.de/magazin/wp-content/uploads/2011/05/html5css3_82605-916x687-596x447.jpg" alt="html5css3 82605" width="596" height="447" />
	<figcaption>(Foto: daniel.julia / flickr.com, Lizenz: CC-BY-SA)</figcaption>
</figure>
</p>
<p>Von all den Techniken, Spielereien und Trends, mit denen wir Webworker uns in den letzten zehn Jahren beschäftigen durften, ist insbesondere eine bei allen Nutzern angekommen: Suchmaschinenoptimierung (SEO). Selbst wenig internetaffine Kunden fragen von sich aus nach SEO. Bessere Platzierungen versteht jeder und verlangt es dann auch für die eigene Webseite. Auch Barrierefreiheit hält langsam, aber sicher Einzug in den Webworker-Alltag. Firmen, die gesetzlich nicht dazu gezwungen sind, fragen beim Relaunch von sich aus danach – zumindest ab und zu. Ich meine: HTML5, CSS3 und all die anderen neuen Techniken sind erst dann im Mainstream angekommen, wenn Kunden direkt danach fragen.</p>
<h2>Webworker bevorzugt</h2>
<p>All die Aktionen, um HTML5 und CSS3 zu promoten, richten sich bisher vornehmlich an Webworker: Apples HTML5 Showcase <a title="Apples HTML5 Showcase" href="http://www.apple.com/html5/" >[1]</a>, Chrome Experiments <a title="Chrome Experiments" href="http://www.chromeexperiments.com/" >[2]</a>, Mozillas Showcase Web O'Wonder <a title="Web O(pen) Wonder" href="https://demos.mozilla.org/de/" >[3]</a>, der HTML5 Doctor <a title="HTML5 Doctor" href="http://html5doctor.com/" >[4]</a> oder Dive into HTML5 <a title="Dive into HTML5" href="http://diveintohtml5.org/" >[5]</a>. Das ist natürlich legitim, denn zunächst müssen erst einmal genügend Browser die Techniken unterstützen und Webworker müssen wissen, wie sie die Techniken einsetzen können.</p>
<p>Die neuen Techniken bringen bekanntlich native Unterstützung von Video und Audio, Geolocation, Drag &amp; Drop, bessere Formulare, Super Cookies (Local Storage) und Canvas. Das ist toll. Wir wissen das. Wird Zeit, dass es unsere Kunden auch wissen. Und es nicht nur wissen, sondern auch fordern. Der nächste Schritt heißt also, Kunden den Mehrwert von HTML5 und CSS3 zu zeigen.</p>
<p>Der größte Ansporn, Webseiten auf HTML5 umzurüsten, war bisher Apples Flash-Verweigerung. Also mussten viele Webseiten eine Möglichkeit finden, ihre Videos trotzdem zeigen zu können und landeten bei HTML5. Aber eben nicht wegen der Vorteile von HTML5, sondern schlicht, weil Flash nicht funktionierte.</p>
<h2>Zeit für Erfolgsstories</h2>
<p>Noch ist es möglich, durch HTML5-Spielereien aufzufallen, die andere Webseiten noch nicht nutzen. Die Indie-Rock-Band The Gamits hat zum Beispiel einen ihrer Songs zum Download angeboten <a title="Video-Puzzle „This Shell“" href="http://thisshell.com/" >[6]</a>. Dazu muss man jedoch zunächst ihr Video wieder zurechtpuzzeln. In den 3x6 Teilen läuft währenddessen das Video ab. Das ist eine hübsche Idee und nicht so leicht, wie es sich anhört; in gewissen Kreisen spricht sich das auch schnell herum.</p>
<p>Besser sind überzeugende Zahlenspiele. Nach dem Motto: Wir haben unsere Webseite umgestellt und erledigen alle runden Ecken, Schatten und Verläufe nun mit CSS3. Wir sparen damit x Kilobyte beim Laden der Seite, sie lädt schneller und wir haben y Prozent mehr Verkäufe. Oder: Seit unserer Usability-Optimierung mit Drag &amp; Drop haben wir z Prozent mehr Umsatz erzielt.</p>
<p>
<figure id="attachment_229184" class="caption alignnone">
	<a href="http://t3n.de/magazin/erfolgsstories-html5-227641/bildschirmfoto-2011-12-16-um-092257/" rel="attachment wp-att-229184"><img class="size-large wp-image-229184" title="Bildschirmfoto 2011-12-16 um 09.22.57" src="http://t3n.de/magazin/wp-content/uploads/2011/05/Bildschirmfoto-2011-12-16-um-09.22.57-596x380.jpg" alt="Bildschirmfoto 2011 12 16 um 09.22.57" width="596" height="380" /></a>
	<figcaption>Hübsch anzusehen: Video-Puzzle „This Shell“.</figcaption>
</figure>
</p>
<p>Spätestens dann, wenn Suchmaschinen neue HTML5-Tags wie &lt;article&gt; und &lt;section&gt; auswerten und insbesondere, wenn RDF (Resource Description Framework) sich durchsetzt und in den Ergebnissen berücksichtigt wird, will jeder auf die neuen Techniken umstellen wollen. Warum nicht jetzt schon damit anfangen?</p>
<p>Wie die Botschaft letztlich konkret lautet, ist sekundär – die Webseite ist schneller; sie wird besser von Suchmaschinen indiziert; Kunden mögen unsere neuen Features und kommen gerne wieder. In jedem Fall muss die Botschaft aber lauten: Seit wir auf HTML5 umgestellt haben, verdienen wir mehr Geld. Und sobald wir die richtigen Erfolgsstories haben, wird HTML5 auch im Mainstream angekommen sein.</p>
<div class="article_author_box">
<p class="article_author_header"><span>Der Autor</span></p>
<div class="article_author_description"><img title="Nicolai Schwarz" src="http://t3n.de/magazin/wp-content/uploads/authors/142f481132fb1e7db2efbf390e8a9241_thumb.jpg" alt="Nicolai Schwarz" />Nicolai Schwarz arbeitet als selbstständiger Designer und Webentwickler unter dem Namen textformer.de in Dortmund. Hauptsächlich beschäftigt er sich mit Drupal-Projekten für mittelständische Unternehmen. Nebenbei ist er als Redakteur und Autor bei den Webkrauts tätig. Zurzeit schreibt er an seinem ersten Fachbuch über Drupal 7.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/erfolgsstories-html5-227641/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Cloud Hosting: Deutsche Angebote unter der Lupe</title>
		<link>http://t3n.de/magazin/cloud-hosting-gleich-cloud-hosting-227643/</link>
		<comments>http://t3n.de/magazin/cloud-hosting-gleich-cloud-hosting-227643/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 11:18:59 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=227643</guid>
		<description><![CDATA[Egal, welches IT-Trendbarometer man befragt, Cloud Computing ist immer vorne mit dabei. Die Kunden wollen die Cloud, die Anbieter haben die Cloud und schon sind alle glücklich. Doch so einfach ist es in der Praxis nicht, denn rund um das Wolkenthema herrscht Begriffsverwirrung. Aus diesem Grund lohnt sich ein genauer Blick auf die in Deutschland [...]]]></description>
			<content:encoded><![CDATA[<p>Egal, welches IT-Trendbarometer man befragt, Cloud Computing ist immer vorne mit dabei. Die Kunden wollen die Cloud, die Anbieter haben die Cloud und schon sind alle glücklich. Doch so einfach ist es in der Praxis nicht, denn rund um das Wolkenthema herrscht Begriffsverwirrung. Aus diesem Grund lohnt sich ein genauer Blick auf die in Deutschland erhältlichen Cloud-Hosting-Angebote.<span id="more-227643"></span></p>
<p>
<figure id="attachment_229150" class="caption alignnone">
	<img class="size-large wp-image-229150" title="photocasepdm8jc7d52119452_knallgrün" src="http://t3n.de/magazin/wp-content/uploads/2011/05/photocasepdm8jc7d52119452_knallgr%C3%BCn-596x446.jpg" alt="photocasepdm8jc7d52119452 knallgr%C3%BCn" width="596" height="446" />
	<figcaption>Foto: knallgrün/photocase.com</figcaption>
</figure>
</p>
<p>Wer heute einen Hosting-Anbieter sucht, schielt meist mit einem Auge auf das Stichwort „Cloud“. Die Vorteile liegen auf der Hand: Statt Server-Kapazitäten zu horten, die man sowieso nur einmal im Jahr benötigt, verlagert man Applikationen zu einem Cloud-Hoster, der bei Bedarf fast unbegrenzte Rechenpower sofort und vor allem automatisch dazuschaltet.</p>
<p>Das Ganze läuft dann nach dem Modell „Pay as you use“. Laufen die Geschäfte gut, bezahlt man eben mehr für das Hosting, Auftragsdellen bei niedriger Server-Auslastung resultieren dagegen in niedrigen Rechnungen vom Hoster. Das Thema Kosten ist einer der Treiber für die Cloud-Begeisterung, denn auch hohe Anfangsinvestitionen entfallen. Das zieht verstärkt kleine und mittelständische Firmen an. Doch bis hierhin ist alles nur Theorie, Praxis-Check und Marktüberblick über Hosting-Angebote in Deutschland können die Entscheidung für die richtige Cloud erleichtern.</p>
<p>Ein Problem für alle, die einen Cloud-Hoster suchen, ist das unübersichtliche Angebot. Die Cloud ist auch für die Hosting-Anbieter cool, schließlich gehen die Preise für dedizierte und virtuelle Server seit Jahren runter und Shared-Hosting-Angebote locken niemanden mehr hinter dem Ofen hervor. Doch genau da liegt die Gefahr, denn jeder Anbieter hat seine eigene Interpretation vom Begriff Cloud. Manch cleverer Geschäftsmann fügt seinem Angebot einfach das Wort Cloud an und schon brummt das Geschäft.</p>
<p>So ist beispielsweise beim Dynamic Cloud Server von 1&amp;1 nicht wirklich viel Cloud-Computing dabei. Im Angebot steckt ein dedizierter Server, den man über Virtualisierung mit Xen in engen Grenzen flexibel verwalten kann. Da man vorher genau wählen muss, wieviele CPUs man will und man ebenso per Schieberegler auch RAM- und Festplattenausstattung festzurren muss, ist die grenzenlose Skalierbarkeit nicht gegeben. Kunden können über eine zentrale Verwaltung zwar an diesen Stellschrauben drehen, automatische Bereitstellung von Ressourcen ist das aber nicht. Auch beim Bezahlmodell ist 1&amp;1 wenig flexibel: Für den Server muss man wie beim klassischen Hosting Monatsgebühren entrichten. Dreht man an den Konfigurationsstellschrauben, dann sinkt oder erhöht sich der Preis im nächsten Monat. Unter dem Strich bekommt man bei 1&amp;1 also einen guten Mix aus dediziertem und virtuellem Server, den man auf monatlicher Basis anpassen kann – Cloud Computing ist das aber nicht.</p>
<h2>Echtes Cloud-Hosting</h2>
<p>Nicht nur Anbieter kämpfen mit dem Begriff Cloud, auch die Kunden haben unterschiedliche Auffassungen und Bedürfnisse beim Cloud-Hosting. Einer Untersuchung von Deloitte zufolge interessiert sich jedes zweite deutsche Unternehmen nicht für öffentliche Cloud-Services und bevorzugt Private Clouds.</p>
<p>Viele Angebote in Deutschland laufen deshalb unter dem Stichwort „Dedicated Private Cloud“. Dahinter steckt eine dedizierte Server-Umgebung, in der der Kunde seine eigene Cloud betreiben kann. Demnach tummeln sich keine anderen Kunden in dieser Infrastruktur. Der Nachteil: Die Ressourcen sind eben nicht fast unendlich, sondern durch die dedizierte Umgebung stark begrenzt. Das Private-Cloud-Angebot ist ein Modell, das sich an Unternehmen richtet, die besonders großen Wert auf Sicherheit und Service legen.</p>
<div id="attachment_227644" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=227643dms_eac1432e8c0dd7af33a5b62d61737bb8"><img class="alignleft size-large wp-image-227644" title="Während bei Private Clouds eine dedizierte Server-Umgebung die Basis bildet, bucht man bei Public-Cloud-Angeboten Instanzen in der Cloud-Umgebung des Hosters." src="http://t3n.de/magazin/wp-content/uploads/2011/04/dms_eac1432e8c0dd7af33a5b62d61737bb8-596x596.jpg" alt="Während bei Private Clouds eine dedizierte Server-Umgebung die Basis bildet, bucht man bei Public-Cloud-Angeboten Instanzen in der Cloud-Umgebung des Hosters." width="596" height="596" /></a></p>
<p class="wp-caption-text">Während bei Private Clouds eine dedizierte Server-Umgebung die Basis bildet, bucht man bei Public-Cloud-Angeboten Instanzen in der Cloud-Umgebung des Hosters.</p>
<p>&nbsp;</p>
</div>
<p>Zur besseren Orientierung sollte man also zwischen „Echtem Cloud-Hosting“ und „Dedicated Private Clouds“ unterscheiden. Unter „echtes“ Cloud-Hosting fallen in der Übersichtstabelle (siehe nächste Seite) die so genannten Public Cloud Services wie Amazon EC2 oder CloudSigma. Hier stellt der Anbieter eine Cloud-Umgebung bereit, die er für seine Kunden am Laufen hält. Die Hardware, auf die die Unternehmen zugreifen, und sämtliche Software-Lizenzen sind Eigentum des Cloud Anbieters. Jeder Kunde holt sich das für ihn optimale Paket und betreibt auf dieser Basis seine Applikationen.</p>
<p>Man erkennt öffentliche Cloud-Services meist daran, dass der Anbieter nicht von Servern spricht, sondern von Instanzen mit einer bestimmten Rechenpower. Kunden kombinieren die Instanzen je nach Bedarf zu einem Ressourcen-Pool. Dass auf der Infrastruktur des Anbieters auch noch andere Kunden unterwegs sind, liegt in der Natur der Sache. Einschränkungen bei der Leistung muss man bei einem echten Cloud-Angebot aber nicht fürchten, die Skalierung on Demand und die automatische Bereitstellung von Rechenpower ist ja gerade der Clou.</p>
<p>Speziell bei der Suche nach Angeboten mit deutschen Rechenzentren wird das Feld schon sehr dünn, denn selbst Amazon hat als einzigen europäischen Standort ein Rechenzentrum in Irland im Angebot. Einzig JiffyBox von Domainfactory und die Cloud Services von Nionex haben einen öffentlichen Cloud-Service in einem deutschen Rechenzentrum am Start. Das interessante Angebot CCloud der Centron GmbH befindet sich noch bis Mitte des Jahres im Beta-Test, wird aber alle wichtigen Merkmale des Cloud-Hosting umsetzen.</p>
<h2>Bezahlen im Minutentakt</h2>
<p>Wer den richtigen Hoster finden will, kann die bereitgestellte Tabelle zur Orientierung heranziehen, sollte aber im Detail immer noch nachfragen oder zumindest vor dem Vertragsabschluss das Kleingedruckte lesen. Der Spielraum ist nämlich immens. So gibt es beispielsweise beim Bezahlmodell unterschiedliche Abrechnungsmodi. Am genauesten nimmt es derzeit CloudSigma, die jeden Fünf-Minuten-Abschnitt als Verbrauchseinheit abrechnen. Gängiger ist jedoch die Abrechnung pro Stunde, wie bei Amazon oder JiffyBox.</p>
<p>In der Praxis dürften außerdem die Punkte „Ausfallsicherheit“ und „Integriertes Backup“ oft den Ausschlag für oder gegen einen Hosting-Anbieter geben. Physikalische Sicherheit, also etwa Zugangssicherung und Feuerschutz, ist in den Rechenzentren der Anbieter Standard. Ebenso rüsten die meisten Anbieter ihre Server mit RAID-Systemen aus, die die Nutzdaten spiegeln. Bei einem Hardware-Defekt tauschen die Anbieter dann kaputte Festplatten ohne Datenverlust. Ausgefeilter und längst nicht in jedem Angebot enthalten sind Hochverfügbarkeits-Features – also ein Failover-Cluster, bei dem virtuelle Maschinen bei Hardware-Defekt bei laufendem Betrieb umgezogen werden. Diesen Service bieten nur die teuren Angebote von Amazon, Centron und Nionex. Die Ausstattung mit Backup-Features ist von Angebot zu Angebot verschieden. Manche Anbieter, etwa 1&amp;1 oder Strato, bieten Speicherplatz für Backups an, der Kunde muss diese aber selbst einrichten. Andere Anbieter, beispielsweise Host Europe, sichern Kundendaten dagegen in festen Abständen automatisch.</p>
<h2>Der richtige Anbieter</h2>
<p>In der Tabelle finden sich drei Arten von Cloud-Hosting-Angeboten: Public Cloud Services, Dedicated Private Clouds und der Rest, der sich gewisse Aspekte vom Cloud-Computing borgt. Unternehmen, die eine dedizierte Umgebung wollen, weil ihre Sicherheitsanforderungen besonders hoch sind, sollten zur Private Cloud greifen. Wer personenbezogene Daten in der Cloud verarbeiten möchte, ist bei JiffyBox oder Nionex dank deutschen Rechenzentren und SLAs gut aufgehoben. Jenseits erhöhter Datenschutzbestimmungen bieten die Platzhirsche Amazon und CloudSigma das flexibelste Angebot am Markt, Ressourcen ohne Ende und preiswerte Stundensätze. Wer nur etwas flexibler als mit dedizierten Servern unterwegs sein will, sollte einen Blick auf die Angebote von 1&amp;1, Incoweb und Strato werfen. Die bieten zwar kein Cloud-Computing nach scharfer Definition, aber das braucht auch längst nicht jedes Unternehmen.</p>
<div class="article_author_box">
<p class="article_author_header"><span>Der Autor</span></p>
<div class="article_author_description"><img title="Jörg Geiger" src="http://t3n.de/magazin/wp-content/uploads/authors/4595e366b5873547d30c5ac212f482da_thumb.jpg" alt="Jörg Geiger" /> Jörg Geiger ist Diplom-Informatiker und freier IT-Journalist in München. Neben der Cloud zählen insbesondere IT-Sicherheit, Betriebssysteme und mobile Systeme zu seinen thematischen Schwerpunkten.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/cloud-hosting-gleich-cloud-hosting-227643/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TYPO3 Workspaces: Die wichtigsten Fragen und Antworten</title>
		<link>http://t3n.de/magazin/schichtarbeit-227599/</link>
		<comments>http://t3n.de/magazin/schichtarbeit-227599/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 14:08:46 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=227599</guid>
		<description><![CDATA[Viele Fragen ranken sich um die seit langem in TYPO3 enthaltenen Workspaces. In der neuesten TYPO3-Version wurde die Benutzeroberfläche der Workspace-Funktion komplett überarbeitet, sodass nun alles einfacher von der Hand geht. Die restlichen offenen Fragen klärt dieser Artikel. Bei Änderungen an einem TYPO3-Webauftritt sieht der Arbeitsprozess häufig so aus: Anfangs versteckte Seiten werden generiert und [...]]]></description>
			<content:encoded><![CDATA[<p>Viele Fragen ranken sich um die seit langem in TYPO3 enthaltenen Workspaces. In der neuesten TYPO3-Version wurde die Benutzeroberfläche der Workspace-Funktion komplett überarbeitet, sodass nun alles einfacher von der Hand geht. Die restlichen offenen Fragen klärt dieser Artikel.<span id="more-227599"></span></p>
<p>Bei Änderungen an einem TYPO3-Webauftritt sieht der Arbeitsprozess häufig so aus: Anfangs versteckte Seiten werden generiert und mit Inhalt gefüllt. Diese Seiten erhält der Kollege per Mail, der das Ganze lesen und korrigieren soll, bevor es schlussendlich publiziert wird.</p>
<p>Viel eleganter und einfacher geht das mit einer Arbeitsumgebung, einem sogenannten Workspace. In diesem Workspace können beliebig viele Änderungen an der Webseite getätigt werden, ohne dass diese öffentlich zu sehen sind. Über einen entsprechend zu definierenden Prozess können die Änderungen dann korrigiert und publiziert werden. Benachrichtigungen per E-Mail mit individuellen Kommentaren der Redakteure unterstützen den Prozess. Je mehr Redakteure und komplexe Review-Prozesse involviert sind, desto mehr lohnt sich also auch ein Workspace.</p>
<h2>Schritt für Schritt</h2>
<p>Um Änderungen an einem Webauftritt zu tätigen, wechselt der Redakteur nach dem Backend-Login zuerst in den Workspace, ein Ebenen-Icon am rechten oberen Rand.</p>
<p>
<figure id="attachment_229055" class="caption alignnone">
	<a href="http://t3n.de/magazin/schichtarbeit-227599/tec_typo3_workspaces/" rel="attachment wp-att-229055"><img class="size-full wp-image-229055 " title="tec_typo3_workspaces" src="http://t3n.de/magazin/wp-content/uploads/2011/05/tec_typo3_workspaces.png" alt="tec typo3 workspaces" width="201" height="120" /></a>
	<figcaption>Welche Workspaces im Workspace Selektor angezeigt werden, lässt sich pro Benutzer genau konfigurieren.</figcaption>
</figure>
</p>
<p>In diesem Workspace können dann beliebig viele Änderungen getätigt und kontrolliert werden, ohne dass diese auf dem Webauftritt sichtbar werden. Über eine spezielle Voransicht lassen sich die Änderungen bequem mit der Live-Version des Webauftritts vergleichen.</p>
<p>Ist der Redakteur mit den Änderungen zufrieden, sendet er die Änderung im Arbeitsprozess an die nächste Stelle. Dies ist über ein entsprechendes TYPO3-Modul möglich, in dem alle Änderungen verwaltet werden können.</p>
<p>
<figure id="attachment_229056" class="caption alignnone">
	<a href="http://t3n.de/magazin/schichtarbeit-227599/tec_typo3_workspaces2/" rel="attachment wp-att-229056"><img class="size-large wp-image-229056" title="tec_typo3_workspaces2" src="http://t3n.de/magazin/wp-content/uploads/2011/05/tec_typo3_workspaces2-596x87.png" alt="tec typo3 workspaces2" width="596" height="87" /></a>
	<figcaption>Nun erhält der für diese Stelle zuständige Redakteur eine E-Mail – gegebenenfalls mit persönlichem Kommentar. In einem einfachen Schritt kann der aktuelle Redakteur nun, nach Kontrolle der Änderungen, diese freischalten.</figcaption>
</figure>
</p>
<p>Nun erhält der für diese Stelle zuständige Redakteur eine E-Mail – gegebenenfalls mit persönlichem Kommentar. In einem einfachen Schritt kann der aktuelle Redakteur nun, nach Kontrolle der Änderungen, diese freischalten.</p>
<h2>Einfache Konfiguration</h2>
<p>Es ist auch möglich, in der Workspace-Konfiguration weitere Kontrollpunkte einzurichten. Dank des detaillierten Berechtigungssystems lässt sich genau bestimmen, wer letztendlich Änderungen publizieren und somit den offiziellen Webauftritt verändern darf. Auch die Konfiguration des Arbeitsprozesses ist sehr flexibel, es lassen sich beliebig viele Prozessschritte mit individuellem Namen und entsprechenden Verantwortlichkeiten definieren. Was genau möglich ist und wie die einzelnen Prozesse definiert werden, lässt sich im Detail in der aktuellen Workspace-Dokumentation nachlesen <a title="Workspace-Dokumentation" href="http://bit.ly/gWjX30" >[1]</a>.</p>
<p>Darüber hinaus lassen sich auch die Benachrichtigungs-Mails leicht anpassen. Die Nachrichten enthalten Informationen zu den Datensätzen, dem Redakteur und den entsprechenden Änderungen. Anpassen lassen sie sich in ihrem Informationsgehalt, den Empfängern und vor allem in ihrem Layout.</p>
<h2>News und andere Datensätze</h2>
<p>Datensätze, die von TYPO3-Extensions bereitgestellt werden (News, Kalender-Einträge etc.), können ebenfalls im Workspace gehandhabt werden, sofern der Entwickler dies bei der Programmierung berücksichtigt hat. Wenn man bei einer Extension von der „Unterstützung der Workspaces-Funktion“ spricht, so muss man allerdings zwischen zwei Aspekten unterscheiden. Es gibt zum einen die Unterstützung des Workspace-Backends, das heißt ein Datensatz kann im Workspace erstellt und dann Schritt für Schritt publiziert werden. Dies können Entwickler erreichen, in dem sie den Extension-Kickstarter nutzen.</p>
<p>Zum anderen gibt es die Vorschau-Funktion für den Datensatz, das heißt der Entwickler unterstützt die Workspace-Vorschau, sodass der Datensatz vorab betrachtet werden kann. Bei Extbase-Extensions ist dies von Haus aus vorgesehen und muss nicht extra programmiert werden. Bei piBase-Extensions gibt es einen kurzen Leitfaden auf den Entwicklungsseiten des Workspace-Projekts <a title="Leitfaden Workspace API" href="http://forge.typo3.org/projects/typo3v4-workspaces/wiki/T3DD10_Workspace_API" >[2]</a>.</p>
<h2>Alles hat Grenzen</h2>
<p>TYPO3-Workspaces sind ein sehr mächtiges Werkzeug, sie haben aber auch Ihre Grenzen. So ist es nicht möglich, parallele Arbeitsschritte zu definieren, sondern alles bis hin zur Publizierung geht der Reihe nach vor sich. Auch eine automatische Revisionssicherheit ist durch die Nutzung von Workspaces nicht gegeben. Zuletzt ist es derzeit noch schwierig, Abhängigkeiten zwischen verschiedenen Änderungen, etwa Sprachübersetzungen, im Workspace zu handhaben.</p>
<p>
<figure id="attachment_229057" class="caption alignnone">
	<a href="http://t3n.de/magazin/schichtarbeit-227599/tec_typo3_workspaces3/" rel="attachment wp-att-229057"><img class="size-large wp-image-229057" title="tec_typo3_workspaces3" src="http://t3n.de/magazin/wp-content/uploads/2011/05/tec_typo3_workspaces3-596x398.png" alt="tec typo3 workspaces3" width="596" height="398" /></a>
	<figcaption>In der Workspace-Vorschau kann der Redakteur zwischen einer horizontal geteilten, einer vertikal geteilten und einer Slider-Ansicht wählen.</figcaption>
</figure>
</p>
<h2>Neuerungen in TYPO3 4.5</h2>
<p>TYPO3 bietet seit langem die Workspace-Funktion, die Benutzeroberfläche wurde aber in der neuesten Version 4.5 komplett überarbeitet. Die Möglichkeit, beliebig viele Arbeitsschritte definieren zu können, ist genauso neu, wie die Workspace-Unterstützung für sogenannte IRRE-Datensätze. Die neue Vorschau rundet das Ganze ab und ermöglicht dem Redakteur eine bequeme Nutzung.</p>
<h2>Weiterentwicklung</h2>
<p>Für die nächste TYPO3-Version sind weitere Neuerungen geplant, wobei das Workspace-Team noch nicht entschieden hat, welche Neuerungen zuerst umgesetzt werden. Bereits im Review-Prozess sind kleinere Neuerungen wie die feinere Konfiguration der E-Mail-Benachrichtigungen oder ein Vorschau-Link direkt in der E-Mail.</p>
<div class="article_author_box">
<p class="article_author_header"><span>Die Autorin
</span></p>
<div class="article_author_description"><img title="Sonja Scholz" src="http://t3n.de/magazin/wp-content/uploads/authors/b7a58aec87c5cc489cee86b4edcd5ee0_thumb.jpg" alt="Sonja Scholz" />Sonja Scholz ist als TYPO3-Entwicklerin und Projektleiterin bei der Schweizer TYPO3-Agentur cab services ag tätig. Als Teamleiterin des TYPO3-Workspace-Teams hat sie die Workspace-Weiterentwicklung für TYPO3 4.5 unterstützt und koordiniert. In ihrer Freizeit entspannt sie bei einem guten Buch oder macht das Gelände als Cowgirl im Westernreiten unsicher.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/schichtarbeit-227599/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SEO mit TYPO3: In wenigen Schritten zur besseren Platzierung</title>
		<link>http://t3n.de/magazin/seo-typo3-schritt-schritt-oben-226800/</link>
		<comments>http://t3n.de/magazin/seo-typo3-schritt-schritt-oben-226800/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 15:06:32 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=226800</guid>
		<description><![CDATA[Jeder Website-Betreiber freut sich über steigende Besucherzahlen – zumal der Erfolg einer Website in zunehmenden Maß auch die Basis für den geschäftlichen Erfolg seines Betreibers bildet. Wer für seine Webseite auf das Content Management System TYPO3 setzt, kann die Platzierung der eigenen Website mit einfachen technischen wie inhaltlichen Kniffen optimieren. Wir zeigen, welche das sind. [...]]]></description>
			<content:encoded><![CDATA[<p>Jeder Website-Betreiber freut sich über steigende Besucherzahlen – zumal der Erfolg einer Website in zunehmenden Maß auch die Basis für den geschäftlichen Erfolg seines Betreibers bildet. Wer für seine Webseite auf das Content Management System TYPO3 setzt, kann die Platzierung der eigenen Website mit einfachen technischen wie inhaltlichen Kniffen optimieren. Wir zeigen, welche das sind.<span id="more-226800"></span></p>
<p>Die Zahl der Websites nimmt kontinuierlich zu – was aber praktisch konstant bleibt, ist die Zahl der Ergebnisse einer Suchmaschine, die ein Nutzer wahrnimmt. Meist sind es nur die ersten zehn Resultate, die Relevanz haben. Schon die Ergebnisse auf den Plätzen 11 bis 20 nehmen nur noch etwa zehn Prozent der Nutzer wahr. Und auch auf der ersten Seite bekommen nur die Top Five viele Besucher.</p>
<p>Ein Betreiber, der geschäftlichen Erfolg anstrebt, kommt um eine Optimierung der Seite für Suchmaschinen nicht herum. Inzwischen hat sich ein beachtlicher Markt für Dienstleistungen im Bereich SEO (Search Engine Optimization) und SEM (Search Engine Marketing) entwickelt. Leider gibt es auch hier einige schwarze Schafe, die nur das Beste des Kunden möchten – sein Geld.</p>
<h2>Qualität statt Quantität</h2>
<p>Auch die Betreiber der Suchmaschinen haben ein Interesse an einer entsprechenden Optimierung, denn dadurch wird es einfacher, die Ergebnisse nach Relevanz auszugeben. Längst sind die Zeiten vorbei, in denen es darum ging, möglichst viele Suchergebnisse anzuzeigen. Heute zählen einzig und allein die richtigen Treffer. Idealerweise sollte der Nutzer auf jede Anfrage gleich die optimalen Ergebnisse bekommen, ohne dass er die Suche mehrfach eingrenzen und wiederholen muss.</p>
<p>Für Websites mit Zielgruppen im europäischen Markt genügt es, die Seiten für Google zu optimieren. Da sich jedoch die Algorithmen der Anbieter nicht wesentlich unterscheiden, ist es nicht erforderlich, für jede Suchmaschine eine spezielle Optimierung einzusetzen. Mit großer Skepsis sollte man daher auch Angeboten wie „wir tragen Ihre Seite in 500 Suchmaschinen ein“ begegnen. Die Offerten sind meist ihr Geld nicht wert.</p>
<h2>Wichtige Parameter</h2>
<p>Google bietet mit seinen Richtlinien für Webmaster <a title="Richtlinien für Webmaster" href="http://www.google.com/support/webmasters/bin/answer.py?hl=de&amp;answer=35769" >[1]</a> bereits viele Informationen für die Optimierung einer Website. Auch wenn es einige wichtige technische Regeln für den Aufbau einer Seite gibt, ist doch letztlich der Inhalt und Informationsgehalt einer Seite ausschlaggebend. Eine Strategie für die Verbesserung des Ranking muss daher auch die Redakteure einschließen, sie tragen mindestens 50 Prozent zum Erfolg bei (siehe auch Artikel ab Seite 54).</p>
<div id="attachment_227342" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=226800dms_2e6853bd2f5e9f5abd9984afe086d904"><img class="alignleft size-large wp-image-227342" title="Neben Extensions für TYPO3 können Seitenbetreiber auch kostenlose Tools wie Firebug zur Optimierung der Performance nutzen." src="http://t3n.de/magazin/wp-content/uploads/2011/01/dms_2e6853bd2f5e9f5abd9984afe086d904-596x296.jpg" alt="Neben Extensions für TYPO3 können Seitenbetreiber auch kostenlose Tools wie Firebug zur Optimierung der Performance nutzen." width="596" height="296" /></a></p>
<p class="wp-caption-text">Neben Extensions für TYPO3 können Seitenbetreiber auch kostenlose Tools wie Firebug zur Optimierung der Performance nutzen.</p>
</div>
<p>Auch wenn angeblich 200 Faktoren in die Reihenfolge der Suchergebnisse eingehen, sind es nur eine überschaubare Anzahl von Parametern, die eine wichtige Rolle spielen. Man muss jedoch beachten, dass neue Faktoren dazu kommen und die Bedeutung anderer mit der Zeit abnehmen kann. Früher galt, dass der Keywords-Parameter bei den Metatags eine entscheidende Rolle spielt. Mit der Folge, dass viele Betreiber und Optimierer hier zu viel des Guten taten und teilweise bis zu 1.000 Schlüsselbegriffe eingetragen haben.</p>
<p>Manch einer meinte, mit Begriffen wie „Britney Spears“ zusätzliche Besucher für Seiten zum Thema Küchenutensilien generieren zu können. Schnell stellt der Suchende fest, dass die aufgerufene Seite nicht die gesuchte Information liefert und kehrt zur Ergebnisliste zurück. Das merkt auch Google: Wenn der Anwender ein zweites Ergebnis wenige Sekunden nach dem ersten Klick aufruft, war der zuerst gewählte Treffer wohl nicht relevant. Das führt, wenn es häufiger vorkommt, zu einer Herabstufung in den Rankings.</p>
<p>Google hat schon vor längerer Zeit bestätigt, dass die Keywords in den Metatags keinen Einfluss mehr auf das Ranking haben. Dafür gehen neue Parameter, wie das Alter der Domain und die Geschwindigkeit der Website, in die Wertung ein. Während man das Domainalter nicht nachträglich ändern kann, besteht oft Optimierungspotenzial bei der Performance. In seinen Webmaster Tools zeigt Google die gemessene Geschwindigkeit einer Seite an, vergleicht diese mit dem Durchschnitt und gibt Tipps zur Optimierung (siehe Abbildung auf der nächsten Seite).</p>
<div id="attachment_227343" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=226800dms_83bdebf5f463c95a41b03906d43dd46a"><img class="alignleft size-large wp-image-227343" title="Googles Webmaster-Tools helfen Website-Betreibern bei der Optimierung der Geschwindigkeit – auch ein Aspket bei der Suchmaschinenoptimierung. So zeigt ein Diagramm beispielsweise an, wie sich die durchschnittliche Ladezeit der eigenen Website in den letzten Monaten verändert hat und ob sie dabei eher zu den schnellen oder langsamen Websites im Google-Index gehört." src="http://t3n.de/magazin/wp-content/uploads/2011/01/dms_83bdebf5f463c95a41b03906d43dd46a-596x129.jpg" alt="Googles Webmaster-Tools helfen Website-Betreibern bei der Optimierung der Geschwindigkeit – auch ein Aspket bei der Suchmaschinenoptimierung. So zeigt ein Diagramm beispielsweise an, wie sich die durchschnittliche Ladezeit der eigenen Website in den letzten Monaten verändert hat und ob sie dabei eher zu den schnellen oder langsamen Websites im Google-Index gehört." width="596" height="129" /></a></p>
<p class="wp-caption-text">Googles Webmaster-Tools helfen Website-Betreibern bei der Optimierung der Geschwindigkeit – auch ein Aspket bei der Suchmaschinenoptimierung. So zeigt ein Diagramm beispielsweise an, wie sich die durchschnittliche Ladezeit der eigenen Website in den letzten Monaten verändert hat und ob sie dabei eher zu den schnellen oder langsamen Websites im Google-Index gehört.</p>
</div>
<h2>Hilfreiche Tools</h2>
<p>Mit kostenlosen Werkzeugen wie Firebug <a title="Firebug" href="http://getfirebug.com" >[2]</a>, YSlow <a title="YSlow" href="http://developer.yahoo.com/yslow/" >[3]</a> oder Page-Speed <a title="Page-Speed" href="https://dl-ssl.google.com/page-speed/current/page-speed.xpi" >[4]</a> kann man eine Website auf Möglichkeiten zur Verbesserung der Geschwindigkeit untersuchen.</p>
<p>Mit TYPO3-Erweiterungen wie „scriptmerger“ lassen sich beispielsweise mehrere CSS und JavaScript-Dateien zusammenfassen, optimieren und mit gzip komprimieren. Dadurch reduziert man sowohl die Zahl der Anfragen, als auch die zu übertragenden Datenmengen deutlich.</p>
<p>Viele Tipps zur Steigerung der Performance bietet die Website von Steve Souders <a title="Blog von Steve Souders" href="http://stevesouders.com" >[5]</a>. Sollte die von Google gemessene Geschwindigkeit auch nach Abschluss der Optimierung unbefriedigend sein, kann gegebenenfalls auch ein Wechsel des Providers den gewünschten Effekt liefern.</p>
<h2>Sprechende URLs moderat einsetzen</h2>
<p>Vor einigen Jahren hatten Suchmaschinen noch Probleme mit dynamischen Parametern in der URL, also den Angaben, die nach einem Fragezeichen kommen. Abhilfe schaffte in TYPO3 die Verwendung der Funktion „simulateStaticDocuments“. Diese simulierte bei allen Links eine statische URL, die beim Aufruf dann wieder in die ursprünglichen Parameter zurückübersetzt wurde. Von Nachteil ist jedoch, dass die Website nach Außen nur eine flache Hierarchie ohne Unterverzeichnisse abbildet und dass dynamische Parameter durch einen verkürzten md5-Hash nicht unbedingt die Lesbarkeit der URLs verbesserten.</p>
<p>Die Extensions „realurl“ und „cooluri“ lösen dieses Problem. Die Hierarchie der Seite wird ähnlich wie beim Navigationspfad (Brotkrumen-Menü) in der URL abgebildet. Suchmaschinen erkennen an URLs wie „/produkte/tv/led“, „/produkte/tv/lcd“ und „/produkte/tv/plasma“ die Struktur der Seite, zudem können Besucher sich die Adressen leichter merken. Für die Umsetzung der URLs werden meist die Seitentitel verwendet, dabei werden Leer- und Sonderzeichen sowie Umlaute entsprechend umgewandelt.</p>
<p>Durch geschickte Wahl der Seitentitel können Seitenbetreiber passende Suchbegriffe in die Adresse einbauen. Allerdings sollte man hier nicht übertreiben: Untersuchungen haben gezeigt, dass die Suchmaschinen nur die ersten sieben bis acht Elemente in der Adresse auswerten. Als Trennzeichen für Elemente gelten Binde-, Unter- und Schrägstriche. Mit URLs wie „/produkte/beschreibung-meines-produkts-mit-vielen-worten/tolle-eigenschaften-guter-preis“ schießt man über das Ziel hinaus. Die URLs einzelner Seiten lassen sich in der realurl-Konfiguration anpassen und ganze Menüebenen bei Bedarf überspringen. Die Konfiguration der realurl-Erweiterung ist zum Teil knifflig, eine detaillierte Anleitung gibt es unter <a title="Anleitung zu realurl" href="http://jweiland.net/typo3/anleitung/suchmaschinen-optimierung/realurl.html" >[6]</a>.</p>
<h2>SEO für Bilder</h2>
<p>Auch Bilder kann man für die Indexierung optimieren. Wichtig ist hier ein Eintrag im ALT- und TITLE-Tag mit einer Beschreibung des Bildinhalts. Auch kann man Suchbegriffe in den Dateinamen integrieren. Bei allen Bildern jedoch, die TYPO3 dynamisch erzeugt, wird ein Dateiname in der Form „/typo3temp/pics/a574bf7c1b.jpg“ generiert. Mit Hilfe der Extension „fl_realurl_image“ kann man jedoch auch hier einen sprechenden Pfad bilden. Über Einstellungen in den TypoScript-Konstanten legt man fest, aus dem Inhalt welcher Datenfelder die URL gebildet wird.</p>
<h2>Sitemap für Suchmaschinen</h2>
<p>Man kann natürlich darauf hoffen, dass die Robotor der Suchmaschinen nach und nach die komplette Struktur der Website erfassen. Seit einigen Jahren gibt es aber die Möglichkeit, selbst aktiv zu werden. Dazu erstellt man eine Sitemap im XML-Format und teilt diese den Suchmaschinen mit. Dadurch kennen diese die komplette Struktur einer Site und können die Robotor gezielt vorbei schicken. Mit Hilfe von TYPO3-Erweiterungen wie „google_sitemap“ hält man diese Listings immer aktuell, neue Seiten werden automatisch aufgenommen. Die Konfiguration einer solchen Sitemap-Extension beschreibt <a title="Google-Sitemaps mit TYPO3 erzeugen" href="http://jweiland.net/typo3/anleitung/suchmaschinen-optimierung/google-sitemaps.html" >[7]</a>.</p>
<h2>Passenden Seitentitel festlegen</h2>
<p>Nach dem Domainnamen ist der Seitentitel eines der wichtigsten Kriterien für das Ranking bei Suchmaschinen. Hier übernimmt die Suchmaschine den im Browsertitel angezeigten Text und zeigt diesen beim Suchergebnis in blauer Schrift an. TYPO3 verwendet standardmäßig den Seitentitel für den title-Tag. Mit einer Erweiterung wie „browser_page_title“ kann man jedoch den Titel und damit den von der Suchmaschine angezeigten Text individuell festlegen. Sinnvoll ist hier eine Länge von sechs bis acht Wörtern, mehr wird ohnehin nicht angezeigt. In diesem kurzen Text steckt oft ein großes Optimierungspotenzial: es kommt nicht nur darauf an, hier die richtigen Suchbegriffe unterzubringen. Vielmehr muss man die Formulierung so wählen, dass der Suchende den Eintrag auch anklickt.</p>
<p>Formulierungen wie „Willkommen auf unserer Homepage“ sind zwar nett gemeint, aber wenig hilfreich. Auch hier ist Ehrlichkeit wichtig: man sollte nichts versprechen, was die Seite nicht hält. Also nicht „Kostenloser Ratgeber für Thema XYZ“, wenn dieser auf der Seite nicht vorhanden ist oder doch etwas kostet. Da der Browsertitel so wichtig ist, sollte man hier unbedingt genügend Zeit für die richtige Formulierung aufwenden.</p>
<h2>Aufgaben der Redakteure</h2>
<p>Nur ein Teil der Optimierungen lässt sich mit technischen Lösungen implementieren. Einen wesentlichen Anteil an den Maßnahmen haben die Redakteure. Mittel- und langfristig kommt es vor allen Dingen auf den (guten) Inhalt der Seiten an. Nur Inhalt, der für den Leser interessant ist und einen Nutzen bietet, hat gute Chancen, von den Suchmaschinen als relevant eingestuft zu werden und dauerhaft Verlinkungen von anderen Seiten zu erhalten.</p>
<p>Redakteure müssen daher wissen (oder geschult werden), wie man Texte für Online-Medien schreibt und passende Überschriften findet. Für jede Seite sollte man Suchbegriffe und deren Synonyme festlegen, mit denen die Seite in den Suchergebnissen erscheinen soll. Wichtig ist es dabei, sich in die Rolle des Besuchers zu versetzen, da dieser für ein Produkt vielleicht einen ganz anderen Suchbegriff verwendet. Sonst kann es passieren, dass beispielsweise ein Hersteller von Werkzeugen seine Seite für den sachlich korrekten Begriff Schraubendreher optimiert, potenzielle Kunden jedoch nach dem umgangssprachlich gebräuchlichen Wort Schraubenzieher suchen.</p>
<p>Die festgelegten Suchbegriffe sollte man im Inhalt der Seite streuen und in Fließtext, Überschriften, Linkbeschreibungen (title-Tag) unterbringen. Auch kann es sinnvoll sein, die Begriffe gelegentlich durch Fettschrift (strong-Tag) hervorzuheben.</p>
<h2>Worauf man verzichten sollte</h2>
<p>Das Ranking in den Suchmaschinen wird auch dadurch bestimmt, welche anderen Seiten auf den eigenen Internetauftritt verlinken. Dabei geht es nicht nur um die Zahl, sondern vor allem die Qualität der Links. Auch wenn die Versuchung groß ist, sollte man von der Verwendung gekaufter Links absehen. Sollte der „Verkäufer“ den Suchmaschinen bekannt sein, kann es sonst genau den gegenteiligen Effekt haben und die eigene Seite abgestraft werden. So wurden in einem bekannt gewordenen Fall die Websites der Kunden einer unrühmlichen Optimierungsfirma aus dem Google Index entfernt.</p>
<h2>Fazit</h2>
<p>Der Einsatz von SEO-Maßnahmen ist für einen Erfolg einer Website wichtig. Um die Strategien richtig umzusetzen, ist kein großes Budget, jedoch eine Portion gesunder Menschenverstand notwendig. Gute Ergebnisse lassen sich bereits mit kleinen technischen Maßnahmen erzielen, die Rolle eines guten Texters darf man dabei nicht unterschätzen.</p>
<div class="article_author_box">
<p class="article_author_header"><span>Der Autor</span></p>
<div class="article_author_description"><img title="Jochen Weiland" src="http://t3n.de/magazin/wp-content/uploads/authors/2528b1b92eb7a8744aa4c3dcdc8cd298_thumb.jpg" alt="Jochen Weiland" />Jochen Weiland beschäftigt sich seit Anfang 2002 mit TYPO3. Seine Agentur jweiland.net hat sich auf das Hosting von TYPO3-Projekten spezialisiert und gehört zu den führenden TYPO3-Dienstleistern.</p>
<p style="clear: both;">
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/seo-typo3-schritt-schritt-oben-226800/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scrum in der Praxis: Projekte agil durchführen</title>
		<link>http://t3n.de/magazin/scrum-praxis-226650/</link>
		<comments>http://t3n.de/magazin/scrum-praxis-226650/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 14:15:27 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=226650</guid>
		<description><![CDATA[Das Vorgehen bei IT-Projekten befindet sich im Wandel. Spätestens mit dem Erfolg von Scrum haben sich zahlreiche Agenturen und IT-Firmen das Attribut „agil“ auf die Fahne geschrieben. Doch viele dieser vermeintlich agil agierenden Unternehmen können ihr Versprechen nicht wirklich einlösen. Oftmals hakt es in Teams und Projekten bei der Einführung und Umsetzung agiler Arbeitsweisen. Dieser [...]]]></description>
			<content:encoded><![CDATA[<p>Das Vorgehen bei IT-Projekten befindet sich im Wandel. Spätestens mit dem Erfolg von Scrum haben sich zahlreiche Agenturen und IT-Firmen das Attribut „agil“ auf die Fahne geschrieben. Doch viele dieser vermeintlich agil agierenden Unternehmen können ihr Versprechen nicht wirklich einlösen. Oftmals hakt es in Teams und Projekten bei der Einführung und Umsetzung agiler Arbeitsweisen. Dieser Artikel zeigt, worum es bei Scrum eigentlich geht und wie man agil plant und entwickelt.<span id="more-226650"></span></p>
<p>Es ist Montag. In einem Projektteam eines fiktiven Unternehmens arbeitet Jörg als Projektmanager. Jörg hat soeben mit seinem Teamleiter Marc über die Ziel- und Leistungsvereinbarungen des kommenden Geschäftsjahres gesprochen. Zum einen hat das Unternehmen erkannt, dass es von seinen Zweijahres-Releasezyklen weg muss, zum anderen will man sich flexibler am Markt orientieren. Dies sollen alle Team- und Projektleiter umsetzen. Marc hat schon einiges von diesem Scrum gehört und so kommen Marc und Jörg zu der Übereinkunft, dass das Unternehmen zukünftig Scrum einsetzen soll. Jörg ist für die Einführung in seinem Team zuständig. Jörg hat sich bisher nicht mit dem Thema „agiles Projektmanagement“ auseinandersetzen müssen. Er bemüht kurzum eine bekannte Suchmaschine und schon der erste Treffer wirkt durchaus vielversprechend: der ScrumGuide <a title="The Scrum Guide" href="http://www.scrum.org/scrumguides" >[1]</a>. Jörg notiert sich die wichtigsten Begriffe und Features von Scrum, um sich in das Thema einzuarbeiten.</p>
<h2>Scrum im Überblick</h2>
<p>Scrum ist eine Methode für die agile Durchführung von Projekten. Dabei beschreibt diese Methode einen interaktiven und inkrementellen Prozess für das Organisieren von Teams und das Entwickeln von Produkten. Scrum soll dabei helfen, Tasks schneller und auch besser zu erledigen. Die Methode setzt auf Eigenmotivation von Teams, die sich aus dem Fakt ergibt, dass Teammitglieder selbst entscheiden, wann und wie sie einzelne Aufgaben ausführen. Während des Scrum-Prozesses setzt das Team Kundenanforderungen durch schrittweise Priorisierung schneller um als bei Projekten, die nicht auf Scrum setzen.</p>
<p>Die Basis des agilen Ansatzes ist demnach die Maßgabe, etwas Schritt für Schritt zu entwickeln. Meist setzt man als erstes auf die wichtigsten Features. Scrum baut auf drei Säulen auf: Transparenz, Inspektion und Adaption. Transparenz soll für die Sichtbarkeit aller Prozessaspekte sorgen, die das Ergebnis beeinflussen. Mit Inspektion ist gemeint, dass alle Prozessaspekte so häufig untersucht werden, dass man inakzeptable Abweichungen entdecken kann. Stellt das Team fest, dass Prozessaspekte abweichen, kommt die dritte Säule von Scrum zum Tragen. Dann gilt es, entweder den Prozess selbst oder die Arbeitsgegenstände zu adaptieren und anzupassen.</p>
<table class="table">
<tbody>
<tr>
<td class="table_header" colspan="2" valign="top mceVisualAid">Kleines Scrum-Lexikon</td>
</tr>
<tr>
<td valign="top mceVisualAid">Scrum-Team</td>
<td valign="top mceVisualAid">Scrum setzt auf drei Rollen: Team, Scrum Master, Product Owner.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Team</td>
<td valign="top mceVisualAid">Die Mitglieder des Teams sind bei Scrum für die Umsetzung aller geplanter Features verantwortlich.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Scrum Master</td>
<td valign="top mceVisualAid">Der Scrum Master ist dafür verantwortlich, dass der Prozess verstanden und eingehalten wird. Er kümmert sich auch um die Bedürfnisse des Teams.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Product Owner</td>
<td valign="top mceVisualAid">Der Product Owner ist dafür verantwortlich, den Return on Invest zu optimieren. Er ist für den Erfolg des Projekts verantwortlich.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Produkt-Backlog</td>
<td valign="top mceVisualAid">Priorisierte Liste von allem, was in dem Produkt benötigt werden könnte.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Sprint-Backlog</td>
<td valign="top mceVisualAid">Liste mit Aufgaben, die dazu dient, aus dem Produkt-Backlog für einen Sprint ein potenziell auslieferbares Produkt-Inkrement zu machen.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Timeboxen</td>
<td valign="top mceVisualAid">Timeboxen sind feste Zeitabschnitte und dienen zur Herstellung von
Regelmäßigkeit: Release-Planning-Meeting,
Sprint-Planning-Meeting, Sprint, Daily Scrum, Sprint Review und
Sprint-Retrospektive.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Sprint</td>
<td valign="top mceVisualAid">Zentrales Element des Entwicklungszyklus. Vereinfacht ist ein Sprint die Umsetzung einer Iteration.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Release Planning Meeting</td>
<td valign="top mceVisualAid">Hier legt man das Ziel für den Release, die am höchsten priorisierten
Backlog-Einträge, Hauptrisiken und generelle Features und
Funktionalitäten fest.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Sprint-Planning-Meeting</td>
<td valign="top mceVisualAid">Beschreibt die Iterationsplanung.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Daily Scrum</td>
<td valign="top mceVisualAid">Jedes Scrum-Team trifft sich täglich zu einem kurzen Inspektions- und Adaptionsmeeting. Jedes Teammitglied erläutert, was es seit dem letzten Meeting erreicht hat, was es bis zum nächsten Meeting plant und welche Hindernisse bestehen.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Sprint Review</td>
<td valign="top mceVisualAid">Findet am Ende eines Sprints statt, um die Arbeitsergebnisse zu begutachten.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Sprint-Retrospektive</td>
<td valign="top mceVisualAid">Findet zwischen dem Sprint Review und dem nächsten Sprint-Planning-Meeting statt. Die Sprint-Retrospektive inspiziert, wie der abgelaufene Sprint in Bezug auf Menschen, Beziehungen, Prozess und Werkzeuge gelaufen ist.</td>
</tr>
<tr>
<td valign="top mceVisualAid">Definition of Done</td>
<td valign="top mceVisualAid">Am Ende jedes Sprints sollte ein potenziell auslieferungsfähiges Produkt stehen. Definition of Done beschreibt was getan werden muss, um eine Aufgabe als erledigt zu betrachten.</td>
</tr>
</tbody>
</table>
<p>So viel zur Theorie. Nun muss Jörg seine Erkenntnisse in die Praxis umsetzen.</p>
<h2>Aller Anfang ist schwer</h2>
<p>Aber wo fängt man an? So schwer kann das ja eigentlich nicht sein, denkt sich Jörg. Immerhin umfasst der Scrum Guide nur wenige Seiten und die wichtigsten Punkte hat er schließlich auch noch mal selbst zusammengefasst. Flexibilität lautet das Ziel und da passt ja im Grunde der iterative Ansatz von Scrum hervorragend! Allerdings müssen diese ganzen anderen Sachen wie noch mehr Meetings oder neue Rollen von Teammitgliedern ja nun wirklich nicht sein.</p>
<p>In vielen Fällen möchten Unternehmen zwar Scrum einführen, gehen aber davon aus, dass das Lesen eines Buchs ausreicht, um die grundlegenden Gedanken zu verstehen. Doch obwohl die Grundlagen relativ einfach sind, ist die disziplinierte Umsetzung meist schwieriger als gedacht. Man sollte sich zumindest nach anderen agilen Praktikern umsehen, um Gedanken dazu auszutauschen.</p>
<h2>Auf in Richtung Ziel</h2>
<p>Es sind nun etwa zwei Monate vergangen und Marc erkundigt sich bei Jörg, wie es denn um die Umsetzung von Scrum bestellt ist. Jörg ist nicht ganz glücklich mit der Situation. Die Sprints sind zwar da, aber nicht wirklich greifbar. Jörg zeigt Marc seine Übersicht der Sprints:</p>
<table class="table">
<tbody>
<tr>
<td class="table_header" valign="top mceVisualAid">Sprint</td>
<td class="table_header" valign="top mceVisualAid">Länge [Wochen]</td>
<td class="table_header" valign="top mceVisualAid">Fokus</td>
</tr>
<tr>
<td valign="top mceVisualAid">#1</td>
<td valign="top mceVisualAid">3</td>
<td valign="top mceVisualAid">Konzeption</td>
</tr>
<tr>
<td valign="top mceVisualAid">#2</td>
<td valign="top mceVisualAid">2</td>
<td valign="top mceVisualAid">Architekturentwurf</td>
</tr>
<tr>
<td valign="top mceVisualAid">#3</td>
<td valign="top mceVisualAid">Läuft noch</td>
<td valign="top mceVisualAid">Umsetzung UI</td>
</tr>
</tbody>
</table>
<p>Ein Besuch bei der lokalen User Group <a title="Scrum User Groups" href="http://www.scrumalliance.org/user_groups" >[2]</a> bringt ein wenig mehr Licht ins Dunkel. Jörg hat eine Gruppe von Praktikern gefunden und tauscht bei einem der Treffen Erfahrungen aus. Jörg scheint mit seinem Problem nicht allein zu sein: Er erfährt, dass die Sprintlängen konsequent auf gleicher Länge gehalten werden sollten, um die einzelnen Sprints untereinander vergleichen zu können. Nur so kann man die Produktivität auch messen.</p>
<p>Auch die Messung des Fortschritts ist bei Jörg anscheinend suboptimal gelaufen. Ein Mitglied der User Group erklärt ihm, dass man den Fortschritt bei Scrum entgegen traditionellem Vorgehen nicht in abgeschlossenen Phasen misst, sondern in der Anzahl produktionsreifer, hochqualitativer, getesteter Funktionen.</p>
<h2>Wie Software schrittweise entsteht</h2>
<p>Einer der Werte des Agilen Manifests <a title="Das agile Manifest" href="http://www.agilemanifesto.org/iso/de/" >[3]</a> leitet sich aus dem Fakt ab, dass die Offenheit gegenüber Änderungen höher bewertet wird als das strikte Befolgen eines Plans. Doch was bedeutet das konkret? Man geht in Softwareprojekten davon aus, dass das, was zu Anfang des Projekts an Anforderungen da ist, nicht fix ist. Vielmehr wird sich der Leistungsumfang über die Projektlaufzeit verändern und sich den Gegebenheiten anpassen. Aus diesem Grunde muss man die Software beziehungsweise die Entwicklung selbiger so flexibel wie möglich halten.</p>
<p>Aus dem eXtremeProgramming ist YAGNI („You ain't gonna need it“) bekannt. Grob gesagt heißt das, dass man Dinge nur dann entwickeln sollte, wenn klar ist, dass man sie auch tatsächlich braucht. Somit entwickelt sich das Produkt inkrementell und nur im nötigen Rahmen. Daraus ergeben sich Produkte, die schlank sowie leichter wart- und erweiterbar sind. Die Entwickler können sich dadurch auf das Wesentliche konzentrieren und verschwenden ihre Zeit nicht auf Dinge, die vielleicht gar nicht benötigt werden.</p>
<p>Jörg nimmt die Hinweise der anderen erfahrenen Praktiker aus dem Treffen der lokalen User Group mit und setzt die Länge eines Sprints auf zwei Wochen fest. Noch mal im Scrum Guide nachgeschlagen, ergeben für Jörg nun auch die zusätzlichen Meetings einen Sinn:</p>
<ul>
<li>Sprint-Planung</li>
<li>Daily Scrum</li>
<li>Sprint Review</li>
</ul>
<p>Wenn Sprints immer die gleiche Länge haben, sind Start- und Endzeitpunkt auch immer gleich. Jörg wurde außerdem noch ein kleines Büchlein mit Praxiserfahrungen <a title="Scrum and XP from the trenches" href="http://www.infoq.com/minibooks/scrum-xp-from-the-trenches" >[4]</a> genannt, aus dem er die Idee mitgenommen hat, Sprints am Montag zu starten und am Freitag zu beenden. So hat das Team noch ein wenig Erholungspause zwischen den Sprints.</p>
<p>Das Review am Ende eines Sprints ist für Jörg allerdings eher enttäuschend, denn das Team ist meist nicht in der Lage, ihm einen entsprechenden Fortschritt zu präsentieren. Auch die Fortschrittmessung in geleisteten Mannstunden bringt Jörg nicht wirklich voran, da sich die entsprechenden Schätzungen zu sehr ändern und nur schwer vergleichbar sind.</p>
<p>Jörg hat zwar einige Ideen gut aufgenommen und umgesetzt. Bei anderen Dingen besteht allerdings noch viel Verbesserungspotenzial.</p>
<h2>Das Geheimnis erfolgreicher Sprints</h2>
<p>Wie schon erwähnt, sollten Sprints immer die gleiche Dauer haben, damit diese untereinander vergleichbar werden und somit eine Verbesserung des Teams ersichtlich wird. Man bezeichnet einen Sprint auch als „timeboxed“. Viele Teams scheitern am Timeboxing. Timeboxing ist aber eigentlich
nichts anderes, als dass man sich für eine bestimmte Tätigkeit einen
festen zeitlichen Rahmen setzt und diesen um nichts in der Welt
überzieht. Eher sollte man sich am Ende fragen, ob eine weitere Timebox
nötig ist und welche Länge diese dann haben sollte. In Scrum ist im
Grunde alles timeboxed (siehe das Kleine Scrum-Lexikon). Timeboxen
helfen allen Beteiligten, fokussiert an einem konkreten Thema zu
arbeiten.</p>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/scrum-praxis-226650/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TYPO3 Templates: Seiten-Layouts mit Fluid umsetzen</title>
		<link>http://t3n.de/magazin/seitentemplates-fluid-226788/</link>
		<comments>http://t3n.de/magazin/seitentemplates-fluid-226788/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 11:37:14 +0000</pubDate>
		<dc:creator>t3n Redaktion</dc:creator>
				<category><![CDATA[TECHNOLOGIE]]></category>

		<guid isPermaLink="false">http://t3n.de/magazin/?p=226788</guid>
		<description><![CDATA[Wer sich bereits jetzt mit Extbase oder gar FLOW3 beschäftigt, ist wahrscheinlich von der neuen Templating-Engine „Fluid“ von Sebastian Kurfürst begeistert. Endlich ist es möglich, die Darstellungslogik genau dahin zu verbannen, wo sie hingehört – in die Ausgabe. Bislang war Fluid aber nur ein Privileg für Extensionprogrammierer. Das neue TYPO3 4.5 greift nun auch für [...]]]></description>
			<content:encoded><![CDATA[<p>Wer sich bereits jetzt mit Extbase oder gar FLOW3 beschäftigt, ist wahrscheinlich von der neuen Templating-Engine „Fluid“ von Sebastian Kurfürst begeistert. Endlich ist es möglich, die Darstellungslogik genau dahin zu verbannen, wo sie hingehört – in die Ausgabe. Bislang war Fluid aber nur ein Privileg für Extensionprogrammierer. Das neue TYPO3 4.5 greift nun auch für das Seitentemplate auf Fluid zurück.<span id="more-226788"></span></p>
<p>&nbsp;</p>
<p>Ursprünglich war die Idee für das Seitentemplate in TYPO3 genauso einfach wie leistungsunfähig. Man hat ein HTML-Template und platziert dort Marker unter Verwendung eines String, der mit den Zeichen „###“ anfängt und wieder aufhört. Später ersetzt man den Marker dann im TypoScript beispielsweise mit dort generiertem Inhalt. Einen Schritt weiter geht der so genannte Subpart – dieser besteht lediglich aus zwei Markern und der Regel, dass alles innerhalb der Marker enthaltene inklusive der Marker selbst mit dem Inhalt ersetzt wird.</p>
<p>Die Schwächen dieses Vorgehens sind offensichtlich. Da es sich bei dem System lediglich um eine Textersetzung handelt, muss TypoScript den kompletten Inhalt inklusive der kompletten Darstellungslogik erzeugen. Will man nun an der Darstellung etwas ändern, kommt man nicht umhin, direkt in das TypoScript einzusteigen und dort die Änderungen vorzunehmen. Ebenso kann das Ganze in einer Arie aus Conditions und Extension-Templates ausarten, wenn man beispielsweise bei jedem Template verschiedenste Untertemplates einbinden will – oder man verwendet dafür spezialisierte Extensions. Wie man es aber dreht und wendet – es ist und bleibt suboptimal.</p>
<div class="article_code_box"><span class="article_code_title">Herkömmliche Methode: HTML-Template</span></p>
<pre>&lt;!-- ###DOCUMENT begin --&gt;
&lt;div id =“content“&gt;
###CONTENT###
&lt;/div&gt;
&lt;!-- ###DOCUMENT end --&gt;</pre>
<p><span class="article_code_subtitle">Listing 1</span></p>
</div>
<div class="article_code_box"><span class="article_code_title">Herkömmliche Methode: TypoScript</span></p>
<pre>page = PAGE
page.10 = TEMPLATE
page.10 {
	template = FILE
	template.file = fileadmin/site/template/tpl_main.html
	workOnSubpart = DOCUMENT
	marks {
		CONTENT &lt; styles.content.get</pre>
<p><span class="article_code_subtitle">Listing 2</span></p>
</div>
<p>Die neue TYPO3 Version 4.5 soll diesen Umstand zumindest dahingehend aufheben, als dass es nun möglich ist, die neue und bislang nur für FLOW3 beziehungsweise für Extbase verwendete Templating-Engine Fluid auch für das Seitentemplating zu benutzen. Dies realisiert das neu eingeführte TypoScript-Objekt „FLUIDTEMPLATE“, das im Hintergrund den ebenfalls in TYPO3 4.5 neu eingeführten Fluid-Standaloneview verwendet.</p>
<h2>Installation und Konfiguration</h2>
<p>Um das neue TypoScript-Objekt verwenden zu können, muss man sicherstellen, dass Fluid (Extension-Key: fluid) und Extbase (Extension-Key: extbase) im System installiert sind. Dies kann man ganz einfach im Extension-Manager überprüfen.</p>
<p>Im nächsten Schritt kopiert man das bisherige Template und verwendet dort statt des Markers die Zeichenkette {content}. Nun kann TypoScript diese ansprechen:</p>
<div class="article_code_box"><span class="article_code_title">Fuid Methode: HTML-Template</span></p>
<pre>&lt;div id =“content“&gt;
{content}
&lt;/div&gt;</pre>
<p><span class="article_code_subtitle">Listing 3</span></p>
</div>
<div class="article_code_box"><span class="article_code_title">Fluid Methode: TypoScript</span></p>
<pre>page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
	template = FILE
	template.file = fileadmin/site/template/tpl_fluid_main.html
	variables {
		content &lt; styles.content.get</pre>
<p><span class="article_code_subtitle">Listing 4</span></p>
</div>
<p>Bislang erinnert das Handling an das bekannte Vorgehen, aber es hat sich bereits einiges im Hintergrund getan – unter anderem hat das System die Daten anders transportiert. So gibt es nicht etwa die Content-Elemente der Spalte „Normal“ aus, sondern deren Datenbankinhalt – also ohne die zugehörige HTML-Darstellung. Dies liegt schlicht daran, dass normalerweise die TypoScript-Bibliothek „css_styled_content“ für die Darstellung verantwortlich ist – bei Fluid kann der Nutzer aber selbst im View entscheiden, wie dieser dargestellt werden soll – daher kann der Anwender die Darstellung als HTML explizit anstoßen. Um dies zu realisieren, schreibt man folgendes in das Template:</p>
<div class="article_code_box"><span class="article_code_title">Darstellung als HTML</span></p>
<pre>&lt;div id =“content“&gt;
&lt;f:format.html&gt;{content}&lt;/f:format.html&gt;
&lt;/div&gt;</pre>
<p><span class="article_code_subtitle">Listing 5</span></p>
</div>
<p>Wer sich bereits mit Fluid beschäftigt hat, sieht sofort, dass hier ein sogenannter Fluid-ViewHelper zum Tragen kommt – eine eigene Klasse innerhalb der Fluid-Systemextension, die in diesem Fall für die Formatierung der Ausgabe in HTML zuständig ist.</p>
<h2>Zugriff auf die Seiteneigenschaften</h2>
<p>Das Array „data“ übergibt alle Seiteneigenschaften (wie UID, Titel, Navigationstitel) automatisch an den Fluid-View. Die Seiteneigenschaften stehen dementsprechend dort zur Verfügung.</p>
<p>Dafür verantwortlich ist letztlich die Anweisung „$view-&gt;assign('data', $this-&gt;cObj-&gt;data);“ in der Datei „typo3/sysext/cms/tslib/content/class.tslib_content_fluidtemplate.php“.</p>
<p>Man kann jede der Eigenschaften ganz einfach auslesen, indem man die Eigenschaft als „Schlüssel“ für das Array „data“ verwendet und darauf mit der Punktsyntax von Fluid zugreift:</p>
<div class="article_code_box"><span class="article_code_title">Zugriff auf Seiteneigenschaften im Template</span></p>
<pre>Sie befinden sich auf der Seite mit der UID {data.uid} und dem Titel {data.title}
&lt;f:if condition="{data.layout}==1"&gt;
&lt;f:then&gt;
Layout-Feld steht auf dem Wert "Layout 1"
&lt;/f:then&gt;
&lt;f:else&gt;
Layout-Feld steht NICHT auf dem Wert "Layout 1"
&lt;/f:else&gt;
&lt;/f:if&gt;
Alle Eigenschaften: &lt;f:debug&gt;{data}&lt;/f:debug&gt;</pre>
<p><span class="article_code_subtitle">Listing 6</span></p>
</div>
<p>Das Beispiel zeigt auch, wie man im Template das Layout-Feld der Seiteneigenschaften mit dem If-ViewHelper abfragen kann, um daraufhin eine andere Ausgabe zu erzeugen. Dies funktioniert natürlich auch mit allen anderen Feldern.</p>
<p>Eine Übersicht über alle verfügbaren Eigenschaften bietet der Fluid Debug-ViewHelper – diesen zeigt das oben stehende Listing ebenfalls am Ende. So kann man einerseits die zur Verfügung stehenden Schlüssel wie auch deren aktuelle Werte nachsehen.</p>
<h2>TypoScript everywhere</h2>
<p>Ein Nachteil der bisherigen Marker-Methode besteht darin, dass man im Abschnitt, der die Marker befüllt, festlegen muss, welche TypoScript-Ausgabe man im Template verwenden will. Das bisherige Vorgehen beinhaltete die Integration eines Markers in das Template und die Zuweisung des TypoScript-Objekts an den Marker. Dies ist nicht nur sehr unflexibel, sondern auch fehleranfällig.</p>
<p>Alternativ kann man nun ein FLUIDTEMPLATE verwenden. Schließlich gibt es einen CObject-ViewHelper, der beliebige TypoScript-Objekte direkt ohne vorherige Zuweisung flexibel integriert, in dem man lediglich den TypoScript-Pfad angibt, der irgendwo im TypoScript-Setup definiert sein muss.</p>
<p>Das folgende Beispiel zeigt jeweils, wie die TypoScript-Objekte aufgebaut sind und darunter den jeweiligen Code, um darauf im Template zuzugreifen.</p>
<div class="article_code_box"><span class="article_code_title">TypoScript</span></p>
<pre>lib.test1 = TEXT
lib.test1.value = Aus dem TypoScript!

lib.test2 = IMAGE
lib.test2 {
	file = GIFBUILDER
	file {
		XY = 300,30
		backColor = #cc0000
		10 = TEXT
		10.text.current = 1
		10.fontColor = #ffffff
		10.offset = 10, 25
	}
}</pre>
<p><span class="article_code_subtitle">Listing 7</span></p>
</div>
<div class="article_code_box"><span class="article_code_title">HTML-Template</span></p>
<pre>&lt;f:cObject typoscriptObjectPath="lib.test1" /&gt;
&lt;f:cObject typoscriptObjectPath="lib.test2"&gt;Das wird als Bild gerendert&lt;/f:cObject&gt;</pre>
<p><span class="article_code_subtitle">Listing 8</span></p>
</div>
<p>Über das Attribut „typoscriptObjectPath“ des „cObject“-ViewHelpers kann man so beispielsweise das TypoScript-Objekt „lib.test1“ adressieren und somit direkt an dieser Stelle ausgeben – ohne es vorher explizit zuzuweisen.</p>
<p>Diese Methode funktioniert aber nicht nur vom TypoScript-Setup ins Template, sondern auch umgekehrt. So kann man Werte aus dem Template an eine TypoScript-Bibliothek übergeben und das Ergebnis wiederum im Template anzeigen lassen. So rendert das zweite Beispiel den String innerhalb des ViewHelpers durch das TypoScript-Objekt „lib.test2“ mit dem GIFBUILDER und zeigt wiederum das Bild im Template an.</p>
<p>Entscheidend ist hier, dass die „Eingabe“ innerhalb des ViewHelpers an das TypoScript-Objekt so übergeben wurde, dass man dort mittels der stdWrap-Eigenschaft „current = 1“ darauf zugreifen kann. Das macht man sich zunutze, indem man bei der GIFBUILDER-Eigenschaft „text“ darauf zugreift.</p>
<h2>Layout und Partials</h2>
<p>Gerade bei umfangreichen Darstellungen stellt man fest, dass die Ausgabe drei wiederkehrende Bestandteile hat:</p>
<ul>
<li>Ein Layout, das beispielsweise CI-Elemente oder eine Bereichsnavigation enthält</li>
<li>Das Template, das die klassische Ausgabe enthält</li>
<li>Immer wiederkehrende Teile (Partials), die man nur einmal definiert und an vielen Stellen einbinden kann. Sobald ein bestimmter Abschnitt im Template öfter als einmal unverändert auftaucht, kann man diesen in einem Partial auslagern</li>
</ul>
<p>Im nächsten Schritt legt man im Verzeichnis „fileadmin“ die beiden Verzeichnisse „Layouts“ und „Partials“ an und konfiguriert den jeweiligen Pfad mit Hilfe von TypoScript (siehe nächster Abschnitt):</p>
<div class="article_code_box"><span class="article_code_title">Konfigurieren des Verzeichnisse</span></p>
<pre>page.10 = FLUIDTEMPLATE
page.10 {
	layoutRootPath = fileadmin/Layouts/
	partialRootPath = fileadmin/Partials/
}.</pre>
<p><span class="article_code_subtitle">Listing 9</span></p>
</div>
<p>Nun kann man beides im Template verwenden:</p>
<div class="article_code_box"><span class="article_code_title">Layout und Partial zum Template hinzufügen</span></p>
<pre>&lt;f:layout name="defaultLayout" /&gt;
&lt;f:section name="content"&gt;
&lt;h2&gt;It works :-)&lt;/h2&gt;
&lt;f:render partial="testpartial" /&gt;
Weiterer Text...
&lt;/f:section&gt;</pre>
<p><span class="article_code_subtitle">Listing 10</span></p>
</div>
<div class="article_code_box"><span class="article_code_title">Layout-File: fileadmin/Layouts/defaultLayout.html</span></p>
<pre>&lt;h1&gt;Das kommt aus dem Layout&lt;/h1&gt;
&lt;f:render section="content" /&gt;</pre>
<p><span class="article_code_subtitle">Listing 11</span></p>
</div>
<div id="attachment_227330" class="wp-caption wp-caption-large" style="width: 608px;"><a href="http://t3n.de/magazin/?p=226788dms_d72767488e877c03f55d1308ac375c32"><img class="alignleft size-large wp-image-227330" title="Die Ausgabe, besonders bei umfangreichen Darstellungen, beinhaltet mit dem Layout, dem Template für die Ausgabe und den Partials (einmal definierte und wiederkehrende Teile) drei wiederkehrende Bestandteile." src="http://t3n.de/magazin/wp-content/uploads/2011/01/dms_d72767488e877c03f55d1308ac375c32-596x430.jpg" alt="Die Ausgabe, besonders bei umfangreichen Darstellungen, beinhaltet mit dem Layout, dem Template für die Ausgabe und den Partials (einmal definierte und wiederkehrende Teile) drei wiederkehrende Bestandteile." width="596" height="430" /></a></p>
<p class="wp-caption-text">Die Ausgabe, besonders bei umfangreichen Darstellungen, beinhaltet mit dem Layout, dem Template für die Ausgabe und den Partials (einmal definierte und wiederkehrende Teile) drei wiederkehrende Bestandteile.</p>
</div>
<p>Beim Aufbau der Layout-Template-Struktur muss man nun etwas um die Ecke denken:</p>
<ol>
<li>Das Template selbst wird über die file-Eigenschaft des FUIDTEMPLATE Content-Objekts definiert und aufgerufen.</li>
<li>Dieses Template-File kann einen Layout-ViewHelper beinhalten (oben in der ersten Zeile). Dieser bestimmt wiederum das Layout-Template-File. An diesen unter dem Attribut „name“ angegebenen Namen wird „.html“ zugefügt (beziehungsweise die entsprechende zuvor mit der TypoScript-Eigenschaft „format“ festgelegte Formatendung) und das File aus dem ebenfalls per TypoScript konfigurierten Verzeichnis.</li>
<li>Im Layout-Template-File kann man das Layout definieren. An der Stelle, an der man das Template platzieren will, verwendet man den ViewHelper &lt;f:render section="content" /&gt;. Als Attribut „section“ benutzt man genau den Namen, den man im Haupt-Template über den Section-ViewHelper &lt;f:section name="content"&gt; verwendet hat. Damit wird dann der Abschnitt (Section) des Templates gerendert.</li>
<li>Partials kann man beliebig platzieren, indem man den Render-ViewHelper &lt;f:render partial="testpartial" /&gt; verwendet. Hier gilt ebenfalls, dass Fluid im jeweiligen konfigurierten Verzeichnis nach dem Partial sucht, das den angegebenen Namen inklusive der Dateiendung, die per Default .html lautet, haben muss.</li>
</ol>
<h2>TypoScript-Optionen</h2>
<p>Zusammenfassend finden Sie in nachfolgender Tabelle alle TypoScript-Optionen, die mit dem Content-Objekt FLUIDTEMPLATE möglich sind.</p>
<p>Auf "file", "layoutRootPath" und "partialRootPath" können zudem stdWrap Eigenschaften angewendet werden.</p>
<table class="table">
<tbody>
<tr>
<td class="table_header" valign="top mceVisualAid">Option</td>
<td class="table_header" valign="top mceVisualAid">Bemerkung</td>
</tr>
<tr>
<td valign="top mceVisualAid">file</td>
<td valign="top mceVisualAid">Pfad zur Templatedatei
(string + stdWrap)</td>
</tr>
<tr>
<td valign="top mceVisualAid">format</td>
<td valign="top mceVisualAid">Format – Default ist HTML</td>
</tr>
<tr>
<td valign="top mceVisualAid">extbase.
pluginName</td>
<td valign="top mceVisualAid">Festlegen des Plugin-Namens</td>
</tr>
<tr>
<td valign="top mceVisualAid">extbase.
controllerExtensionName</td>
<td valign="top mceVisualAid">Festlegen des Extension-Namens</td>
</tr>
<tr>
<td valign="top mceVisualAid">extbase.
controllerName</td>
<td valign="top mceVisualAid">Festlegen des Controller-Namens</td>
</tr>
<tr>
<td valign="top mceVisualAid">extbase.
controllerActionName</td>
<td valign="top mceVisualAid">Festlegen des Action-Namens</td>
</tr>
<tr>
<td valign="top mceVisualAid">layoutRootPath</td>
<td valign="top mceVisualAid">Pfad zu den Layout-Dateien
(string + stdWrap)</td>
</tr>
<tr>
<td valign="top mceVisualAid">partialRootPath</td>
<td valign="top mceVisualAid">Pfad zu den Partial-Dateien
(string + stdWrap)</td>
</tr>
<tr>
<td valign="top mceVisualAid">variables</td>
<td valign="top mceVisualAid">Array von Content-Objekten, auf die im Template via Schlüssl zugegriffen werden kann</td>
</tr>
<tr>
<td valign="top mceVisualAid">stdWrap</td>
<td valign="top mceVisualAid">StdWrap-Eigenschaften auf die gesamte Ausgabe anwenden</td>
</tr>
</tbody>
</table>
<h2>Fazit</h2>
<p>Das TypoScript-Content-Objekt ist bereits jetzt extrem leistungsfähig und unterstützt TYPO3-Entwickler in vielerlei Hinsicht optimal. Zudem stehen so Funktionen zur Verfügung, die mit der klassischen Methode schlicht nicht möglich sind. Man denke beispielsweise alleine an die ViewHelper. Darüber hinaus existieren eigene ViewHelper, die mit wenig Aufwand die Möglichkeiten des Templating erheblich erweitern.</p>
<p>Allerdings fallen einem schnell Dinge auf, die nicht beziehungsweise noch nicht realisiert wurden. So ist es durchaus sinnvoll, dass beispielsweise das Auslesen einer Backend-Spalte nicht alle dort vorhandenen Inhaltselemente als einen String zurückliefern sollte, sondern als Array. Dann könnte man darauf auch andere Viewhelper wie „Cylcle“ oder „For“ anwenden, um so jedes Content-Element einzeln anzusprechen.</p>
<p>Ebenfalls möglich wäre dann vielleicht ein Zugriff auf einzelne Eigenschaften eines Content-Elements. Einem Kommentar im Bugtracker zufolge ist dies für Version 4.6 angedacht.</p>
<div class="article_author_box">
<p class="article_author_header"><span>Der Autor</span></p>
<div class="article_author_description"><img title="Patrick Lobacher" src="http://t3n.de/magazin/wp-content/uploads/authors/050d34855bddaad680de62d026dda850_thumb.jpg" alt="Patrick Lobacher" />Patrick Lobacher ist Inhaber und Geschäftsführer der Full-Service Agentur "typovision – Agentur für multimediale Kommunikation" (www.typovision.de), Autor, Trainer, Programmierer, Silber-Mitglied der TYPO3 Association und „Certified TYPO3 Integrator“ und nicht zuletzt ein Digital Native. Er berät seit 1996 Unternehmen beim Einsatz von Webtechnologien, insbesondere seit 2002 zunehmend im TYPO3-Umfeld.</p>
<p style="clear: both;">
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://t3n.de/magazin/seitentemplates-fluid-226788/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

