<?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>XamlLab</title>
	<atom:link href="http://xamllab.net/feed" rel="self" type="application/rss+xml" />
	<link>http://xamllab.net</link>
	<description>Development in WPF und Silverlight</description>
	<lastBuildDate>Mon, 12 Dec 2011 13:17:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Session: User Experience in Spielen</title>
		<link>http://xamllab.net/guidesign/session-user-experience-in-spielen/696</link>
		<comments>http://xamllab.net/guidesign/session-user-experience-in-spielen/696#comments</comments>
		<pubDate>Sun, 11 Dec 2011 20:03:12 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[GUI&Design]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=696</guid>
		<description><![CDATA[Sprecher: Tom Wendel (Microsoft) Technische Herausforderungen Nach den eher businessorientierten UX Themen der letzten Tage heute als persönliches Highlight für mich User Experience in Spielen Spiele sind Programme mit Unterhaltungsaspekt! Unterschiedliche Plattformen: Diese Programme gibt es heute für die unterschiedlichsten Plattformen wie zum Beispiel PC, Mac, XBox, Playstation, Surface, Gameboy, Handy sowie die &#8220;historischen Spielecomputer&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p><em>Sprecher:<br />
Tom Wendel (Microsoft)</em></p>
<p><strong>Technische Herausforderungen</strong></p>
<p>Nach den eher businessorientierten UX Themen der letzten Tage heute als persönliches Highlight für mich User Experience in Spielen</p>
<p><em>Spiele sind Programme mit Unterhaltungsaspekt!</em></p>
<p><strong>Unterschiedliche Plattformen:</strong></p>
<p>Diese Programme gibt es heute für die unterschiedlichsten Plattformen wie zum Beispiel PC, Mac, XBox, Playstation, Surface, Gameboy, Handy sowie die &#8220;historischen Spielecomputer&#8221;. Die aufgezählten sind jedoch lange nicht alle.</p>
<p><strong>Aufteilung in Genres:</strong></p>
<p>Spiele werden auch in unterschiedlichste Kategorien untergliedert wie Board / Card-Games, Point &#038; Click, Echtzeit / Strategie-Spiele, Jump &#038; Run, First-Person, Rennen, RPG / Hack &#038; Slay und Multiuser-Games und dennoch sind sie alle ähnlich vom Grundaufbau.</p>
<p><em>Die Innovation liegt in der Spieleidee innerhalb eines Genres.</em></p>
<p>Das Game steht im Mittelpunkt und es wird mit einem Eingabeerät bedient. Z. B. Keyboard, Mouse, Controller (Joystick, Padel, Gitarre) , Hand (Touchscreens), Gestensteuerung (Kinect).<br />
Die folgenden technologischen Aspekte wie Sound, 3D-Raum, Tags, Internet kommen noch hinzu.</p>
<p><strong>Spielekonzepte:</strong></p>
<p>Strategie-Spiele<br />
First-Person-Shooter = Ich steuere und sehe mich bewegen durch das Spiel bewegen. Informationen ganz dezent. Wenig Raum wird für das UI genutzt. </p>
<p>Hack &#038; Slay = Ich schaue auf die Welt von oben und steuere den Avatar. Auch hier wieder maximaler Gameraum und das UI dezent drumrum.</p>
<p>Rollenspiel = Hier wird die Story beschrieben was die Story ist und der Nutzer kann diese beeinflussen.</p>
<p>MassivMultiplayerOnlineRolePlayGame = Obschon sich alles im Zentrum abspielt, braucht das Game sehr viele Informationen über die Umwelt. Das macht das Interface, das wieder eher am Rand steht sehr voll. </p>
<p>Rennspiel = Rennen innerhalb der 3D-Welt wie  bei einem First Person Shooter. Interaktion mit der Welt steht im Fordergrund &#8211; Headup-Display. </p>
<p>Moderne Spiele arbeiten im 3D-Raum. (Brettspiel-Klone und alte Casual Games ausgenommen). 3D geschieht in Echtzeit, nicht Eventgetrieben. </p>
<p>While (true) Schleife:<br />
Technisch gesehen immer die gleiche Gameloap: Das Game prüft, ob was passiert und zeichnet es am Bildschirm. </p>
<p><strong>Technische Limits:</strong></p>
<p>Echtzeit-Rendering, Netzwerkkommunikation, Soundeffekte, verschiedenste Eingabeformen, 3D-Projektion</p>
<p>Harte Entwickler-Verzahnung sowie Game-Designer vs. UI-Designer. Die Zusammenarbeit zwischen Entwickler und Designer ist sehr wichtig auch wenn oft nicht einfach.</p>
<p><strong>Neuerungen in den Spielen?</strong></p>
<p>Be Neuerungen ist eines dabei jedoch ganz wichtig das Konzept muß gleich bleiben. Neuerungen wie neue Steuerung oder neues Interface sind gefährlich. Denkbare Neuerungen sind zum Beispiel eine Gute Story (Monkey, Gothic, &#8230;), eine Bessere grafik (FarCry, Halo &#8230;), Aktuellere Inhalte  oder sogar Neue Features jedoch immer unter dem Aspekt die Anforderungen an ein UI zu beachten.</p>
<p>Die Anforderungen an das UI eines Spieles sind unter anderem das es schnell verständlich, logisch und ergonomisch aufgebaut sein muss. </p>
<p><strong>Nun folgen ein paar Beispiele für neue gute Konzepte:</strong></p>
<p>Limbo (Jump and Run ohne UI in Schwarzweiss)<br />
Flow (hoch intuitiv gesteuertes kleines Planton, was sich &#8220;Groß&#8221; frisst. Das Game wird ornamental-typografisch)<br />
Dead Space (Egoshooter komplett ohne UI)<br />
Mirrors Edge (Ego-Jump&#038;Run als Parkour-Läuferin. Kein Interface, sondern nur Rot als Umfärbung der Objekte, die die Richtung bestimmen. </p>
<p><strong>Umsetzungstechnologien:</strong></p>
<p>Es gibt für Spiele verschiedenste Umsetzungstechnologien wie Hardcore-3D (C++, Direct X und OpenGL<br />
X-Box, Phone), Silverlight (XNA ist die Plattform), Casual Games im Browser (früher Plugins &#8211; künftig Unity / HTML 5)</p>
<p>Fazit:<br />
UI-Design in Spielen hat andere Konzepte, andere Interfaces, andere Controller sowie andere Prozesse.<br />
UI Design in Spielen verwendet aber dennoch die allgemeinen Gesetze des UI Designs.</p>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/guidesign/session-user-experience-in-spielen/696/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session: HTML 5 und User Interface Design</title>
		<link>http://xamllab.net/guidesign/session-html-5/678</link>
		<comments>http://xamllab.net/guidesign/session-html-5/678#comments</comments>
		<pubDate>Sun, 11 Dec 2011 19:46:27 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[GUI&Design]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=678</guid>
		<description><![CDATA[Speaker: Felix Rieseberg Beginnend mit der Aussage : Websites sind keine Flyer mehr, sie entwickteln sich mehr und mehr zu Anwendungen. Es soll um ausgewählte Themen gehen und nicht um einen Wettlauf durch alle HTML5 Funktionen. Zuerst geht es um Nutzerinteraktionen. Die Anzahl der Nutzereingaben wächst stetig. JQuery UI versucht zu realisieren was dringend notwendig [...]]]></description>
			<content:encoded><![CDATA[<p><em>Speaker:</p>
<p>Felix Rieseberg</em></p>
<p><em>Beginnend mit der Aussage : Websites sind keine Flyer mehr, sie entwickteln sich mehr und mehr zu Anwendungen.</em></p>
<p>Es soll um ausgewählte Themen gehen und nicht um einen Wettlauf durch alle HTML5 Funktionen.</p>
<p>Zuerst geht es um Nutzerinteraktionen. Die Anzahl der Nutzereingaben wächst stetig. JQuery UI versucht zu realisieren was dringend notwendig war. Standardcontrols  wie einen Datepicker einfach zu realisieren. Mit HTML5 soll z.B. der Datepicker einfach aus HTML heraus zur Verfügung stehen.</p>
<p>Bisher gibt es z.B. auf jeder Seite unterschiedliche Arten der Formvalidierung. Mit HTML5 kann man dem Textfeld sagen welchen Inhalt es enthalten soll, dies wird mit Eingabetypen wie <code> input type="text </code> für eine Mailadresse realisiert. Auch die Eingabe der Werte wird unterstützt mit Elementen wie einem Ziffernblock zur Zahleneingabe oder einem Colorpicker für Farben. Es gibt für Formulare und Formularelemente Eingabetypen, Eingabevalidierung, Autovervollständigung, Platzhalter und Checkboxen.</p>
<p><strong>Demo</strong></p>
<p>Es folgt eine kleine Demo mit Opera, da dieser Browser bei Inputtypes wohl die bisher beste Unterstützung bietet. Auch der IE wird gezeigt, bei dem sich die Bildschirmtastatur an ein Textfeld mit Ziffern anpasst.</p>
<p>Die eingebaute Validierung sorgt zusätzlich dafür,dass in einem Browser auf allen Seiten Meldungen für Falscheingaben einheitlich aussehen, da das Meldungselement vom Browser und nicht von der Seite selbst kommt.</p>
<p>Eine Autovervollständigung kann ganz einfach mit einer Datalist Erstellt werden.</p>
<p>Platzhalter realisieren einen Beispieltext ähnlich der bekannten Wasserzeichen welche beim hineinklicken verschwinden.</p>
<p>Zu den Checkboxen kommt ein dritter Status hinzu, der inditermant State, bei dem die Checkbox mit einem rechteck gefüllt ist.</p>
<p>Felix sagt kurz was ihn bisher an Formularen nervt, Punkt eins sind Kalender (z.B. Bei der Flugbuchung), Nummer zwei ist der allseits beliebte Zurück-Button (allgemeines Stöhnen im Saal).</p>
<p><strong>Manipulierung der History</strong></p>
<p>Hier kann bei HTML5 mit history.pushState oder history.replaceState in das Verhalten des Zurück Knopfs eingegriffen werden. Mit pushState wird eine Adresse an die Adresszeile geschickt aber nicht aufgerufen. Mit replaceState wird die zuletzt Besuchte Seite geändert.</p>
<p>Damit ermöglicht der pushState Parameter in die URL zu schreiben, obwohl die Daten eigentlich per Ajax zum Server gelangen.</p>
<p>Es findet momentan keine Common Origin Prüfung statt. Das ist für den Entwickler mächtig, für den Nutzer allerdings gefährlich.</p>
<p><em>Wo Licht ist, da ist auch Schatten und so kommt Felix jetzt zu Grenzen und Problemen.</em></p>
<p>Leider sind nicht für alle Browser eigene Controlls für alle Typen möglich.</p>
<p>Die Validierung bietet im Moment eine sehr geringe Flexibilität, so ist eine Prüfung über externe Schnittstellen (Bsp. Kreditkarten) nicht möglich.</p>
<p><strong>Drag &amp; Drop</strong></p>
<p>Die Funktionalität ist gut, die API wohl aber sehr schlecht.</p>
<p>Die Grundprinzipien sind klar, werden aber der Vollständigkeit halber nochmals genannt: draggable, droppable &amp; Datentransfer.</p>
<p>Die &#8220;Killerapplikation&#8221; ist die Desktopintegration z.B. der Upload von Bildern per einfachem Heranziehen in den Browser.</p>
<p>Es gibt eine ganze Menge Events, die meisten nur um Drag &amp; Drop zu killen.</p>
<p>Neu ist das dataTransfer Objekt, auf das man im Dom und somit auch per JS zugreifen kann.</p>
<p>Bisher Upload und Bildauswahl per Flash, danach die Frage wer im Raum denkt das in 5 Jahren noch Flash genutzt wird. Keiner meldet sich ; )</p>
<p><strong>Beispiel</strong></p>
<p>Ganz kurz erwähnt wird Cross-Document-Messaging, was durch die Messaging API realisiert wird. Es folgt ein Bsp. das Bild wurde per Drag &amp; Drop auf unseren Bilderservice geladen. Jetzt soll es auf Facebook veröffentlicht werden, was im zweitem Tab offen ist. Nach Nutzerintegration kann das Bild x nun von der einen Seite zur anderen geschickt werden.</p>
<p>Damit ist der Teil User Controls abgeschlossen.</p>
<p><strong>Weitere Möglichkeiten von HTML5</strong></p>
<p>Den Anfang macht das Canvas.</p>
<p>Das Canvas ist eine frei programmierbare Leinwand. Es gibt zwei Dinge zu unterscheiden, den 3D Kontext und den 2D Kontext. Um 3D soll es heute nicht gehen da es ein sehr umfangreiches Thema ist (Stichwort WebGL mit Shadern etc.) Der 2D Context wird weit unterstützt.</p>
<p>Das Vorgehen ist an Zeichnen angelegt, man wählt erst einen Pinsel (rot) und zeichnet dann ein Rechteck, es ist nicht möglich ein Rechteck zu zeichnen und dann zu sagen es soll bitte rot sein.</p>
<p>Nicht nur gerade Linien sind möglich, dafür aber Kreisbögen, Farbverläufe etc.</p>
<p>Felix weißt vor den Beispielen darauf hin, dass wenn irgend möglich auf Canvas verzichtet werden soll.</p>
<p>Es gibt viele Frameworks, die sich in Entwicklung befinden. Drei sollen heute vorgestellt werden. CAKE, fabric.js und Processing.</p>
<p>Es werden einige nette Effekte gezeigt, die mit CAKE realisiert sind und bisher nur mit Flash (oder Silverlight) möglich waren. Auch mit fabric lassen sich nette Animationen erstellen (z.B. Fliegende Bugs). Processing erlaubt es relativ komplexe Daten einfach zu visualisieren und animieren.</p>
<p><em>Felix warnt: das erste mal Canvas bearbeiten sieht am Anfang grausam aus, aber mit den Frameworks lässt sich in erträglicher Zeit einiges erreichen.</em></p>
<p>Jetzt kommen Media Queries, welche sich dem Problem der vielen unterschiedlichen Geräte annimmt, mit denen heute Websites angesehen/benutzt werden. Man kann jetzt mehr Sachen von den Geräten Abfragen wie z.B. Höhe, Breite, Orientierung, Seitenverhältnis, Auflösung, Color, Scan und Grid. Scan ist interessant für Fernseher und das Grid gibt an ob ein Raster zugrunde liegt (z.b. bei dem Kommandozeilenbrowser Lync).</p>
<p>Mit den Informationen aus den Media Queries ist es dann entsprechend möglich, je nach Gerät ein spezifisches Stylesheet zu verwenden und dem Nutzer die bestmögliche Darstellung zu bieten.</p>
<p>Von der Verwendung der Handheld-Eigenschaft wird abgeraten da z.B. Androide und iOS das &#8220;volle&#8221; Web bieten und die Eigenschaft ignorieren.</p>
<p>Jetzt kommt der Modernizer zum Einsatz, der innerhalb kürzester Zeit CSS Funktionen und Co auf Verfügbarkeit prüft. Wenn der Browser etwas nicht anbietet, greift ein polyfill (Fallback) was durch das Framework realisiert wird.</p>
<p>Es gibt eine Seitenempfehlung: http://Bit.ly/fr_polyfills Hier wird gut gezeigt wie man Polyfills geschickt einsetzt um HTML5 zu nutzen ohne Nutzer mit älteren Systemen auszuschließen.</p>
<p>Es gibt keine Fragen zu diesem wirklich guten Vortrag. Damit neigt sich der erste Tag der GUI &amp; DESIGN langsam dem Ende entgegen. Es folgt das Panel zu ’Begriffen und Rollen’ und im Anschluß dazu die Abendveranstaltung.</p>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/guidesign/session-html-5/678/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session: Vom Sketch Flow zum Produktiv-Projekt</title>
		<link>http://xamllab.net/guidesign/vom-sketch-flow-zum-produktiv-projekt/663</link>
		<comments>http://xamllab.net/guidesign/vom-sketch-flow-zum-produktiv-projekt/663#comments</comments>
		<pubDate>Fri, 09 Dec 2011 12:40:35 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[GUI&Design]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=663</guid>
		<description><![CDATA[Lars Heinrich und Peggy Reuter Peggy leitet in das Thema mit einer Beschreibung von den Grundsätzen zu Sketch Flow Prototypen ein. Was ist ein Sketch Flow Prototyp? Echte Applikationen die mit Blend erstellt werden Für Designer, Usability Experten und Entwickler Warum sollte man Sketch Flow Prototypen nutzen? konstengünstiger und schneller als &#8220;reale&#8221; Produkte Nutzer Feedback [...]]]></description>
			<content:encoded><![CDATA[<div>Lars Heinrich und Peggy Reuter</p>
<p>Peggy leitet in das Thema mit einer Beschreibung von den Grundsätzen zu Sketch Flow Prototypen ein.<br />
Was ist ein Sketch Flow Prototyp?</p>
<ul>
<li>Echte Applikationen die mit Blend erstellt werden</li>
<li>Für Designer, Usability Experten und Entwickler</li>
</ul>
<p>Warum sollte man Sketch Flow Prototypen nutzen?</p>
<ul>
<li>konstengünstiger und schneller als &#8220;reale&#8221; Produkte</li>
<li>Nutzer Feedback</li>
<li>es wird EIN Prototyp erstellt an dem alle Beteiligten mitarbeiten können</li>
</ul>
<p>Es folgt ein kurzer Abriss über die &#8220;normalen&#8221; Prototypen.<br />
Lars spricht jetzt über Probleme der &#8220;normalen&#8221; Prototypen. Es ist überraschend was man von kreativen Leuten geliefert bekommt.. Klassiker wie das mischen von deutschen und englischen Namen oder die allseits beliebte Solution Application. Es gibt eine Demo eines WorstCase Szenarios, bei dem man den erstellten Prototypen nur noch verwerfen kann wenn daraus ein Finales Produkt werden soll.</p>
<p>Nach dem don’t do folgt nun das do.<br />
Folgende Schritte werden vorgeschlagen:</p>
<ul>
<li>Zielgruppen und Personas bestimmen</li>
<li>Anforderungen und Nutzerwünsche</li>
<li>ein Organigramm erstellen um die Kundenwünsche an den Programmierer heranzutragen.</li>
<li>aus den Ideen erstellt der Entwickler eine Solution-Architektur</li>
<li>Integration von ViewModels, anlegen von Views etc.</li>
</ul>
<p>Dazu wird in einer kurzen Demo der Unterschied vom WorstCase zur guten Solution-Architektur gezeigt, mit einer Aufteilung zwischen prototypsichen Komponenten, Theme Komponenten und der Basisanwendung. Dabei ist es auch hier wieder wichtig auf die Blendability zu achten, denn Grafiker/Designer arbeiten nicht mit VS sondern mit Blend.</p>
<p>Es fällt die Frage wer als erstes aktiv wird? Antwort: Hier ist der Entwickler an der Reihe, denn die Probleme beginnen schon wenn man die ersten Elemente in ein von Blend erstelltes Projekt wirft mit generierten Klassen etc. Lars als Entwickler bezieht sich oft auf die Session vom Daniel, denn wenn man an dieser Stelle dem Designer die richtig vorbereiteten Grundlagen an die Hand gibt vermeidet man viele der genannten Fehler z.B. In dem man implizite Styles verwendet.</p>
<p>Weiter geht es mit Peggy, die Beispieldaten in die Solution integriert. Zur Anwendung in dem Prototypen kommen die richtigen Controls, so dass eine Checkbox nicht nur so aussieht als wäre sie eine, sondern eben eine Checkbox ist.Es gibt auch die Möglichkeit für den Kunden Feedback in den Prototypen zu schreiben und dieses als Datei an den Designer zu schicken damit er reagieren kann.</p>
<p>Der nächste Schritt geht nun wieder an Lars der die Sketch Styles zu Simple Styles ändert und den aufgeräumten Code wieder an Peggy weiter gibt.</p>
<p>Nun folgt die Umsetzung des Screendesigns über den Prototypen. Indem Peggy die Eigenschaften der einzelnen Controls, die Typografie und die Farben der Hintergründe verändert.</p>
<p>Lars übernimmt jetzt das Ruder und erklärt wie man nun vom gestyltem Sketch Flow Prototypen zur Grundlage des &#8220;echten&#8221; Produkts kommen kann.  Der Sketch Flow Rahmen wird solange wie möglich gehalten, um eventuelle Anforderungen die später kommen wieder mit einem Prototypen evaluiert werden kann. Aus dem Sampeldate werden entsprechende ViewModels angelegt, der NavigationManager wird verworfen. Dann kommt noch ein Fenster drum und schon kann es los gehen. In der Solution besteht dann die Möglichkeit die Anwendung als solche oder mit dem Rahmen von Sketch Flow zu starten.</p>
<p>Es kommt noch eine Frage zum Import von Illustrator hinzu XAML, was wohl automatisch geht, wovon aber abgeraten wird (ein Teilnehmer berichtet von Erfolg im eigenem Projekt mit der Importfunktion).</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/guidesign/vom-sketch-flow-zum-produktiv-projekt/663/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session: 100% Design &#8211; Attraktivität ist ein Muss</title>
		<link>http://xamllab.net/guidesign/100-design-attraktivitat-ist-ein-muss-warum-design-mehr-ist-als-reine-dekoration/666</link>
		<comments>http://xamllab.net/guidesign/100-design-attraktivitat-ist-ein-muss-warum-design-mehr-ist-als-reine-dekoration/666#comments</comments>
		<pubDate>Fri, 09 Dec 2011 11:35:23 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[GUI&Design]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=666</guid>
		<description><![CDATA[Speaker: Thomas Biedermann Warum Design mehr ist als reine Dekoration &#8220;Form follows function&#8221; Design wird nach der Funktion gemacht, leider wird dies oft herangezogen um das Design zu beschneiden. Auch Dekoration und Aussehen ist eine Funktion. Als Beispiel wird eine Bank gezeigt, die mit aufwendiger Fassadengestaltung einen gewissen Reichtum repräsentieren will. Es werden 2 Forderungen [...]]]></description>
			<content:encoded><![CDATA[<div>Speaker: Thomas Biedermann</div>
<p><em>Warum Design mehr ist als reine Dekoration</em></p>
<div><strong>&#8220;Form follows function&#8221;</strong><br />
Design wird nach der Funktion gemacht, leider wird dies oft herangezogen um das Design zu beschneiden. Auch Dekoration und Aussehen ist eine Funktion. Als Beispiel wird eine Bank gezeigt, die mit aufwendiger Fassadengestaltung einen gewissen Reichtum repräsentieren will.</p>
<p>Es werden 2 Forderungen abgeleitet:<br />
1. Schönheit resultiert aus der reinen Funktion<br />
2. Ästhetische Überlegungen kommen nach der Funktion</p></div>
<div>Dies ist so nicht ganz richtig. Steve Jobs zeigte, dass auch Design eine wichtige Funktion sein kann die emotionale Wirkungen hervorruft und emotional verbindet auch wenn die Funktion sich von anderen Produkten nicht sonderlich unterscheidet.<br />
Für Designer ist es so, dass es besser ist länger Zeit zum entwickeln zu haben. Zeit und Geld für Design muss man sich oft erkämpfen, aber es lohnt sich.</div>
<div>
<p><em>Tipp für eine Seite: wayback.com hier kann man eine Zeitreise durch das Design von Webseiten machen.</em></p>
<p>Der zweite große Punkt dreht sich um Funktion und Farbe<br />
Ein Beispiel war eine rot gefärbte Anzeige mit der Nachricht: Der Vorgang war erfolgreich.<br />
Es ist schnell aufgefallen, dass die Erwartungshaltung bei einer roten Anzeige ein Fehler ist.</p>
<p>Zu User Interfaces und der Realität wird erklärt warum man einen Button besser als solchen wahr nimmt wenn er einen Schatten hat. Daenn damit wird ein Abstand nach hinten assoziiert und man weiß intuitiv : &#8220;Das kann ich noch nach Hinten drücken.&#8221;<br />
Der Mensch hat ein sehr gutes Gefühl für Realität, dies muss auch der Entwickler beachten.</p>
<p><strong>Schönheit spielt eine Wichtige Rolle .. Warum?</strong></p>
<p>Weil wir schönen Menschen vertrauen und verzeihen.<br />
Es gibt eine Studie die besagt, dass sich Schönheit eines Menschen Auswirkungen auf Erfolg und Karriere hat.</p>
<p>Don Norman wird empfohlen (einfach mal ein paar Youtube Videos von/mit Ihm ansehen). Als Beispiel das nicht nur Funktion zählt nennt er ein Atomkraftwerk mit zwei identischen Hebeln, einen der die Kühlung abschaltet und einem der den Generator in Betrieb setzt. Gelößt wurde das Problem im Pub ..  Es wird eine Zitronenpresse gezeigt, die teuer ist aber gut aussieht.. Hier hat sich das Design von der eigentlichen Funktion entkoppelt, da die Presse nur noch als Designobjekt gekauft wird (für über 50 Euro). Es kommt der Hinweis auf eine Studie der Standford Universität die besagt: Das wichtigste Bewertungskriterium für eine Website ist das Design. Funktionalität kann noch so wichtig für den Kontext der Seite sein, es wird nie wichtiger als das Design.</p>
<p><strong>Nun kommt &#8220;Fit &amp; Finish&#8221;.</strong></p>
<p>Der Vista UX style Guide besagt: ein visueller Fehler der allen Nutzern auffällt ist schlimmer als ein gelegentlicher Absturz.  Weiteres Beispiel: Bei einem Experiment mit zwei gleichen Systemen wurde das als besser funktionierend bewertet bei dem nur die Bedienelemente strukturiert angeordnet sind. Schönen Dingen verzeihen wir viel leichter einen Fehler als hässlichen Produkten.</p>
<p><strong>Metro again.</strong></p>
<p>In einer Welt in der alle mit Glitzer, Glanz etc. arbeiten kann man sich mit den klaren Strukturen abheben. Allerdings bringen die einfacheren Formen und klaren Strukturen keine Einsparung an Arbeit mit sich, der Fokus verschiebt sich nur.</p>
<p>Websitetipp: <a href="http://mobile-patterns.com">mobile-patterns.com</a><br />
Eine Betrachtung von sehr vielen Interfaces.</p>
<p>Es wird ein sehr schönes Video gezeigt, den Link gibt&#8217;s dann in den Slides.<br />
Thomas berichtet von sehr positiven Effekten wenn sich Entwickler und Designer zusammensetzen.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/guidesign/100-design-attraktivitat-ist-ein-muss-warum-design-mehr-ist-als-reine-dekoration/666/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session: Pixel Präzision trotz Vektoren</title>
		<link>http://xamllab.net/guidesign/pixel-prazision-trotz-vektoren/670</link>
		<comments>http://xamllab.net/guidesign/pixel-prazision-trotz-vektoren/670#comments</comments>
		<pubDate>Fri, 09 Dec 2011 10:10:03 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[GUI&Design]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=670</guid>
		<description><![CDATA[Speaker: Thomas Immich (Certigrade) Los gehts mit Resolution indipendence und einer kurzen Erklärung zum Mythos: Pixelanzahl vs. Auflösung. Kurze Übersicht zu Bezeichnungen wie VGA, Full HD etc. und Displaygrößen mit Diagonale, Höhe und Breite.  Jetzt kommt ein Diskurs wie Pixelanzahl und Displaygröße Zusammenhängen &#8211; es gibt z.B. Smartphones die fast Desktoppixelzahlen besitzen aber eine Diagonale von [...]]]></description>
			<content:encoded><![CDATA[<p>Speaker: Thomas Immich (Certigrade)</p>
<p>Los gehts mit Resolution indipendence und einer kurzen Erklärung zum Mythos: Pixelanzahl vs. Auflösung. Kurze Übersicht zu Bezeichnungen wie VGA, Full HD etc. und Displaygrößen mit Diagonale, Höhe und Breite.  Jetzt kommt ein Diskurs wie Pixelanzahl und Displaygröße Zusammenhängen &#8211; es gibt z.B. Smartphones die fast Desktoppixelzahlen besitzen aber eine Diagonale von nur 3,5 Zoll.</p>
</div>
<div><strong>Was ist auflösungsunabhängiges Design?</strong></p>
<p>Es folgt gleich noch ein Mythos, 72 DPI vs. 96 PPI.<br />
Die beiden Zahlen kommen aus der Vergangenheit und nun geht&#8217;s los mit WPF. Ein Zoll entspricht jetzt nicht wahr 96 Pixeln sondern 96 Device Independent Units.</p>
<p>Nach einigen Erklärungen zu Icons und den Problemen beim Skalieren folgt eine kleine Deep-Zoom Silverlight Demo. Das Problem der Rasterung besteht laut Aussage nur bei geringen Pixeldichten, da das menschliche Auge die Unterschiede nicht mehr erkennen kann. WPF achtet z.B. bei PNG auf die in den Metadaten des Bildes eingestellten PPI Werte, auch dazu eine Demo mit Blend und einigen PNG’s. Trotz richtig eingestellter Werte wirkt das Bild unscharf, was sich am Ende mit der Eigenschaft UseLayoutRounding beheben lässt. UseLayoutRounding wird gegenüber SnapToDevice Pixel als zu bevorzugen genannt, da es auch in Silverlight verfügbar ist. Bei Animationen sollte eine ausgedehnte Perfromanceanalyse nicht ausgelassen werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/guidesign/pixel-prazision-trotz-vektoren/670/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session : Windows 8 UI &#8211; Bedienkonzept</title>
		<link>http://xamllab.net/guidesign/windows-8-ui-bedienkonzept/650</link>
		<comments>http://xamllab.net/guidesign/windows-8-ui-bedienkonzept/650#comments</comments>
		<pubDate>Fri, 09 Dec 2011 09:23:26 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[GUI&Design]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=650</guid>
		<description><![CDATA[Speaker: Hannes Preishuber (ppedv) Nach einem kurzen Bericht um die im Vorfeld entstandenen Gerüchte über die Build 2011 in Anaheim /USA stellt Hannes Preishuber kurz das Tablet vor, dass alle Teilnehmer bekommen haben mit einer installierten Windows 8 Preview. Eine Gegenüberstellung von Vor- und Nachteilen, Nutzen als auch Gefahren eines Tablets, mit kleinen Seitenhieben auf [...]]]></description>
			<content:encoded><![CDATA[<p><em>Speaker: Hannes Preishuber (ppedv)</em></p>
<p>Nach einem kurzen Bericht um die im Vorfeld entstandenen Gerüchte über die Build 2011 in Anaheim /USA stellt Hannes Preishuber kurz das Tablet vor, dass alle Teilnehmer bekommen haben mit einer installierten Windows 8 Preview. Eine Gegenüberstellung von Vor- und Nachteilen, Nutzen als auch Gefahren eines Tablets, mit kleinen Seitenhieben auf ein ungenanntes Tabletprodukt, werden kurz erläutert.<br />
<br />
<strong>Was Windows 8 ausmacht bzw. ausmachen soll:</strong><br />
Bootdauer, ARM Support, Hyper V, RemoteFX, Windows ToGo, Ribbon, ISO VHD Mountern, NET 4.5, Metro UI (HTML XAML), Ressetting, Secured boot UEFI, WinRT (C++, C#, VB.Net, Javascript).<br />
Die Ribbonbar ist dran wie man sie bereits aus Office 2007 oder 2010 kennt. Leider wird diese systemweit noch nicht konsequent umgesetzt und macht so zum Teil eine Touchtaugliche Bedienung kompliziert oder sogar unmöglich.<br />
<br />
<strong>Metro ist Tablet!</strong></p>
<p>Der Daumen soll grundlegende Funktionen auslösen. Das erinnert sofort  an die Controlersteuerung diverser Gamingkonsolen. Wie auch das neue Startmenü oder der Wechsel zwischen den Apps in dem von links oder rechts in den Screen gewischt wird und der Splitscreenmodus der Apps. Multitasking bleibt also. Und nicht wie Microsoft vorgeworfen wurde, man hätte Multitasking abgeschafft.  Die Gestenbedienung weicht  allerdings leicht von der Windows-Phonebedienung ab.<br />
Das &#8220;wegwischen&#8221; der aktuellen App verstetzt diese in einen Suspendmodus, dass heisst diese wird vollständig deaktiviert, verbraucht also in diesem Zustand keinerlei Systemressourcen.<br />
<br />
Das Controlcenter beinhaltet grundlegende Einstellungsmöglichkeiten und ist sehr übersichtlich geworden. Hier wird erstaunlicherweise vertikal gescrollt, entgegen den eigenen Vorgaben das horizontal &#8220;gewischt&#8221; werden soll.<br />
<br />
<strong> Windows 8 UI &#8211; Wrap up:</strong></p>
<ul>
<li>10 Jahre bis Windows-7  XP überholt</li>
<li>Netbook &#8220;Boom&#8221;</li>
<li>HTML5 Marktbedeutung</li>
<li>Nicht einmal Beta</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/guidesign/windows-8-ui-bedienkonzept/650/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session : Kinect &amp; Surface</title>
		<link>http://xamllab.net/allgemein/session-kinect-surface/645</link>
		<comments>http://xamllab.net/allgemein/session-kinect-surface/645#comments</comments>
		<pubDate>Thu, 08 Dec 2011 14:39:03 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=645</guid>
		<description><![CDATA[Sprecher: Juliane Steinhauf Erweiterte Multitouch Interaktion Ziel ist die Erweiterung des Interaktionsraumes doch entstehen dabei auch Probleme wie Interferenzen, ungenügender Winkel und Abstand und auch der Umbau selbst war nicht möglich. Aber auch an die Lösungen wurde schon gedacht Sofwareseitiges Filtern der Blobgröße, und Einsatz einer Linse für Kinect. Es gibt aber auch Vorschläge für [...]]]></description>
			<content:encoded><![CDATA[<p><em>Sprecher:<br />
Juliane Steinhauf</em></p>
<p><strong>Erweiterte Multitouch Interaktion</strong></p>
<p>Ziel ist die Erweiterung des Interaktionsraumes doch entstehen dabei auch Probleme wie Interferenzen, ungenügender Winkel und Abstand und auch der Umbau selbst war nicht möglich. Aber auch an die Lösungen wurde schon gedacht Sofwareseitiges Filtern der Blobgröße, und  Einsatz einer Linse für Kinect.</p>
<p>Es gibt aber auch Vorschläge für Alternativen wie Kinect &amp; Kapazitatives Display, Surface und 3D.</p>
<p>Anwendungsfälle wären Bewegungstraining &#8211; > Health, Steuerung im 3D Raum, Betrachten von Gebäuden, sowie Erzeugung von Musik und Spielen eines Physikspiels im 3D Raum.</p>
<p>Die Plattformen die dafür primär möglich sind ein Surface (Steuerung des Interaktionsraumes des Partners) und die Kinect (Bewegen im Interaktionsraumes).</p>
<p><strong>Begonnene Anwendungen</strong></p>
<p>Surkilab ein Labyrinthspiel für 2 Spieler, Die Spieler können zusammen &#8211; oder gegeneinander arbeiten. Im Vordergrund stehen Spielspaß und das Trainieren der Geschicklichkeit. Das Ziel wird gekennzeichnet. Man kann auch gegen den zweiten Spieler arbeiten und Rauchbomben oder ähnliches auf das Labyrinth werfen. Das Spiel hat eine Ego-Perspektive und man bewegt sich konstant vorwärts.</p>
<p>Punchinello ist ein virtiuelles Kasperletheater in dem es ein bis zwei Regisseure gibt. Die Spieler können einen Avatar wählen sowie die Sounds und Requisiten. Sie können das Geschehen beeinflussen und bewegen sich in Echtzeit.</p>
<p>Bodykinector (ausschließlich für die Kinect) basiert auf der Szenarie von Virtuellen Welten wie Second Life. Die Steuerung ist intuitiv. Es gibt verschiedene Modi wie gehen, laufen, fliegen und Gespräche halten in denen ich mich bewegen kann. Noch gibt es auch ein Manko, denn die Avatare sehen alle gleich aus und das Spiel reagiert zeitversetzt.</p>
<p>Vismo ist eine Frühförderung der Handmotorik bei Kindern mit dem Microsoft Surface.<br />
Die Anforderungen daran waren unter anderem das dadurch die Feinmotorik bei Kindern verbessert wird, diese entwickelt sich vom 1. bis 5. Lebensjahr besonders stark. Beim Malen entstehen erst großflächige Bilder die vom Arm ausgeführt werden, später werden kleinere Bewegungen mit dem Handgelenk ausgeführt, sowie senkrechte Striche und Symbole, also sollte es möglich sein verschiedene Spiele darin zu verwenden. Das ist in dieser Anwendung alles berücksichtigt und so gut wie möglich umgesetzt wurden.</p>
<p>Myfruit ist ein Spiel in dem man seine eigenen Smoothies entwerfen kann. Es soll Interaktion und Kommunikation zwischen den Spielern möglich sein. Aber auch mit dem Glas sollen mehrere Interaktionen möglich sein.</p>
<p>Neophony und Optics sind zwei weitere Anwendungen die man leider nicht näher erklärt hat doch sie finden Videos dazu auf Youtube.</p>
<p>Die hier aufgeführten Anwendungen werden weiter entwickelt, auch für Surface 2, es gibt bereits Verhandlungen mit verschiedenen Zielgruppen.</p>
<p>Fazit ist also das Kinect und Surface in Zukunft mehr Zusammspiel haben werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/allgemein/session-kinect-surface/645/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session : Windows  Phone UI Reloaded</title>
		<link>http://xamllab.net/allgemein/session-windows-phone-ui-reloaded/643</link>
		<comments>http://xamllab.net/allgemein/session-windows-phone-ui-reloaded/643#comments</comments>
		<pubDate>Thu, 08 Dec 2011 13:47:56 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=643</guid>
		<description><![CDATA[UX Qualitätsmerkmale Metro Branding Refine Background / Context Viele Phone Applikationen sind nicht gut gestaltet. Denn Metro hat die Vorgabe das beim designen auch überlegt werden muss. Folgende Qualitätskriterien müssen bedacht werden : desirable = begehrenswert, usable = nützlich, useful = nutzbar Alignment Desweiteren ist es sehr wichtig beim Metrodesign auf das Alignment zu achten [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UX Qualitätsmerkmale Metro</strong></p>
<p>Branding</p>
<p><em>Refine<br />
Background / Context</em></p>
<p>Viele Phone Applikationen sind nicht gut gestaltet. Denn Metro hat die Vorgabe das beim designen auch überlegt werden muss.<br />
Folgende Qualitätskriterien müssen bedacht werden :<br />
desirable = begehrenswert, usable = nützlich, useful = nutzbar</p>
<p><em>Alignment</em></p>
<p>Desweiteren ist es sehr wichtig beim Metrodesign auf das Alignment zu achten da sonst der Inhalt wirkt als würde er irgendwie über den Bildschirm fliegen ohne festes Layout. </p>
<p><em>Label &#038; Content</em></p>
<p>Auch das Label und den Content sollte klar getrennt werden damit kein Chaos entsteht. </p>
<p><em>Spacing</em></p>
<p>Gleiches Spacing ist für die Ordnung genauso wichtig damit die Unterteilung nicht unlogisch wirkt. Denn es sollte einfach und verständlich sein.</p>
<p><em>Grouping</em></p>
<p>Beim Grouping ist weniger mehr, zuviel überlädt den Screen und entfernt sich mehr und mehr von der Benutzerfreundlichkeit. </p>
<p><em>Menu</em></p>
<p>Das Menu sollte Typografie basierend sein, keine Schmuckelemente. Höhstens einfache Icons die die Funktion der Typografie noch unterstreichen.</p>
<p><em>Animationen</em></p>
<p>Es sollten nur  Sinnvolle Animationen verwendet werden sonst passiert es schnell das die Anwendung chaotisch und überladen wirkt.  </p>
<p><em>Panorama</em></p>
<p>Beim Panorama sollte darauf geachtet werden das horizontal gescrollt wir und nicht vertikal.</p>
<p><em>Dialog</em></p>
<p>Achten Sie hier auf klare und touchbare Buttons.</p>
<p><em>Icons &#038; Tiles &#038; Iconesque Tiles</em> </p>
<p>Achten Sie auf den Mehrwert! Es sollte auf den Icons erkennbar sein was ein Berühren dessen auslösen wird.</p>
<p><em>Buttons &#8211; Immer handlungsorientiert</em></p>
<p>Mit Buttons bitte eher sparsam sein da diese nicht dem entsprechen was Metro erreichen will. Gutes, klares Design und Benutzerfreundlichkeit. </p>
<p>Closebuttons &#8211; Ein Windows Phone braucht keine Closebuttons das wird durch den  Backbutton auf dem Phone bereits gelöst.</p>
<p>Backbuttons &#8211; In der Anwendung sollten keine Backbuttons verwendet werden da auf der Hardware schon ein Backbutton existiert, wietere wären überflüssig.</p>
<p><em>Branding &#8211; Markentreue</em></p>
<p>Kundenbindung ist wichtig. Die Marke als Wort ist bekannt, wie zum Beispiel Tempo, Zewa, UHU, Tesa und ähnliches sowie auch die Bildmarke, wo ein Text und ein visuelles Element zusammen fungieren. Die Marken in der Applikation sind wichtig, denn Andwendungen ohne Branding verunsichern den Kunden. Sie sollten also visuell auffallend platziert werden.</p>
<p><em>Entscheidungen</em></p>
<p>In wie weit entferne ich mich meiner Marke und dem Metrodesign beim erstellen der Applikation. Die Wertigkeit einer Marke spielt auch sehr oft eine Rolle sowie die Mechanik der Marke innerhalb der App.</p>
<p><em>Es folgt ein kleines Beispiel der Erstellung einer Metrostyle App &#8230;</em></p>
<p><strong>Wichtige Elemente sind :</strong></p>
<p>Schrift = Schriftart, Schriftstil, Schriftfarbe<br />
Grafiken<br />
Logos<br />
Bilder<br />
Farben = Hintergrund, Fokusfarben, Linkfarben<br />
Wörter / Copy<br />
Funktionen</p>
<p><strong>Cross Device Strategy &#8211; the future</strong></p>
<p>Metro ist eine Designsprache jenseits von Geräteklassen. Hardware, Software und Services vereint in einer großartigen Experienence. </p>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/allgemein/session-windows-phone-ui-reloaded/643/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session: Custom Controls &#8211; Fluch oder Segen</title>
		<link>http://xamllab.net/guidesign/session-custom-controls-fluch-oder-segen/632</link>
		<comments>http://xamllab.net/guidesign/session-custom-controls-fluch-oder-segen/632#comments</comments>
		<pubDate>Thu, 08 Dec 2011 13:22:56 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[GUI&Design]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=632</guid>
		<description><![CDATA[Speaker: Björn Busch (Ergosign) David Thömmes (Ergosign) Design-Sicht Da es unterschiedliche Standpunkte und Ausprägungsgrade gibt, kann man sich streiten. Wo fängt die Custom-Control an? Dort wo neue gestylte oder ungestyle Standard-Controls zusammen kommen, redet man von Custom Controls. Aus Usability-Sicht kann man mit einer Custom Control Mehrwert bieten durch Punkte wie Prominenz, Verständlichkeit, Feedback-Verhalten und [...]]]></description>
			<content:encoded><![CDATA[<p><em><br />
<strong>Speaker:</strong><br />
Björn Busch (Ergosign)<br />
David Thömmes (Ergosign)</em></p>
<p><strong>Design-Sicht</strong></p>
<p>Da es unterschiedliche Standpunkte und Ausprägungsgrade gibt, kann man sich streiten.</p>
<p><strong>Wo fängt die Custom-Control an? </strong></p>
<p>Dort wo neue gestylte oder ungestyle Standard-Controls zusammen kommen, redet man von Custom Controls. </p>
<p>Aus Usability-Sicht kann man mit einer Custom Control Mehrwert bieten durch Punkte wie Prominenz, Verständlichkeit, Feedback-Verhalten und Bedarfszentrierung.<br />
Es gibt historisch gesehen eine historische Angst vor Standard-Controls, weil hier kein Standard-Verhalten abgebildet wird. Beim Design ist daher eine besondere Sorgfalt wichtig, da alle Zustände, insbesondere Ungereimtheiten und Besonderheiten dieser Control abgebildet werden sollten. Das Schöne bei WPF ist, dass sowas ohne großen Aufwand gemacht werden kann. </p>
<p>Wenn eine Verbesserung der Usability und eine Kombination von aktiven und passiven Controls passiert, sollte eine Custom Control erstellt werden. Es sollten signifikante Verbesserungen stattfinden.</p>
<p>Vorsicht sollte man walten lassen bei:<br />
Kombination von mehreren aktiven Kontrols<br />
Visueller und kognitiver Überforderung des Anwenders<br />
Beim Erfinden komplett neuer Interaktionen<br />
Bei Dingen die mit &#8220;normalen&#8221; Mitteln genauso gut gehen.</p>
<p>Beispiele für Custom Controls sind geschickte Pie-Menus wie aus Games oder ausgefeilte mehrschichtige Tabmenus. </p>
<p><strong>Entwicklungssicht</strong></p>
<p>Grundsätzliche Struktur:<br />
Style, Template, Template Binding<br />
Ein Custom Control fängt da an, wo von der Basisklasse zusätzliche Funktionen erweitert werden.</p>
<p>Eine User Control ist:<br />
Einfach zu erstellen, hat Code behind, neue Stukturen und Elementreferenzierung.  </p>
<p>Eine Custom Control ist:<br />
Ableitung von einer Klasse, Styling und Templating-Möglicheiten, Visuellen Aufbau mit ControlTemplates und Default-Styling sind möglich.</p>
<p><em>Tipp: Fortgeschrittene sollten &#8220;defensiv&#8221; programmieren.</em></p>
<p><strong>Vergleich</strong><br />
User Control: Xaml + Code behind, Harte Verdrahtung, Hard, geringerer Aufwand, schlechter Reuse<br />
Custom Control: Klasse + Style + Technik, getrennte Logik, flexibles Styling, etwas aufwändiger, guter Reuse</p>
<p><em>Tipp: Bitte keine Custom Controls auf Basis eines User Controls</em></p>
<p><em>Tipp: Custom Controls in separatem Projekt erstellen.</em></p>
<p>Zum Beleg der Behauptung zeigt uns David komplett die vorbereitete Solution. </p>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/guidesign/session-custom-controls-fluch-oder-segen/632/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Session: Gängige Fehler bei WPF-UIs</title>
		<link>http://xamllab.net/guidesign/628/628</link>
		<comments>http://xamllab.net/guidesign/628/628#comments</comments>
		<pubDate>Thu, 08 Dec 2011 12:00:33 +0000</pubDate>
		<dc:creator>Peggy</dc:creator>
				<category><![CDATA[GUI&Design]]></category>

		<guid isPermaLink="false">http://xamllab.net/?p=628</guid>
		<description><![CDATA[Speaker: Daniel Greitens (Maximago) Gängige Fehler bei der Implementierung von User Interfaces mit WPF und Silverlight vermeiden. Daniel Greitens beginnt mit einer kurzen Einleitung woher er kommt (Maximago) und was er macht (Big Boss : ) ). Er beschreibt zwei klassische Rollen: - Nummer eins, eine Firma erkennt es wird ein Spezialist benötigt und fragt [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>Speaker: Daniel Greitens (Maximago)</em></strong></p>
<p>Gängige Fehler bei der Implementierung von User Interfaces mit WPF und Silverlight vermeiden.<br />
Daniel Greitens beginnt mit einer kurzen Einleitung woher er kommt (Maximago) und was er macht (Big Boss : ) ).<br />
Er beschreibt zwei klassische Rollen: </p>
<li>
<ol>- Nummer eins, eine Firma erkennt es wird ein Spezialist benötigt und fragt an. </ol>
<ol>- Die zweite Gruppe sind Frimen die einen Retter in der Not benötigen weil sie dachten WPF ist ja auch wie Win Forms. </ol>
</li>
<p>Ab jetzt folgt nur eine ganz kurze Übersicht zu den genannten Fehlern mit einem Beispiel und auch einem kurzen Hinweis zu einer möglichen Lösung.</p>
<p><strong>Fehler Nr. 1- Mangelnde strategische Unterstützung: </strong><br />
 Beispiel:</p>
<li>- Wir haben eine Firma mit 80 Mitarbeitern aber zwei Auszubildende setzen wir an das Projekt um MVVM zu implementieren.<br />
- Es gibt Codingguidelines aber nicht für XAML. </li>
<p><strong>Lösung: &#8211; Mitarbeiter schulen (ganzheitlicher Ansatz)</strong></p>
<p><strong>Fehler Nr. 2 &#8211; Keine klare Schichtentrennung</strong><br />
Beispiel: </p>
<li>- Code Behind verwenden, erzeugen von Elementen im Code, harte Refferenzen aus dem Code auf XAML-Elemente</li>
<p><strong>Lösung: </p>
<li>- MVVM bei allen Projekten ohne wenn und aber. Keine Ausnahmen zulassen.<br />
- Code Behind gehört grundsätzlich leer!<br />
- Verbindung UI mit Daten über Binding<br />
- Data Templates verwenden</li>
<p></strong></p>
<p><strong>Fehler Nr. 3 &#8211; Design-Atttribute in Views verstreut</strong><br />
Beispiel:</p>
<li>- Implizite Größen- , Farbe-, Ausrichtungs-,.. Angaben in View verstreut<br />
- verwenden von impliziten Styles</li>
<p><strong>Lösung:</p>
<li>- verschiedene Ausprägungen eines Controls als Custom-Control mit impliziten Styles oder Konfigurationseigenschaften des Controls</li>
<p></strong></p>
<p><strong>Fehler Nr. 4 &#8211; Jeder baut View wie es ihm passt</strong><br />
Beispiel: </p>
<li>- Views werden trotz gleichem Aufbau unterschiedlich implementiert</li>
<p><strong>Fehler Nr. 5 &#8211; Keine Koppelung von Interaktionselementen</strong><br />
Beispiel: </p>
<li>- User Controls mit vielen harten Referenzen von Code-Behind zu XAML<br />
- Gezeigt wird ein Colorpicker von Codeplex </li>
<p><strong>Lösung: </p>
<li>- gut implementierte Custom Contorls<br />
- Vererbung nutzen<br />
- Anpassung an Datacontext per Converter</li>
<p></strong></p>
<p><strong>Fehler Nr. 6 &#8211; Unvorteilhafte Ressourcen-Strukturen</strong><br />
Beispiel: </p>
<li>- zu große Resource-Dictionaries und die damit verbundenen Redundanzen</li>
<p><strong>Lösung: </p>
<li>- Resource-Dictionaries klein halten<br />
- UI-Konfiguration isolieren<br />
- Zusammengehörige Teile isolieren<br />
- Wiederverwendbarkeit wo immer möglich (z.B. FocusVisualStyle)</li>
<p></strong></p>
<p><strong>Fehler Nr. 7 &#8211; UI-Bestandteile nicht isoliert</strong><br />
Bsp: </p>
<li>- UI-Bestandteile (Controls, Styles,Templates,usw.) mit Haupt-Anwendung verzahnt<br />
- Technische Abhängigkeiten als Störfaktoren<br />
- Verunreinigung durch Design-Time Maßnahmen (z.B. Sample Data)</li>
<p><strong>Lösung:</p>
<li>- Eigene Projekte für UI-Bestandteile<br />
- tiefgreifende Abhängigkeiten außen vor lassen<br />
- Sample Projekte mit Beispielviews zum &#8220;Spielen&#8221;</li>
<p></strong></p>
<p><strong>Fehler Nr. 8 &#8211; Keine &#8220;Blendability&#8221;</strong><br />
Bsp: </p>
<li>- Komponenten in Blend nicht darstellbar/bearbeitbar (wegen Code Behind etc.)<br />
- überhaupt kein Blend Einsatz</li>
<p><em>Nette Frage: Wer arbeitet nicht mit Blend?<br />
Ein paar Teilnehmer melden sich. </p>
<p>Antwort(geflüstert): Ihr seid zum scheitern verurteilt)</em></p>
<p><strong>Lösung:<br />
Blend als Grundvoraussetzung ansehen.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xamllab.net/guidesign/628/628/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

