<?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>David Taing - In Fine - Le Blog</title>
	<atom:link href="https://blog.infine.com/author/david-taing-pro/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.infine.com</link>
	<description>Le blog des technos de demain !</description>
	<lastBuildDate>Tue, 21 Jun 2011 12:54:22 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.7</generator>

<image>
	<url>https://blog.infine.com/wp-content/uploads/2021/03/cropped-vignette-32x32.png</url>
	<title>David Taing - In Fine - Le Blog</title>
	<link>https://blog.infine.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kinect for Windows SDK: Released!</title>
		<link>https://blog.infine.com/kinect-for-windows-sdk-released-947?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kinect-for-windows-sdk-released</link>
					<comments>https://blog.infine.com/kinect-for-windows-sdk-released-947#respond</comments>
		
		<dc:creator><![CDATA[David Taing]]></dc:creator>
		<pubDate>Tue, 21 Jun 2011 12:52:48 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Kinect]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[SDK]]></category>
		<guid isPermaLink="false">https://blog.infine.com/?p=947</guid>

					<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">2</span> <span class="rt-label rt-postfix">min.</span></span> Dévoilé durant le MIX11 qui s'est déroulé à Las Vegas en avril, c'est finalement à la date du 16 juin 2011 que Microsoft a décidé de mettre à disposition le kit de développement (SDK) Kinect pour Windows. Les développeurs en herbe ou passionnés peuvent désormais se donner à coeur joie dans la conception d'applications exploitant les fonctionnalités interactives de la machine. Espérons voir fleurir rapidement sur la toile bon nombre d'outils qui sauront tirer partie de ce petit bijou technologique !</p>
<p>The post <a href="https://blog.infine.com/kinect-for-windows-sdk-released-947">Kinect for Windows SDK: Released!</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">2</span> <span class="rt-label rt-postfix">min.</span></span><p>Dévoilé durant le MIX11 qui s&#8217;est déroulé à Las Vegas en avril dernier, c&#8217;est finalement à la date du 16 juin 2011 que Microsoft a décidé de mettre à disposition le kit de développement (SDK) Kinect pour Windows. Les développeurs en herbe ou passionnés peuvent désormais se donner à coeur joie dans la conception d&#8217;applications exploitant les fonctionnalités interactives de la machine. Espérons voir fleurir rapidement sur la toile bon nombre d&#8217;outils qui sauront tirer partie de ce petit bijou technologique !</p>
<figure id="attachment_952" aria-describedby="caption-attachment-952" style="width: 300px" class="wp-caption aligncenter"><a href="https://blog.infine.com/wp-content/uploads/2011/06/SDK-Kinect-windows.jpg" class="fancyboxgroup" rel="gallery-947"><img fetchpriority="high" decoding="async" class="size-full wp-image-952" src="https://blog.infine.com/wp-content/uploads/2011/06/SDK-Kinect-windows.jpg" alt="Kinect pour Windows" width="300" height="245" /></a><figcaption id="caption-attachment-952" class="wp-caption-text">Sortie du SDK Kinect pour Windows</figcaption></figure>
<p>Initialement dénommé &#8220;Project Natal&#8221;, le Kinect possède désormais une place d&#8217;honneur dans le World Guiness Book comme étant l'&#8221;accessoire High-Tech le plus vendu dans un court laps de temps&#8221; (dixit. World Guiness Book). Initialement conçu pour la console de Microsoft, la Xbox 360, le Kinect s&#8217;est voulu être une nouvelle façon de jouer aux jeux vidéos sans manettes appelé également <em>Motion Gaming</em>. Il a rapidement réussi à attiser la sympathie du public avec son concept de commande à la fois ludique et innovante et offrant alors de nouvelles possibilités en terme d&#8217;intéractions. Disposant de deux caméras, un capteur de champ par infra-rouge et d&#8217;un microphone, le Kinect fonctionne par reconnaissance spatiale d&#8217;un corps en mouvement.</p>
<p>Mais les curieux n&#8217;avaient pas attendu cette sortie pour mettre au point un pilote compatible Windows pour faire leurs premiers essais. C&#8217;est ainsi que le kit <a title="CL-NUI Platform" href="http://codelaboratories.com/nui">CL-NUI Platform</a> a sévi sur internet et proposait déjà de prendre le contrôle sur les capteurs vidéos de l&#8217;appareil. On a pu voir apparaître quelques démos techniques (des exemples sur <a title="Kinect Hack" href="http://kinecthacks.net/">http://kinecthacks.net/</a>) prenant en compte la détection de mouvements qui laisse présager d&#8217;autres innovations dans la conception d&#8217;interfaces interractives différentes du mythique combo clavier/souris ou plus récemment écran tactile : robotique, réalité augmenté, &#8230; Minority Report, ça vous rappelle des souvenirs ?</p>
<p><span id="more-947"></span></p>
<p><strong>Prérequis:</strong><br />
<strong> Matériel</strong></p>
<ul>
<li>Dispositif Kinect pour Xbox 360</li>
<li>PC avec processeur dual-core, 2.66-GHz ou plus</li>
<li>Windows 7–carte graphique compatible DirectX® 9.0c</li>
<li>2-Go RAM (4-Go RAM recommandé)</li>
</ul>
<p><strong>Logiciel</strong></p>
<ul>
<li>Windows 7 (x86 ou x64)</li>
<li><a href="http://www.microsoft.com/express/downloads/">Visual Studio 2010 Express</a> (ou autre édition 2010)</li>
<li><a href="http://msdn.microsoft.com/en-us/netframework/aa569263">Microsoft .NET Framework 4.0</a></li>
</ul>
<p><strong>Et pour bien commencer&#8230;</strong></p>
<p><span style="text-decoration: underline">En C#</span></p>
<p>Avec votre Visual Studio préféré, ajouter la référence &#8220;Microsoft.Research.Kinect&#8221; depuis la GAC (Global Assembly Cache) et appeler l&#8217;assembly dans vos codes projets.</p>
<p>Pour l&#8217;API NUI<br />
using Microsoft.Research.Kinect.Nui</p>
<p>Pour l&#8217;API Audio<br />
using Microsoft.Research.Kinect.Audio<br />
<span style="text-decoration: underline"> </span></p>
<p><span style="text-decoration: underline">En C++</span></p>
<ul>
<li>Ne pas compiler vos projets C++ avec w_char comme type de séparateur.</li>
<li>Pour utiliser l&#8217;API NUI, faire un include de MSR_NuiApi.h.<br />
Localisation : Program Files\Microsoft Research KinectSDK\inc</li>
<li>Pour utiliser l&#8217;API Kinect Audio, faire un include de MSRKinectAudio.h.<br />
Localisation : Program Files\Microsoft Research KinectSDK\inc</li>
<li>Faire le lien vers MSRKinectNUI.lib.<br />
Localisation :  Program Files\Microsoft Research KinectSDK\lib</li>
<li>Enfin, s&#8217;assurer que les dlls du SDK de Kinect sont présents dans le bon répertoire lors de l&#8217;exécution du projet.<br />
Localisation: Program Files\Microsoft Research KinectSD</li>
</ul>
<p>Pour plus de détails, je vous recommande de lire la documentation fournie avec le kit de développement (<a title="Documentation SDK Kinect" href="http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/docs/ProgrammingGuide_KinectSDK.pdf">disponible ici</a>) ainsi que de vous appuyer sur les différentes applications démos présentes dans le répertoire &#8220;Mes documents\Microsoft Research KinectSDK Samples&#8221;.</p>
<p>Have fun <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p style="text-align: center"><a title="Télécharger le SDK Kinect for Windows" href="http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/" target="_blank">Télécharger le SDK Kinect for Windows</a></p><p>The post <a href="https://blog.infine.com/kinect-for-windows-sdk-released-947">Kinect for Windows SDK: Released!</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.infine.com/kinect-for-windows-sdk-released-947/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WPF &#038; Silverlight : L’état de l’art au Microsoft TechDays 2011 (partie 2)</title>
		<link>https://blog.infine.com/wpf-silverlight-l%e2%80%99etat-de-l%e2%80%99art-au-microsoft-techdays-2011-partie-2-663?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wpf-silverlight-l%25e2%2580%2599etat-de-l%25e2%2580%2599art-au-microsoft-techdays-2011-partie-2</link>
					<comments>https://blog.infine.com/wpf-silverlight-l%e2%80%99etat-de-l%e2%80%99art-au-microsoft-techdays-2011-partie-2-663#respond</comments>
		
		<dc:creator><![CDATA[David Taing]]></dc:creator>
		<pubDate>Tue, 05 Apr 2011 15:00:56 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Conférence]]></category>
		<category><![CDATA[Blend SDK]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[IoC]]></category>
		<category><![CDATA[Microsoft Techdays 2011]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">https://blog.infine.com/?p=663</guid>

					<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">5</span> <span class="rt-label rt-postfix">min.</span></span> Accéder à la partie 1 Après une première partie qui s&#8217;est concentrée sur l&#8217;organisation d&#8217;un projet WPF/Silverlight, attaquons-nous à quelque chose de plus compliqué avec les techniques avancées&#8230; Silverlight et WPF en entreprise : retours d&#8217;expérience, bonnes pratiques et techniques avancées par Luc Vo Van (Microsoft Services) et Thomas Lebrun (Access-IT) Architecture type WPF et &#8230;</p>
<p>The post <a href="https://blog.infine.com/wpf-silverlight-l%e2%80%99etat-de-l%e2%80%99art-au-microsoft-techdays-2011-partie-2-663">WPF & Silverlight : L’état de l’art au Microsoft TechDays 2011 (partie 2)</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">5</span> <span class="rt-label rt-postfix">min.</span></span><p><a href="https://blog.infine.com/wpf-silverlight-letat-de-lart-au-microsoft-techdays-2011-partie-1-595">Accéder à la partie 1</a></p>
<p><em>Après une première partie qui s&#8217;est concentrée sur l&#8217;organisation d&#8217;un projet WPF/Silverlight, attaquons-nous à quelque chose de plus compliqué avec les techniques avancées&#8230;</em></p>
<h2>Silverlight et WPF en entreprise : retours d&#8217;expérience, bonnes pratiques et techniques avancées par Luc Vo Van (Microsoft Services) et Thomas Lebrun (Access-IT)</h2>
<h3><span style="text-decoration: underline">Architecture type</span></h3>
<p>WPF et Silverlight nous offrent la possibilité de développer des applications composites. Le pattern Models-Views-ViewModels <em>dit MVVM</em> est favorisé.<br />
<img decoding="async" class="aligncenter size-full wp-image-685" src="https://blog.infine.com/wp-content/uploads/2011/03/archi.jpg" alt="" width="720" height="428" srcset="https://blog.infine.com/wp-content/uploads/2011/03/archi.jpg 720w, https://blog.infine.com/wp-content/uploads/2011/03/archi-300x178.jpg 300w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<p><span id="more-663"></span></p>
<h3><span style="text-decoration: underline">Principes fondamentaux</span></h3>
<h4>Composition</h4>
<p>Développer une application par composition c’est créer une coquille vide à laquelle vient se greffer différents modules applicatifs  indépendants qui interagissent ensemble pour les besoins de notre application. Le principal intérêt de ce type d’application est qu’il est possible de paralléliser les développements. En effet, puisque chaque module est indépendant, il est simple de regrouper les équipes en unités fonctionnelles. Ces unités fournissent alors aux autres équipes l’interface de leur implémentation ce qui permet d’exécuter toute l’application même si le développement d’un module n’est pas totalement finalisé.</p>
<p>Avec ce mécanisme, il est alors très aisé d’activer ou de désactiver une fonctionnalité. La maintenabilité de l’application est également largement revue à la hausse grâce au découpage par modules. Chaque module étant cloisonné et hiérarchisé, l’évolution d’un module ne sera visible de l’extérieur qu’à travers son interface. L’impact sur les autres modules est donc fortement limité.</p>
<p>Généralement, on observe deux approches d’architecture de développement par composition</p>
<ul>
<li>Régions + Services, c’est le cas avec le <a href="http://compositewpf.codeplex.com/" target="_blank">Framework Prism</a></li>
<li>Services</li>
</ul>
<h4>Inversion of control</h4>
<p>Plus communément appelé Ioc, l’Inversion of Control est un pattern utilisé pour l’injection de dépendance. On l’appelle  également parfois <em>injection de code</em> car en favorisant un découplage fort entre l’interface (UI) et l’implémentation (UI logic), il facilite la substitution des composants par des mocks lorsqu&#8217;un module n&#8217;est pas encore disponible.</p>
<p>Diverses implémentations sont possibles via <a href="http://unity.codeplex.com/">Unity</a>, <a href="http://www.springframework.net/">Spring .NET</a>, <a href="http://ninject.org/">Ninject</a>…</p>
<h4>Commanding</h4>
<p>Le système de commande est un mécanisme qui permet l’exécution d’actions déclenchées par des contrôles de l’IHM. Par exemple, sur un contrôle de type Button, habituellement, les actions qui suivent le clic sur celui-ci sont codés dans l’événement Click du code behind. Avec le système de commande, on écrit les actions dans la commande et il suffit alors de préciser au bouton le nom de cette commande à exécuter.</p>
<p>Ce mécanisme permet donc de découpler la source de l’action car les actions ne dépendent plus de l’événement Click. Il y a donc peu d’adhérence à l’interface graphique. Autre point fort, une commande peut également être affectée à plusieurs contrôles à la fois.</p>
<p>L’objectif du système de commande est de découpler l’interface graphique du code appelé lors de l’exécution d’une action. Un événement <em>CanExecute</em> intervient dans la définition d’une règle d’activation de la commande. Cette règle, lorsqu’elle est satisfaite active alors les contrôles de l’IHM affectés par cette commande.</p>
<p>Exemple :</p>
<p>//Création de la commande MyCommand<br />
public static RoutedUICommand MyCommand { get; set; }</p>
<p>//Execute : Actions de la commande<br />
private void ShowMessage_Executed(object sender, ExecutedRoutedEventArgs e)<br />
{<br />
MessageBox.Show(&#8220;Hello world&#8221;);<br />
}</p>
<p>//CanExecute : Condition d&#8217;activation de la commande<br />
private void ShowMessage_CanExecute(object sender, CanExecuteRoutedEventArgs e)<br />
{<br />
if(condition)<br />
e.CanExecute = true;<br />
}</p>
<p>//Dans le construteur, on enregistre les événements Executed et CanExecute<br />
CommandBinding myBinding = new CommandBinding(MyCommand);<br />
myBinding.CanExecute += ShowMessage_CanExecute;<br />
myBinding.Executed += ShowMessage_Executed;<br />
CommandBindings.Add(myBinding);</p>
<p>MVVM :</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!-- Après avoir inscrit la commande MyCommand au ViewModel et enregistré dans le ViewModel dans le DataContext de la View, on affecte la commande par Binding--&gt;
&lt;Button x:Name=&quot;MyButton&quot; Command=&quot;{Binding MyCommand}&quot; /&gt;
</pre>
<p>Non MVVM :</p>
<p>//Dans le constructeur, on affecte au bouton MyButton la commande MyCommand<br />
myButton.Command = MyCommand;</p>
<h4>Messaging</h4>
<p>Par messaging, on entend l&#8217;implémentation d&#8217;un mécanisme permettant le dialogue entre les modules. Ce mécanisme, appelé Messenger, doit permettre aux modules de publier un événement et de notifier le ou les modules qui y sont abonnés. On parle alors de communication inter-ViewModels. Il est également possible de notifier un service du Shell par cette méthode pour par exemple faire appel au log, etc…</p>
<p><a href="https://blog.infine.com/wp-content/uploads/2011/03/messaging.jpg" class="fancyboxgroup" rel="gallery-663"><img decoding="async" class="aligncenter size-full wp-image-822" src="https://blog.infine.com/wp-content/uploads/2011/03/messaging.jpg" alt="" width="725" height="339" srcset="https://blog.infine.com/wp-content/uploads/2011/03/messaging.jpg 725w, https://blog.infine.com/wp-content/uploads/2011/03/messaging-300x140.jpg 300w" sizes="(max-width: 725px) 100vw, 725px" /></a></p>
<p>On distingue généralement les différents types d’implémentations suivantes :</p>
<ul>
<li>Event agregattor (<a href="http://compositewpf.codeplex.com/" target="_blank">Framework Prism</a>)</li>
<li>Messenger</li>
<li>Queue</li>
</ul>
<h4>Services du Shell</h4>
<p>Les services du Shell regroupent tous les composants qui permettent aux Views, Viewmodels et Controls de communiquer avec l’hôte. Ce sont les services transverses  tels que les Popups Messages, Ribbon Menu, Logging, Workspaces, etc …, et qui peuvent être utilisés à tout instant.</p>
<h3><span style="text-decoration: underline">Approches par patterns:</span></h3>
<p>Avec le pattern MVVM, nous avons vu qu’il existe une séparation forte entre le View et le ViewModel. Cette séparation permet 2 approches :</p>
<ul>
<li><strong>ViewModelFirst</strong> : Dans cette configuration, le ViewModel s’occupe de créer les différents Views et de définir les bindings associés.</li>
<li><strong>ViewFirst</strong> : Dans cette configuration, la View utilise le ViewModel comme ressource. Le binding est alors défini dans la vue. Ce pattern est celui qui est utilisé par le <a href="http://compositewpf.codeplex.com/" target="_blank">Framework Prism</a>.</li>
</ul>
<p>Pour des applications implémentant des formulaires, l’utilisation du <em>ViewState</em> permet de définir l’état d’un formulaire avec des changements d’états plus simples et plus légers. En effet, il suffit de ne créer qu’une seule View qui contient alors les différents états du formulaire. Introduit par Silverlight et désormais présent dans WPF 4.0, le ViewState ajoute également des animations de transitions issues du <a href="http://www.microsoft.com/downloads/fr-fr/details.aspx?displaylang=fr&amp;FamilyID=75e13d71-7c53-4382-9592-6c07c6a00207">Blend SDK</a> à travers l’utilisation de <em>behaviours</em>.</p>
<p>Parfois, il arrive qu’on ait besoin de créer une fonctionnalité supplémentaire pour un contrôle existant. Dans ce cas de figure, nous utilisons alors les <em>Attached Property</em> qui permettent d’étendre un contrôle existant avec notre fonctionnalité, sans avoir à procéder à un héritage.</p>
<h3><span style="text-decoration: underline">Blend SDK:</span></h3>
<p>Ce SDK fournit entre autre des <em>behaviours </em>qui permettent de greffer des  fonctionnalités sur des contrôles pour avoir des comportements supplémentaires.</p>
<ul>
<li><strong>InvokeCommandAction</strong> : Permet de lier un événement à une commande sans envoyer de paramètre.</li>
<li><strong>DataStateBehaviour</strong> : Sélectionne un VisualState en fonction d’une propriété</li>
<li><strong>CallMethodAction</strong> : Permet à un événement d’exécuter une méthode.</li>
</ul>
<p>Pour utiliser ces behaviours, il faut au préalable charger l’assembly System.Window.Interactivity (2 dlls). Il est également possible d’écrire ses propres extensions.</p>
<h3><span style="text-decoration: underline">Testing</span></h3>
<p>Le pattern MVVM d’une manière générale est le pattern de prédilection pour mettre en place des tests unitaires automatisés pour les applications WPF et Silverlight. Nous avons vu auparavant que la mise en place d’un pattern d’IoC facilitait l’écriture de Mocks. Et bien, c’est avec cette même facilité qu’on pourra également mettre en place une série de tests automatisés car l’UI et l’UI logic sont complètement décorrélés dans cette architecture.</p>
<p>Pour réaliser vos tests selon le type d&#8217;application :</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center" width="318" valign="top">
<h4>WPF</h4>
</td>
<td style="text-align: center" width="318" valign="top">
<h4>Silverlight</h4>
</td>
</tr>
<tr>
<td width="318" valign="top">Les principaux outils de testing sont déjà intégrés à Visual StudioLe ViewModel est testable avec UnitTesting</p>
<p>La View est testable avec UI Automation</td>
<td width="318" valign="top">Contrairement à WPF, Silverlight ne dispose pas d’outil de test intégré à Visual Studio &#8211; peut-être dans une future version ? -, cependant, les tests unitaires sont réalisables à l’aide de <a href="http://silverlight.codeplex.com/">Silverlight Unit Test Framework</a>.Le ViewModel est testable avec Statlight, Odin, …</td>
</tr>
</tbody>
</table>
<h4><span><span style="text-decoration: underline">Liens externes</span></span></h4>
<p>MVVM : <a href="http://compositewpf.codeplex.com/" target="_blank">Framework Prism</a>, <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyId=bcb166f7-dd16-448b-a152-9845760d9b4c&amp;displaylang=en">Microsoft Enterprise Library</a></p>
<p>Inversion of Control : <a href="http://unity.codeplex.com/">Unity</a>, <a href="http://www.springframework.net/">Framework Spring .NET</a>, <a href="http://ninject.org/">Ninject</a></p>
<p>Behaviour : <a href="http://www.microsoft.com/downloads/fr-fr/details.aspx?displaylang=fr&amp;FamilyID=75e13d71-7c53-4382-9592-6c07c6a00207">Blend SDK</a></p>
<p>Testing : <a href="http://silverlight.codeplex.com/">Silverlight Toolkit (Silverlight Unit Test Framework)</a></p><p>The post <a href="https://blog.infine.com/wpf-silverlight-l%e2%80%99etat-de-l%e2%80%99art-au-microsoft-techdays-2011-partie-2-663">WPF & Silverlight : L’état de l’art au Microsoft TechDays 2011 (partie 2)</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.infine.com/wpf-silverlight-l%e2%80%99etat-de-l%e2%80%99art-au-microsoft-techdays-2011-partie-2-663/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WPF &#038; Silverlight : L&#8217;état de l&#8217;art au Microsoft TechDays 2011 (partie 1)</title>
		<link>https://blog.infine.com/wpf-silverlight-letat-de-lart-au-microsoft-techdays-2011-partie-1-595?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wpf-silverlight-letat-de-lart-au-microsoft-techdays-2011-partie-1</link>
					<comments>https://blog.infine.com/wpf-silverlight-letat-de-lart-au-microsoft-techdays-2011-partie-1-595#comments</comments>
		
		<dc:creator><![CDATA[David Taing]]></dc:creator>
		<pubDate>Fri, 11 Mar 2011 10:00:07 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Conférence]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[Intégration graphique]]></category>
		<category><![CDATA[Microsoft Techdays 2011]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">https://blog.infine.com/?p=595</guid>

					<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">3</span> <span class="rt-label rt-postfix">min.</span></span> A chaque événement TechDays, c&#8217;est l&#8217;effervescence au sein de la communauté Microsoft. Pour commencer cette nouvelle année, c&#8217;est le Cloud qui était à l&#8217;honneur. Mais nous allons ici évoquer un sujet un peu moins brumeux et qui, nous, les développeurs .NET, nous concerne plus particulièrement : WPF &#38; Silverlight. A travers une série d&#8217;articles, nous ferons &#8230;</p>
<p>The post <a href="https://blog.infine.com/wpf-silverlight-letat-de-lart-au-microsoft-techdays-2011-partie-1-595">WPF & Silverlight : L’état de l’art au Microsoft TechDays 2011 (partie 1)</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">3</span> <span class="rt-label rt-postfix">min.</span></span><p><em>A chaque événement TechDays, c&#8217;est l&#8217;effervescence au sein de la communauté Microsoft. Pour commencer cette nouvelle année, c&#8217;est le Cloud qui était à l&#8217;honneur. Mais nous allons ici évoquer un sujet un peu moins brumeux et qui, nous, les développeurs .NET, nous concerne plus particulièrement : <strong>WPF &amp; Silverlight</strong>. </em></p>
<p><em>A travers une série d&#8217;articles, nous ferons le point sur les principales conférences autour de WPF &amp; Silverlight&#8230;</em></p>
<p><em> </em></p>
<h2>Changer la vie de vos utilisateurs en intégrant du design et de l&#8217;ergonomie par Olivier Courtois (Bewise)</h2>
<p>De nos jours, nous avons affaire à des &#8220;superutilisateurs&#8221; qui ont des attentes surdéveloppées. Bien plus que par le passé, les applications doivent se soucier davantage du confort d&#8217;utilisation : on parle alors d’ergonomie. Pour pallier à des surcoûts postproduction, cette réflexion doit être posée en amont.</p>
<p>Le travail général de l&#8217;ergonomie s&#8217;effectue dans le cadre d&#8217;une réflexion centrée autour de l&#8217;utilisateur. Cette réflexion, auprès d&#8217;utilisateurs réels -dans le meilleur des cas- ou auprès d&#8217;utilisateurs fictifs, donne naissance aux exigences ergonomiques.</p>
<p><a href="https://blog.infine.com/wp-content/uploads/2011/02/schema12.png" class="fancyboxgroup" rel="gallery-595"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-627" src="https://blog.infine.com/wp-content/uploads/2011/02/schema12.png" alt="" width="614" height="100" srcset="https://blog.infine.com/wp-content/uploads/2011/02/schema12.png 614w, https://blog.infine.com/wp-content/uploads/2011/02/schema12-300x48.png 300w" sizes="(max-width: 614px) 100vw, 614px" /></a><br />
<span id="more-595"></span><br />
Avec la technologie SilverLight/WPF, la chaîne de travail est occupée autour de 4 postes d&#8217;exécutions clés :</p>
<ul>
<li>Ergonomie</li>
<li>Graphisme</li>
<li>Intégration graphique</li>
<li>Développement</li>
</ul>
<p>Nous allons ici nous intéresser plus particulièrement aux 3 premières étapes de cette chaîne.</p>
<ol>
<h3><span style="text-decoration: underline">Ergonomie</span></h3>
</ol>
<p>L&#8217;ergonomie c&#8217;est l&#8217;art de faire s&#8217;adapter l&#8217;outil à l&#8217;homme à travers une interface. Le rôle de cette étape est de constituer le document de spécification ergonomique.</p>
<p>Le travail sur l’ergonomie est constitué des phases d’exécutions suivantes :</p>
<p>1)      Recueil du besoin : on itère auprès des utilisateurs pour déterminer le fonctionnement général de l’application</p>
<p>2)      Etude de l&#8217;existant (s’il existe !)</p>
<p>3)      Création de croquis</p>
<ul>
<li>Croquis papier : permet d’être plus créatif</li>
<li>Application d’UI Design Pattern</li>
</ul>
<p>4)      Proposition statique</p>
<ul>
<li>Croquis numérique : toujours à l’état de croquis, cette étape permet d’être clair lors de la confrontation avec les utilisateurs.</li>
</ul>
<p>5)      Proposition dynamique</p>
<ul>
<li>Maquette dynamique : avec la mise en place d’interactions dans les croquis numériques, les utilisateurs perçoivent de manière plus évidente le fonctionnement que pourrait donner l’ergonomie de l’application.</li>
<li>Permet de tester auprès des utilisateurs</li>
<li>Permet de valider l&#8217;ergonomie</li>
</ul>
<p>6)      Spécification ergonomique</p>
<ul>
<li>Recommandations ergonomiques</li>
<li>Typologie des utilisateurs</li>
<li>Croquis des principaux écrans</li>
<li>Rationalisation des choix</li>
</ul>
<p>Le travail sur l’ergonomie produit le document de spécification ergonomique, document qui sera par la suite réutilisé au cours de l’intégration graphique.</p>
<ol>
<h3><span style="text-decoration: underline">Graphisme</span></h3>
</ol>
<p>Le graphisme -ou design d’application- doit à travers son esthétisme communiquer visuellement la même information à tous les utilisateurs tout en prolongeant la marque du client. Au final, le design sublime l’ergonomie. Cette étape doit permettre la production de la charte graphique de l’application.</p>
<p>C’est ici qu’intervient un designer dont la tâche est de construire la charte graphique selon les étapes suivantes :</p>
<p>1)      Recueil du besoin</p>
<p>2)      Maquettage</p>
<p>3)      Définition de la charte graphique de l&#8217;application</p>
<ol>
<h3><span style="text-decoration: underline">Intégration graphique</span></h3>
</ol>
<p>L’intégration graphique consiste à créer les écrans de l’application tout en respectant son ergonomie. Cette étape permet notamment de préparer le travail du développeur. Pour ce faire, l’intégrateur graphique doit avoir à sa disposition à la fois le document de spécification ergonomique qui identifie les contrôles visuels et la charte graphique qui définit le style visuel appliqué aux contrôles.</p>
<p>1)      Recueil du besoin</p>
<p>2)      Création des squelettes d&#8217;écrans</p>
<p>3)      Intégration graphique</p>
<p>A l’issu de ce travail, l’intégrateur graphique met à la disposition des développeurs une bibliothèque de composants stylisés qui doit couvrir tous les besoins de l’application.</p>
<ol>
<h3><span style="text-decoration: underline">Gains Utilisateurs</span></h3>
</ol>
<p>La prise en compte de l’ergonomie au sein des applications SL/WPF offre bien des apports sur plusieurs aspects. Tout d’abord au niveau de la conduite de projet, on observe une amélioration de la productivité grâce au séquençage des tâches. Avec une meilleure ergonomie, l’application est beaucoup plus intuitive d’un point de vue utilisateur et donc les besoins en formations sont diminués et une meilleure satisfaction d’utilisation de l’application et l’adhérence des utilisateurs. Et d’une manière générale, on observe une diminution du nombre d’erreurs.</p>
<h3><span style="text-decoration: underline">Conseil aux développeurs qui veulent se lancer dans l&#8217;ergonomie:</span></h3>
<ul>
<li>Faire attention au vocabulaire employé</li>
<li>Ne pas placer ses contrôles n&#8217;importe où</li>
</ul><p>The post <a href="https://blog.infine.com/wpf-silverlight-letat-de-lart-au-microsoft-techdays-2011-partie-1-595">WPF & Silverlight : L’état de l’art au Microsoft TechDays 2011 (partie 1)</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.infine.com/wpf-silverlight-letat-de-lart-au-microsoft-techdays-2011-partie-1-595/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
