<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Pierre's Embedded and Mobile Blog : mobile</title><link>http://blogs.msdn.com/b/pierreca/archive/tags/mobile/</link><description>Tags: mobile</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>[Windows Phone 7.5] Protéger les données sensibles dans l’Isolated Storage</title><link>http://blogs.msdn.com/b/pierreca/archive/2012/04/05/windows-phone-7-5-prot-233-ger-les-donn-233-es-sensibles-dans-l-isolated-storage.aspx</link><pubDate>Thu, 05 Apr 2012 16:58:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10291178</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10291178</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10291178</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2012/04/05/windows-phone-7-5-prot-233-ger-les-donn-233-es-sensibles-dans-l-isolated-storage.aspx#comments</comments><description>&lt;p&gt;Il arrive que l'’on doive échanger des données sensibles, par exemple à travers du réseau, ou entre des couches applicatives. Pour cela on a accès à toute une &lt;a href="http://msdn.microsoft.com/en-us/library/ff402533(v=VS.92).aspx"&gt;couche de sécurité&lt;/a&gt; qui est très simple à utiliser et qui inclue les algos les plus classiques, qu’il s’agisse de crypto (AES, RSA etc) ou du hashage (HMAC, SHA1, SHA256…). Cette couche permet de crypter un contenu à partir d’une clef secrète ou d’un couple clef publique / clef privée. &lt;/p&gt;  &lt;p&gt;Mais parfois on veut stocker ces données, et autant on peut utiliser ces algos pour stocker les crypter, on ne peut pas les utiliser pour stocker la clef de cryptage elle-même! Dans ce cas, on a la Data Protection API (DPAPI) qui utilise une clef secrète contenue dans le téléphone, impossible à récupérer et qui permettra de crypter n’importe quel type de contenu. Cette DPAPI est accessible depuis la classe statique &lt;a href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata(v=vs.95).aspx"&gt;System.Security.Cryptography.ProtectedData&lt;/a&gt;. Celle ci contient 2 méthodes, Protect et UnProtect, qui agissent tout simplement sur des tableaux de bytes:&lt;/p&gt;  &lt;p&gt;Un exemple de cryptage:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;byte&lt;/span&gt;[] dataBytes = System.Text.&lt;span style="color: #2b91af"&gt;Encoding&lt;/span&gt;.UTF8.GetBytes(data);
&lt;span style="color: blue"&gt;byte&lt;/span&gt;[] encryptedData = &lt;span style="color: #2b91af"&gt;ProtectedData&lt;/span&gt;.Protect(dataBytes, &lt;span style="color: blue"&gt;null&lt;/span&gt;);&lt;/pre&gt;



&lt;p&gt;Et un décryptage, aussi simple!&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;byte&lt;/span&gt;[] decryptedData = &lt;span style="color: #2b91af"&gt;ProtectedData&lt;/span&gt;.Unprotect(encryptedData, &lt;span style="color: blue"&gt;null&lt;/span&gt;);
result = &lt;span style="color: blue"&gt;new string&lt;/span&gt;(System.Text.&lt;span style="color: #2b91af"&gt;Encoding&lt;/span&gt;.UTF8.GetChars(decryptedData));&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;En tout état de cause, si vous n’avez qu’à stocker des données cryptées et pas forcément à les partager, vous pouvez ne vous servir que de cette classe. Ca simplifie grandement l’écriture de certaines applications comme par exemple les coffres de mots de passe… mais n’oubliez pas de gérer, lors de vos cryptages/décryptages, les tombstoning correctement…&amp;#160; et n’écrivez jamais nulle-part un secret en clair!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10291178" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7-5/">Windows Phone 7.5</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/cryptographie/">cryptographie</category></item><item><title>Livemeeting “monétisation des applications mobiles” : le contenu est disponible!</title><link>http://blogs.msdn.com/b/pierreca/archive/2012/03/12/livemeeting-mon-233-tisation-des-applications-mobiles-le-contenu-est-disponible.aspx</link><pubDate>Mon, 12 Mar 2012 18:06:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10281500</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10281500</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10281500</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2012/03/12/livemeeting-mon-233-tisation-des-applications-mobiles-le-contenu-est-disponible.aspx#comments</comments><description>&lt;p&gt;Vendredi 9 Mars se tenait le deuxième livemeeting de l’accélérateur, dont le sujet était la monétisation des applications.&lt;/p&gt;  &lt;p&gt;La première partie couvre &lt;strong&gt;les différents business models avec leurs avantages et inconvénients, et les clefs pour réussir le lancement d’une application&lt;/strong&gt;. Cette partie a été présentée par &lt;a href="http://twitter.com/#!/jamouroux"&gt;Julien Amouroux&lt;/a&gt; de &lt;a href="http://www.developer.nokia.com/fr/"&gt;Nokia&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Voici le lien vers &lt;a href="https://skydrive.live.com/redir.aspx?cid=1544e7c8d3f81201&amp;amp;resid=1544E7C8D3F81201!2130&amp;amp;parid=1544E7C8D3F81201!113"&gt;sa présentation&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La deuxième partie couvre &lt;strong&gt;l’utilisation du SDK Microsoft Advertising&lt;/strong&gt;, et une petite démonstration d’intégration de celui-ci dans une application, tout ceci par Aurélien Lemoine, de &lt;a href="http://www.clevlab.fr/"&gt;ClevLab&lt;/a&gt; (t&lt;a href="https://twitter.com/#!/ClevLab"&gt;witter&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Aurélien a posté sa présentation &lt;a href="https://skydrive.live.com/?cid=988E70488EF3E4E6&amp;amp;id=988E70488EF3E4E6!107"&gt;sur le skydrive de ClevLab&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Enfin, sachez que vous pouvez également &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=fr-FR&amp;amp;EventID=1032507790&amp;amp;CountryCode=FR"&gt;revoir le webcast&lt;/a&gt; !&lt;/p&gt;  &lt;p&gt;A vous de nous dire maintenant ce que vous aimeriez vois dans le prochain livemeeting!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10281500" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/LiveMeeting/">LiveMeeting</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/SDK/">SDK</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Nokia/">Nokia</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7-5/">Windows Phone 7.5</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/clevlab/">clevlab</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mon_E900_tisation/">monétisation</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/microsoft+advertising/">microsoft advertising</category></item><item><title>[Windows Phone 7.5] Ce que signifie la mise à jour 7.1.1 (Tango) du SDK pour votre application</title><link>http://blogs.msdn.com/b/pierreca/archive/2012/02/29/windows-phone-7-5-ce-que-signifie-la-mise-224-jour-7-1-1-tango-du-sdk-pour-votre-application.aspx</link><pubDate>Wed, 29 Feb 2012 18:24:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10274696</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10274696</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10274696</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2012/02/29/windows-phone-7-5-ce-que-signifie-la-mise-224-jour-7-1-1-tango-du-sdk-pour-votre-application.aspx#comments</comments><description>&lt;p&gt;Une CTP de la version 7.1.1 du SDK Windows Phone “Tango” a été annoncée au Mobile World Congress, et sur &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2012/02/27/get-ready-for-60-more-potential-customers.aspx"&gt;le blog de l’équipe Windows Phone&lt;/a&gt;. Au menu, plutôt des bonnes nouvelles: la mise à jour “Tango” ouvre la porte à des terminaux plus low-cost, particulièrement utiles dans les pays émergents, ajoute le support d’un certain nombre de langues et de pays pour le marketplace, et cela se traduit par un nombre d’utilisateurs potentiels de vos apps qui grossit d’environ 60% d’un seul coup…&lt;/p&gt;  &lt;p&gt;Parmi les concessions faites sur le châssis hardware pour diminuer les coûts des téléphones, il y a la possibilité de faire des terminaux avec seulement 256Mo de RAM. Ce choix a pour conséquence qu’une application qui consommerait plus de 90Mo de mémoire serait coupée automatiquement… Cela concerne moins de 5% des applications du Marketplace et nous travaillons avec ces développeurs pour les aider à revenir sous cette barre fatidique. &lt;/p&gt;  &lt;p&gt;Pour tester si c’est votre cas, la CTP de la version 7.1.1 du SDK Windows Phone amène une version “bridée” à 256Mo de l’émulateur. il n’y a en gros que ça d’intéressant dans cette version, qui n’est de toutes façons pas encore mure pour publier des applications sur Marketplace (pas de licence dite “go live”). Pas besoin de se jeter dessus, donc, surtout pour votre machine de production, mais si vous êtes dans les 5% à consommer plus de 90Mo, il peut être bon de le tester rapidement. &lt;/p&gt;  &lt;p&gt;Si vous savez que vous avez systématiquement besoin de plus de 90Mo, vous pouvez l’indiquer dans votre manifest, et alors l’application n’apparaitra plus aux utilisateurs des téléphones low-cost, évitant l’expérience “j’installe mais ça plante”.&lt;/p&gt;  &lt;p&gt;Il suffit de rajouter, dans le fichier WMAppManifest.xml, sous les capabilities les 3 lignes suivantes:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Requirements&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Requirement &lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;ID_REQ_MEMORY_90&lt;/span&gt;&amp;quot; &lt;span style="color: blue"&gt;/&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Requirements&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Si on résume, soit vous utilisez moins de 90Mo, et tout va bien, soit vous utilisez plus de 90Mo de RAM, et là 2 options: &lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Vous optimisez &lt;/li&gt;

  &lt;li&gt;Vous décrétez que vous ne voulez pas que votre application soit installable sur les téléphones ne disposant que de 256Mo de mémoire, avec les 3 lignes ci-dessus&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h1&gt;Attention aux background agents…&lt;/h1&gt;

&lt;p&gt;Votre application n’est pas sensée dépendre d’un background agent pour fonctionner correctement: dès le début, vous deviez prendre en compte le fait que vos utilisateurs peuvent les désactiver manuellement dans le panneau de configuration. Sur les terminaux à 256Mo de RAM, ils ne tourneront pas, de toutes façons. Une raison de plus d’y penser, donc, en créant l’expérience de votre application… &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Cela ne concerne que les background agents génériques (PeriodicTask/ResourceIntensiveTask). &lt;/li&gt;

  &lt;li&gt;Si vous n’avez pas encadré le lancement de votre background agent dans un block try/catch, une InvalidOperationException sera levée et fera éventuellement crasher votre application… (qui aurait crashé de la même manière si le nombre maximum de background agents sur un terminal “normal” est atteint)… Si vous n’avez pas envisagé ce cas, je vous conseille de le faire &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sourire" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/2577.wlEmoticon_2D00_smile_5F00_2612BCAF.png" /&gt;&lt;/li&gt;

  &lt;li&gt;Si vous avez besoin de background agents pour activer des options spécifiques (live-tile, par exemple) essayez de ne proposer cette option que si le terminal dispose de plus de 256Mo… ce qui m’amène à la question suivante:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h1&gt;Comment savoir si un terminal dispose de plus de 256 Mo? &lt;/h1&gt;

&lt;p&gt;Réponse: En utilisant les DeviceExtendedProperties:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;try
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;long &lt;/span&gt;result = 
    (&lt;span style="color: blue"&gt;long&lt;/span&gt;)DeviceExtendedProperties.GetValue(&lt;span style="color: #a31515"&gt;&amp;quot;ApplicationWorkingSetLimit&amp;quot;&lt;/span&gt;);
}
&lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;ArgumentOutOfRangeException&lt;/span&gt;) 
{
    &lt;span style="color: green"&gt;// The device has not received the OS update, which means the device is a 512-MB device.
&lt;/span&gt;}&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h1&gt;Comment optimiser l’usage de la mémoire?&lt;/h1&gt;

&lt;p&gt;La racine de tout ce qui concerne les performances des applications Windows Phone est sur cette page: &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff967560(v=vs.92).aspx"&gt;Performance Considerations in Applications for Windows Phone&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Si vous êtes dans le cas d’un jeu en XNA (particulièrement sensible à l’usage de la mémoire) vous pouvez vous tourner vers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&amp;#160;&lt;a href="http://msdn.microsoft.com/en-us/library/hh855082(v=vs.92).aspx"&gt;Improving Memory Use for XNA Games&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Une session qui a été jouée au Techdays 2012 sur le sujet sera par ailleurs bientôt en ligne…&lt;/p&gt;

&lt;p&gt;Pour conclure, je dirais bien que pragmatiquement à partir du moment où on code propre, et où on avait regardé dès le début les contraintes de certification de Marketplace (qui incluent, depuis la première version, la limite de 90Mo), il n’y aura pas de problème. Et pour ceux qui auraient une situation particulière, lié à un usage spécifique ou à une erreur bénigne dans le code au lancement des background agents, la résolution est facile! A vous de jouer!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh855081(v=vs.92).aspx#memorylimits"&gt;Source: Developping for 256-MB devices sur MSDN&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10274696" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/SDK/">SDK</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone/">Windows Phone</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7-5/">Windows Phone 7.5</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/7-1-1/">7.1.1</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Tango/">Tango</category></item><item><title>[Windows Phone 7.5] Supprimer le “pinch to zoom” sur un contrôle WebBrowser</title><link>http://blogs.msdn.com/b/pierreca/archive/2012/02/20/windows-phone-7-5-supprimer-le-pinch-to-zoom-sur-un-contr-244-le-webbrowser.aspx</link><pubDate>Mon, 20 Feb 2012 12:24:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10269688</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10269688</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10269688</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2012/02/20/windows-phone-7-5-supprimer-le-pinch-to-zoom-sur-un-contr-244-le-webbrowser.aspx#comments</comments><description>&lt;h1&gt;Le ViewPort&lt;/h1&gt;  &lt;p&gt;Le ViewPort se défini dans le code HTML. Il indique la largeur “virtuelle” de la page web. Sur un terminal mobile, on a envie d’ajuster le ViewPort en fonction de la largeur de l’écran, et d’une plateforme à une autre, ça peut varier (ça sera la même pour tous les Windows Phone). Le ViewPort permet de définir plusieurs propriétés:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;width&lt;/strong&gt;: par défaut, 320 (pixels). Comme ça c’est compatible iPhone, et après c’est le navigateur qui se charge de faire la conversion “pixels web –&amp;gt; pixels réels”. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;height&lt;/strong&gt; : par défaut, 480 &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;user-scalable&lt;/strong&gt;: permet de définir si l’utilisateur peut zoomer dans la page &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Certaines plateformes définissent des paramètres comme minimum-scale, maximum-scale, ou initial-scale… Ils ne sont pas supportées par IE9 dans Windows Phone.&lt;/p&gt;  &lt;p&gt;Le truc classique en manipulant le viewport pour supprimer l’effet de zoom, c’est de passer le paramètre user-scalable à “no” et le paramètre “width” à “device-width”:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;meta &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;viewport&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;content&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;width=device-width, user-scalable=no&amp;quot;/&amp;gt;  
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h1&gt;Supprimer les manipulations&lt;/h1&gt;

&lt;p&gt;Mais cela ne suffit pas! En effet, si l’utilisateur essaie de zoomer, la page zoomera quand même… puis reviendra en place automatiquement, empêchant d’afficher un autre niveau de zoom que celui prescrit initialement, mais indiquant à l’utilisateur que son geste a bien été pris en compte (bonne pratique d’ergonomie en général, mais pas top quand on veut cacher qu’on utilise une webview… parce qu’on sait tous que c’est pourri!).&lt;/p&gt;

&lt;p&gt;Pour supprimer cet effet, il faut supprimer carrément les évènements de manipulation au niveau du contrôle WebBrowser. cela nécessite un peu de code qui m’a gentiment été soufflé par nos amis d’&lt;a href="http://www.ucaya.com/"&gt;Ucaya&lt;/a&gt;, et plus particulièrement &lt;a href="https://twitter.com/#!/romuxx"&gt;Romuald&lt;/a&gt;, dont l’origine est &lt;a href="http://www.scottlogic.co.uk/blog/colin/2011/11/suppressing-zoom-and-scroll-interactions-in-the-windows-phone-7-browser-control/"&gt;ce post de Colin Eberhardt&lt;/a&gt;:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;WebBrowser_Loaded(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, System.Windows.&lt;span style="color: #2b91af"&gt;RoutedEventArgs &lt;/span&gt;e)
{
    &lt;span style="color: blue"&gt;var &lt;/span&gt;border = ((Microsoft.Phone.Controls.&lt;span style="color: #2b91af"&gt;WebBrowser&lt;/span&gt;)sender).Descendants&amp;lt;&lt;span style="color: #2b91af"&gt;Border&lt;/span&gt;&amp;gt;().Last() &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Border&lt;/span&gt;;

    border.ManipulationDelta += Border_ManipulationDelta;
    border.ManipulationCompleted += Border_ManipulationCompleted;
}

&lt;span style="color: blue"&gt;private void &lt;/span&gt;Border_ManipulationCompleted(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender,
                                    &lt;span style="color: #2b91af"&gt;ManipulationCompletedEventArgs &lt;/span&gt;e)
{
    &lt;span style="color: green"&gt;// suppress zoom
    &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(e.FinalVelocities.ExpansionVelocity.X != 0.0 ||
        e.FinalVelocities.ExpansionVelocity.Y != 0.0)
        e.Handled = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
}

&lt;span style="color: blue"&gt;private void &lt;/span&gt;Border_ManipulationDelta(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender,
                                        &lt;span style="color: #2b91af"&gt;ManipulationDeltaEventArgs &lt;/span&gt;e)
{
    &lt;span style="color: green"&gt;// suppress zoom
    &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(e.DeltaManipulation.Scale.X != 0.0 ||
        e.DeltaManipulation.Scale.Y != 0.0)
        e.Handled = &lt;span style="color: blue"&gt;true&lt;/span&gt;;

    &lt;span style="color: green"&gt;//// optionally suppress scrolling
    //if (ScrollDisabled)
    //{
    //    if (e.DeltaManipulation.Translation.X != 0.0 ||
    //      e.DeltaManipulation.Translation.Y != 0.0)
    //        e.Handled = true;
    //}
&lt;/span&gt;}&lt;/pre&gt;

&lt;p&gt;Evidemment, il faut associer la méthode WebBrowser_Loaded à l’évènement Loaded du contrôle WebBrowser… &lt;/p&gt;

&lt;p&gt;Petite précision à propos de ce bout de code: il utilise la très excellente extension &lt;a href="http://www.scottlogic.co.uk/blog/colin/2010/03/linq-to-visual-tree/"&gt;LinqToVisualTree&lt;/a&gt; qu’il faudra donc ajouter également au projet…&lt;/p&gt;

&lt;p&gt;Et voila, plus d’effet de zoom. Ceci étant dit, ça ne doit pas vous encourager à utiliser les WebBrowser pour autre chose qu’afficher des pages HTML… et surtout, quelqu’en soit votre utilisation, ne les utilisez jamais, AU GRAND JAMAIS, dans un Panorama ou un Pivot, ça casse l’expérience de navigation horizontale. Il y a une place spéciale en enfer pour les gens qui font ça. Vous voilà prévenu!&lt;/p&gt;

&lt;h1&gt;Du bon usage du contrôle WebBrowser&lt;/h1&gt;

&lt;p&gt;Les contrôles de type “WebBrowser”, (ou WebView) sont rarement bien utilisés…&lt;/p&gt;

&lt;p&gt;Un WebBrowser, c’est fait pour afficher du contenu web (du HTML) parce qu’on ne veut/peut pas le parser (par exemple, une page d’authentification OAuth). &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Ce n’est pas fait pour éviter d’avoir à créer une expérience native. &lt;/li&gt;

  &lt;li&gt;Ce n’est pas fait pour réutiliser des vues entre différentes plateformes. &lt;/li&gt;

  &lt;li&gt;Ce n’est pas fait pour s’acheter une place sur un store, qu’on n’aurait pas eu avec un site web mobile. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Malheureusement 90% du temps c’est ça qu’on voit. Il ne faut pas faire. Une expérience native c’est &lt;u&gt;justement&lt;/u&gt; pour avoir quelque chose de spécifique à chaque plateforme, en terme d’ergonomie, de look’n’feel. C’est ce que les utilisateurs attendent! Malheureusement le développement d’application n’est pas toujours piloté par le développeur soucieux de la beauté du code, ou le créa soucieux de la beauté des visuels et des animations. Des fois, le responsable du projet qui n’a pas assez de sous, ou de temps, et qui doit faire avec ce qu’il a… et on se retrouve avec des webviews mal utilisées. &lt;/p&gt;

&lt;p&gt;Alors quand on utilise un contrôle WebBrowser, pour de bonnes ou de mauvaises raisons, il faut en contrôler le comportement. Sinon on se retrouve sur &lt;a href="http://wtfmobileweb.com/"&gt;wtfmobileweb.com&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Encore merci à &lt;a href="https://twitter.com/#!/romuxx"&gt;@RomuxX&lt;/a&gt; pour l’info, et pour d’autres lectures intéressantes sur le sujet, je vous encourage à aller voir &lt;a href="http://msdn.microsoft.com/en-us/library/ff462082(v=vs.92).aspx"&gt;la page sur le développement web pour Windows Phone 7.5, sur MSDN&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10269688" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Weberies/">Weberies</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/IE9/">IE9</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/WebBrowser/">WebBrowser</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7-5/">Windows Phone 7.5</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Manipulations/">Manipulations</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Zoom/">Zoom</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/ViewPort/">ViewPort</category></item><item><title>[E-Camp] Animations et Transitions de pages dans Windows Phone 7.5, webcast et slides</title><link>http://blogs.msdn.com/b/pierreca/archive/2012/02/16/e-camp-animations-et-transitions-de-pages-dans-windows-phone-7-5-webcast-et-slides.aspx</link><pubDate>Thu, 16 Feb 2012 15:44:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10268632</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10268632</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10268632</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2012/02/16/e-camp-animations-et-transitions-de-pages-dans-windows-phone-7-5-webcast-et-slides.aspx#comments</comments><description>&lt;p&gt;Comme pour tous les e-camps, vous pouvez retrouver le webcast directement &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=fr-FR&amp;amp;EventID=1032504688&amp;amp;CountryCode=FR"&gt;sur la page de l’évènement&lt;/a&gt; (en cliquant sur “Afficher en ligne”). Quant aux slides, je les ai publiées sur &lt;a href="https://skydrive.live.com/redir.aspx?cid=1544e7c8d3f81201&amp;amp;resid=1544E7C8D3F81201!1959&amp;amp;parid=1544E7C8D3F81201!1958"&gt;ce skydrive&lt;/a&gt;, les voici :&lt;/p&gt;  &lt;p&gt;&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; padding-right: 0px; padding-top: 0px" title="Preview" height="327" marginheight="0" src="https://r.office.microsoft.com/r/rlidPowerPointEmbed?p1=1&amp;amp;p2=1&amp;amp;p3=SD1544E7C8D3F81201!1959&amp;amp;p4=&amp;amp;ak=!AEtKdLyWlEBqKoc&amp;amp;kip=1&amp;amp;authkey=!AEtKdLyWlEBqKoc" frameborder="0" width="402" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;D’une manière générale sachez que chaque e-camp peut être retrouvé directement sur sa page d’inscription, une fois qu’il a été enregistré (le jour J) il peut être revu.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10268632" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Blend+4/">Blend 4</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Transitions/">Transitions</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Animations/">Animations</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7-5/">Windows Phone 7.5</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/e_2D00_camp/">e-camp</category></item><item><title>LiveMeeting : Comment faire des animations et des transitions pour rendre vos applications plus fluides?</title><link>http://blogs.msdn.com/b/pierreca/archive/2012/02/01/livemeeting-comment-faire-des-animations-et-des-transitions-pour-rendre-vos-applications-plus-fluides.aspx</link><pubDate>Wed, 01 Feb 2012 11:18:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10262679</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10262679</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10262679</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2012/02/01/livemeeting-comment-faire-des-animations-et-des-transitions-pour-rendre-vos-applications-plus-fluides.aspx#comments</comments><description>&lt;p&gt;&lt;img alt="E-camp : Windows Phone 7 - Comment faire des animations et transitions pour rendre vos applications plus fluides ?" src="https://mseventsww.microsoft.com/BannerImages/45658ef8-84ab-4ac8-9d6a-e493c1b2b2cf.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ce vendredi, à la pause déjeuner, 13h30 – 14h, retrouvez moi pour un petit livemeeting de 20 minutes + 10 minutes de questions/réponses sur le thème des animations et des transitions. Ces dernières sont un point clef pour rendre votre application fluide aux yeux de l’utilisateur, le guider dans l’expérience, et c’est souvent un des détails qui font la différence entre une bonne et une excellente application.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032504687&amp;amp;culture=fr-fr"&gt;Voici le lien pour s’inscrire et suivre l’évènement!&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pensez à être là 5 minutes en avance pour vérifier que la connectivité est bonne, il s’agit d’un livemeeting! et si vous ne pouvez être là, sachez que ce livemeeting sera webcasté, et accessible avec ce même lien!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10262679" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/LiveMeeting/">LiveMeeting</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Exp_E900_rience+Utilisateur/">Expérience Utilisateur</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Blend+4/">Blend 4</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Transitions/">Transitions</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Animations/">Animations</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7-5/">Windows Phone 7.5</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/e_2D00_camp/">e-camp</category></item><item><title>[Techdays 2012] Préparation du parcours “Windows Phone 7”</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/11/23/techdays-2012-pr-233-paration-du-parcours-windows-phone-7.aspx</link><pubDate>Wed, 23 Nov 2011 19:29:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10241036</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10241036</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10241036</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/11/23/techdays-2012-pr-233-paration-du-parcours-windows-phone-7.aspx#comments</comments><description>&lt;p&gt;Les techdays commencent à pointer le bout de leur nez… dans l’équipe on y passe déjà beaucoup de temps. Une des tâches principales est l’organisation des parcours et des sessions dans chaque parcours (track). &lt;/p&gt;  &lt;p&gt;Un parcours sur un sujet se doit d’être cohérent, et d’avoir un bon équilibre entre les sessions: sujets, niveau technique… L’an dernier par exemple, le parcours Windows Phone 7 concrétisait un retour d’expérience complet sur les différentes phases du développement d’une applications: bonnes pratiques pour démarrer, application du design Metro, collaboration avec les designers, industrialisation, optimisation des performances… à l’époque j’étais parti du principe que le SDK était mature, que les participants des Techdays y avaient déjà surement jeté un oeil, et qu’il fallait répondre non pas à des débutants, mais plutôt à des développeurs avec des problématiques concrètes sur des projets menés au quotidien. Priorité à la pratique, et au pragmatisme.&lt;/p&gt;  &lt;p&gt;Cette année, cette expérience n’a fait qu’augmenter. Il faut donc hausser le niveau d’un cran, tout en proposant à la fois des sujets techniques de tous niveaux, sur les différentes parties du développement d’une application. L’idée du parcours de cette année sera donc “&lt;strong&gt;les plus belles applications&lt;/strong&gt;”. Différentes, bluffantes, inspirantes… je souhaite que chaque développeur, indépendamment de son niveau et de son implication dans Windows Phone 7, ressorte de chacune des sessions auxquelles il assistera avec des étoiles dans les yeux et l’opinion que les applications sont plus belles sur Windows Phone 7 que n’importe où ailleurs.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://techdays2012.cloudapp.net/"&gt;Le portail de proposition des sessions est déjà ouvert,&lt;/a&gt; mais maintenant, vous savez quels seront les ingrédients des sessions qui feront leur chemin dans le parcours Windows Phone 7: n’hésitez donc pas à en proposer plein, et à me faire vos retour d’idées ou de “commandes de sessions” dans les commentaires!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241036" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Techdays+2012/">Techdays 2012</category></item><item><title>[Windows Phone 7.5] Passer en mode 32 bits dans les applications</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/11/14/windows-phone-7-5-passer-en-mode-32-bits-dans-les-applications.aspx</link><pubDate>Mon, 14 Nov 2011 10:25:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10236750</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10236750</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10236750</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/11/14/windows-phone-7-5-passer-en-mode-32-bits-dans-les-applications.aspx#comments</comments><description>&lt;p&gt;Une petite info est en train de faire le tour de la toile des développeurs Windows Phone ce matin et je ne peux m’empêcher de la relayer, car la question sort assez souvent: il s’agit d’un &lt;strong&gt;feature documenté&lt;/strong&gt; (j’insiste sur l’importance de chacun de ces deux mots) qui permet de passer le codage des couleurs de 16 à 32 bits quand une application en a besoin. Sans plus attendre, le truc:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;App &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&amp;quot; &lt;span style="color: red"&gt;BitsPerPixel&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;32&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;...&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Dans le fichier &lt;strong&gt;WMAppManifest.xml&lt;/strong&gt; de l’application (là ou il y a les capabilities, la définition des background agents etc) il y a une propriété &lt;strong&gt;BitsPerPixel&lt;/strong&gt; de la balise App qui peut prendre les valeurs &lt;strong&gt;16&lt;/strong&gt; ou &lt;strong&gt;32&lt;/strong&gt; !&lt;/p&gt;

&lt;p&gt;Cette fonctionnalité est documentée &lt;a href="http://msdn.microsoft.com/en-us/library/ff769509(v=VS.92).aspx"&gt;sur la page de doc qui concerne le manifest de l’application sur MSDN&lt;/a&gt; et est disponible uniquement dans Mango (Windows Phone 7.5).&lt;/p&gt;

&lt;p&gt;Impacts? plus de “bandes” sur les gros aplats/dégradés de couleurs dans les photos et dans l’application (même si l’utilisation des dégradés est rarement “metro compliant”). Ca peut servir dans certains cas comme les jeux ou les applications à fort caractère graphique. La majorité ne devrait pas en avoir besoin… Et sachez que la différence est largement plus visible sur les écrans AMOLED que Super-LCD…&lt;/p&gt;

&lt;p&gt;N’importe quel ingénieur en architecture de microprocesseur vous dira que le passage en 32 bits charge la mémoire, la mémoire graphique, le CPU, le bus du contrôleur vidéo. Ca va donc logiquement impacter la batterie et les performances du téléphone (CPU, mémoire, potentiellement framerate…). Est-ce que l’impact est visible à vous de me le dire, ça dépend du cas d’usage… Quant à la question “pourquoi on est pas en 32 bits par défaut?” la réponse la plus sensée qui me vient en tête (mais je ne suis pas dans le groupe produit…) c’est “parce qu’on en a pas besoin! (merci Metro!)”&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10236750" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/SDK/">SDK</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/pratique/">pratique</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category></item><item><title>[Windows Phone 7.5] Utiliser les réseaux sociaux pour faire connaitre votre application!</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/11/09/windows-phone-7-5-utiliser-les-r-233-seaux-sociaux-int-233-gr-233-s-pour-faire-connaitre-votre-application.aspx</link><pubDate>Wed, 09 Nov 2011 13:33:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10235362</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10235362</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10235362</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/11/09/windows-phone-7-5-utiliser-les-r-233-seaux-sociaux-int-233-gr-233-s-pour-faire-connaitre-votre-application.aspx#comments</comments><description>&lt;p&gt;Avec Mango, le SDK Windows Phone 7.1 s’est enrichi de 2 launchers à dimension “sociale” : ShareStatusTask, et ShareLinkTask. Ces launchers permettent de publier sur Facebook, Windows Live, Twitter, des statuts ou des liens en utilisant le compte de l’utilsateur configuré sur le téléphone, sans avoir à passer par l’authentification du SDK Facebook. Ca rend le développement de composants sociaux de l’application beaucoup plus simple. Idée du jour: utiliser ces launchers pour que vos utilisateurs puissent partager leur usage de votre application, et le lien vers l’application elle-même !&lt;/p&gt;  &lt;p&gt;L’application qui va nous servir d’exemple est Klout Kikimeter. c’est une application que j’ai développé pour cet article (il fallait avoir quelque chose à partager!)… et qui permet de mesurer votre “influence en ligne” en utilisant Klout. Pas de jugement de valeur ici, mais bon, moi j’appelle ça “mesurer son kiki”.&lt;/p&gt;  &lt;p&gt;On va voir 2 usages différents de l’application: le premier, le plus simple, partager un statut. le deuxième: partager le lien, et en l’occurrence je vous propose de partager un lien directement vers l’application… L’utilisateur partageant ainsi le lien vers votre application, et ses contacts pourront directement lancer la version web de marketplace sur son PC, ou directement l’application Marketplace du téléphone (qui marche même depuis le hub people!)&lt;/p&gt;  &lt;h1&gt;Premier cas d’utilisation: partager un statut&lt;/h1&gt;  &lt;p&gt;Rien de plus facile: il suffit de faire appel à ShareStatusTask, c’est juste 3 lignes de code:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;ShareStatusTask &lt;/span&gt;sst = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ShareStatusTask&lt;/span&gt;();
sst.Status = &lt;span style="color: #a31515"&gt;&amp;quot;Somebody measured a Kiki! &amp;quot; &lt;/span&gt;+ TwitterScreenName + &lt;span style="color: #a31515"&gt;&amp;quot; scores &amp;quot; &lt;/span&gt;+ Score.ToString() + &lt;span style="color: #a31515"&gt;&amp;quot; on Klout!&amp;quot;&lt;/span&gt;;
sst.Show();&lt;/pre&gt;

&lt;p&gt;Ce qui nous donne l’expérience suivante :&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/8032.Screen_2D00_Capture_2D00_2_5F00_26690488.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen Capture (2)" border="0" alt="Screen Capture (2)" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/3733.Screen_2D00_Capture_2D00_2_5F00_thumb_5F00_24B838B4.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jusqu’ici c’est enfantin.. la partie suivante se corse un peu: nous allons essayer de partager un hotlink de notre application depuis le téléphone. &lt;/p&gt;

&lt;h1&gt;Second cas d’utilisation: partager un hotlink vers son application, depuis le téléphone&lt;/h1&gt;

&lt;p&gt;Pour cela, on utilise la ShareLinkTask, qui ressemble beaucoup à la ShareStatusTask:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;ShareLinkTask &lt;/span&gt;slt = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ShareLinkTask&lt;/span&gt;();
slt.Title = &lt;span style="color: #a31515"&gt;&amp;quot;klout kikimeter&amp;quot;&lt;/span&gt;;
slt.Message = &lt;span style="color: #a31515"&gt;&amp;quot;I use this app to measure my kiki online! check it out! &amp;quot;&lt;/span&gt;;
slt.LinkUri = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Uri&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;http://www.windowsphone.com/s?appid=2d2a85b1-d6ee-43f4-a302-4ada9fc606ea&lt;/span&gt;&lt;span style="color: #a31515"&gt;&amp;quot;&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;UriKind&lt;/span&gt;.Absolute);
slt.Show();&lt;/pre&gt;

&lt;p&gt;et voila!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/7450.Screen_2D00_Capture_5F00_4A7E394A.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen Capture" border="0" alt="Screen Capture" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/3733.Screen_2D00_Capture_5F00_thumb_5F00_48CD6D76.jpg" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En plus d’un message, vous pouvez voir qu’il faut un lien, et un titre. Hors au moment de la conception de l’application, le deeplink permettant d’ouvrir l’application Marketplace sur la bonne page n’existe pas encore (puisque votre application n’est pas publiée)!&lt;/p&gt;

&lt;p&gt;La méthode que j’avais trouvé à l’origine consiste à procéder en 2 temps… Une première publication de l’application, en mode cachée, créera l’ApplicationId qui permettra de publier une mise à jour après… et passer l’application en mode public. Ca crée un petit overhead, mais peu importe, car l’application n’a même pas besoin d’être complète! juste certifiable, car au fur et à mesure des mises à jour l’ApplicationId ne change plus.&lt;/p&gt;

&lt;p&gt;Mais depuis, &lt;a href="http://www.vivien-chevallier.com/"&gt;Vivien Chevallier&lt;/a&gt; nous a trouvé une idée beaucoup plus propre… &lt;a href="http://www.vivien-chevallier.com/Articles/how-to-get-your-windows-phone-7-application-id-directly-in-your-application"&gt;la solution sur son blog&lt;/a&gt; (un indice: il utilise le fichier WMAppManifest.xml)&lt;/p&gt;

&lt;p&gt;Voila, 2 petits trucs rapides pour rendre votre application un peu plus “sociale” et profiter du phénomène des réseaux sociaux pour faire votre pub!&lt;/p&gt;

&lt;p&gt;Si vous voulez aller plus loin dans la découverte des réseaux sociaux et de leur usage dans une application mobile, je vous invite également à regarder &lt;a href="http://www.microsoft.com/france/mstechdays/programmes/parcours.aspx#SessionID=efb15e48-7a29-446e-87e7-4553715a9bf5"&gt;le webcast de cette session&lt;/a&gt; sur les APIs des réseaux sociaux, par &lt;a href="http://blogs.developpeur.org/nicolas/"&gt;Nicolas Humman&lt;/a&gt; aux Techdays 2012.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10235362" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Marketplace/">Marketplace</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/SDK/">SDK</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Facebook/">Facebook</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/pratique/">pratique</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/r_E900_seaux+sociaux/">réseaux sociaux</category></item><item><title>[Windows Phone 7.5] Nokia fait son roadshow près de chez vous!</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/11/07/windows-phone-7-5-nokia-fait-son-roadshow-pr-232-s-de-chez-vous.aspx</link><pubDate>Mon, 07 Nov 2011 20:49:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10234738</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10234738</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10234738</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/11/07/windows-phone-7-5-nokia-fait-son-roadshow-pr-232-s-de-chez-vous.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/3580.clip_5F00_image001_5F00_533EB48C.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/6786.clip_5F00_image001_5F00_thumb_5F00_03858943.jpg" width="516" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nokia, qui vient de lancer ses Lumia 710 et 800, se lance dans un roadshow à travers toute la France, pour rencontrer les développeurs mobiles. L’occasion de se rencontrer et de se former en une journée (9h30 – 17h) au développement Windows Phone 7.5.&lt;/p&gt;  &lt;p&gt;Les dates!&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Jeudi 10 novembre à &lt;strong&gt;Marseille&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Jeudi 17 novembre à &lt;strong&gt;Toulouse&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Jeudi 24 novembre à &lt;strong&gt;Rennes&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Mercredi 30 novembre à &lt;strong&gt;Bordeaux&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Jeudi 1&lt;sup&gt;er&lt;/sup&gt; décembre à &lt;strong&gt;Strasbourg&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Vendredi 12 décembre à &lt;strong&gt;Lyon&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="center"&gt;&lt;b&gt;&lt;font size="5"&gt;&lt;a href="mailto:developpeur@nokia.com?subject=Inscription%20Training%20Nokia"&gt;&amp;gt;&amp;gt; Inscrivez-vous! &amp;lt;&amp;lt;&lt;/a&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10234738" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Ev_E800_nement/">Evènement</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Training/">Training</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Formation/">Formation</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Nokia/">Nokia</category></item><item><title>[Windows Phone 7.5] Tutoriel sur la réalité augmentée, partie 3: afficher les données augmentées à l’écran</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-sur-la-r-233-alit-233-augment-233-e-partie-3-afficher-les-donn-233-es-augment-233-es-224-l-233-cran.aspx</link><pubDate>Mon, 31 Oct 2011 15:36:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10231703</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10231703</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10231703</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-sur-la-r-233-alit-233-augment-233-e-partie-3-afficher-les-donn-233-es-augment-233-es-224-l-233-cran.aspx#comments</comments><description>&lt;p&gt;Cet article est le troisième et dernier d’une série qui constitue une introduction à la réalité augmentée avec Windows Phone 7.5 (Mango). Voici les liens vers les articles précédents:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-introduction-224-la-r-233-alit-233-augment-233-e-partie-1-les-concepts-et-les-maths.aspx" href="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-introduction-224-la-r-233-alit-233-augment-233-e-partie-1-les-concepts-et-les-maths.aspx"&gt;Tutoriel simple sur la réalité augmentée, partie 1: les concepts, et les maths&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-simple-sur-la-r-233-alit-233-augment-233-e-partie-2-les-apis.aspx" href="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-simple-sur-la-r-233-alit-233-augment-233-e-partie-2-les-apis.aspx"&gt;Tutoriel simple sur la réalité augmentée, partie 2: Les APIs&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Dans le dernier article, nous avons appris à récupérer la position de l’utilisateur. Il faut aussi récupérer la position GPS de ces points d’intérêt, mais ce n’est pas le but de cet article que de détailler les API de foursquare. Une fois qu’on a ces coordonnées, il faut commencer par calculer la direction de ces derniers par rapport à la position de l’utilisateur et du téléphone, afin de savoir si on doit les afficher ou pas à l’écran quand l’utilisateur pointe son téléphone dans une direction ou une autre :&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Venue &lt;/span&gt;v &lt;span style="color: blue"&gt;in &lt;/span&gt;ViewModel.Venues)
{
    &lt;span style="color: green"&gt;// Calcul du cap de la Venue en fonction de la position du téléphone
    &lt;/span&gt;&lt;span style="color: blue"&gt;double &lt;/span&gt;Bearing = &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Round(&lt;span style="color: #2b91af"&gt;ARHelper&lt;/span&gt;.CalculateBearing(v.Location, ViewModel.MyLocation ), 0);

    &lt;span style="color: green"&gt;// Calcul de la position de la Venue en fonction de l'angle, et de la distance, dans le repère XNA
    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Vector3 &lt;/span&gt;RelativeVenuePosition = &lt;span style="color: #2b91af"&gt;ARHelper&lt;/span&gt;.AngleToVector(Bearing, (WCSRadius * v.Distance / Radius));

    AddVenue(RelativeVenuePosition, v);
}&lt;/pre&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Le code ci-dessus calcul pour chaque point d’intérêt le cap en fonction de la position de l’utilisateur, et instancie un Vector3 représentant les coordonnées du point d’intérêt relativement à l’utilisateur. C’est de ce point dont on se servira par la suite pour calculer s’il doit être affiché ou pas !&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Vous remarquerez que le bout de code ci-dessus utilise quelques méthodes qui ne sont pas dans le framework. Ce sont des méthodes développées pour ne pas charger le code en calculs mathématiques de position : en voici le code :&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public static class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ARHelper
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public static double &lt;/span&gt;CalculateBearing(&lt;span style="color: #2b91af"&gt;GeoCoordinate &lt;/span&gt;Venue, &lt;span style="color: #2b91af"&gt;GeoCoordinate &lt;/span&gt;MyPosition)
    {
        &lt;span style="color: #2b91af"&gt;ARHelper&lt;/span&gt;.DegreeToRadian(MyPosition.Latitude - Venue.Latitude);

        &lt;span style="color: blue"&gt;double &lt;/span&gt;num1 = &lt;span style="color: #2b91af"&gt;ARHelper&lt;/span&gt;.DegreeToRadian(MyPosition.Longitude - Venue.Longitude);
        &lt;span style="color: blue"&gt;double &lt;/span&gt;num2 = &lt;span style="color: #2b91af"&gt;ARHelper&lt;/span&gt;.DegreeToRadian(Venue.Latitude);
        &lt;span style="color: blue"&gt;double &lt;/span&gt;num3 = &lt;span style="color: #2b91af"&gt;ARHelper&lt;/span&gt;.DegreeToRadian(MyPosition.Latitude);
        &lt;span style="color: blue"&gt;double &lt;/span&gt;angle = &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Atan2(&lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Sin(num1) * &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Cos(num3), &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Cos(num2) 
            * &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Sin(num3) - &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Sin(num2) * &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Cos(num3) * &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Cos(num1));
            
        &lt;span style="color: blue"&gt;return &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ARHelper&lt;/span&gt;.RadianToDegree(angle) + 180.0;
    }

    &lt;span style="color: blue"&gt;public static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Vector3 &lt;/span&gt;AngleToVector(&lt;span style="color: blue"&gt;double &lt;/span&gt;inAngle, &lt;span style="color: blue"&gt;double &lt;/span&gt;inRadius)
    {
        &lt;span style="color: blue"&gt;double &lt;/span&gt;num = &lt;span style="color: #2b91af"&gt;ARHelper&lt;/span&gt;.DegreeToRadian(inAngle - 90.0);
        &lt;span style="color: blue"&gt;return new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Vector3&lt;/span&gt;((&lt;span style="color: blue"&gt;float&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Round(inRadius * &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Cos(num)), 0.0f, (&lt;span style="color: blue"&gt;float&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Round(inRadius * &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Sin(num)));
    }

    &lt;span style="color: blue"&gt;public static double &lt;/span&gt;DegreeToRadian(&lt;span style="color: blue"&gt;double &lt;/span&gt;angle)
    {
        &lt;span style="color: blue"&gt;return &lt;/span&gt;3.14159265358979 * angle / 180.0;
    }

    &lt;span style="color: blue"&gt;public static double &lt;/span&gt;RadianToDegree(&lt;span style="color: blue"&gt;double &lt;/span&gt;angle)
    {
        &lt;span style="color: blue"&gt;return &lt;/span&gt;angle * 57.2957795130823;
    }
}&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Projeter les points d’intérêt sur l’écran&lt;/h3&gt;

&lt;p&gt;Il ne reste plus qu’à afficher les points à l’écran ! Comme dit plus tôt, on va rafraichir l’affichage à chaque changement de position du téléphone on va donc écrire le restant du code dans la méthode qui sert de handler pour l’évènement de changement de position du spatial framework. C’est ici qu’on va faire tous les calculs de projection des points sur l’écran, en fonction de leur position relative qu’on a calculé plus tôt. On va donc retrouver toutes nos matrices… Allons-y petit à petit :&lt;/p&gt;

&lt;p&gt;D’abord, on calcule la position du téléphone dans l’espace :&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Matrix &lt;/span&gt;attitude = &lt;span style="color: #2b91af"&gt;Matrix&lt;/span&gt;.CreateRotationX(&lt;span style="color: #2b91af"&gt;MathHelper&lt;/span&gt;.PiOver2) * motionReading.Attitude.RotationMatrix;&lt;/pre&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Le telephone étant tenu horizontalement, il faut appliquer une rotation e 90° sur l’axe des X sur la matrice de position u téléphone qui nous est renvoyée directement par le Spatial Framework.&lt;/p&gt;

&lt;p&gt;Ensuite, pour chacun des points, il va falloir créer une matrice qui décrit sa position en 3D dans le repère utilisé pour faire la projection :&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Matrix &lt;/span&gt;world = &lt;span style="color: #2b91af"&gt;Matrix&lt;/span&gt;.CreateWorld(points[i], &lt;span style="color: #2b91af"&gt;Vector3&lt;/span&gt;.UnitZ, &lt;span style="color: #2b91af"&gt;Vector3&lt;/span&gt;.UnitX);&lt;/pre&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Il ne reste plus qu’à projeter le point sur l’écran:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Vector3 &lt;/span&gt;projected = viewport.Project(&lt;span style="color: #2b91af"&gt;Vector3&lt;/span&gt;.Zero, projection, view, world * attitude);&lt;/pre&gt;


&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Une fois la projection faite, si le point est dans le champ de vision on les affiche, sinon on les masque:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(projected.Z &amp;gt; 1 || projected.Z &amp;lt; 0)
{
    AugmentedLabels[i].Visibility = System.Windows.&lt;span style="color: #2b91af"&gt;Visibility&lt;/span&gt;.Collapsed;
}
&lt;span style="color: blue"&gt;else
&lt;/span&gt;{
    AugmentedLabels[i].Visibility = System.Windows.&lt;span style="color: #2b91af"&gt;Visibility&lt;/span&gt;.Visible;

    &lt;span style="color: green"&gt;// Centrage du contrôle sur le point
    &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TranslateTransform &lt;/span&gt;tt = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TranslateTransform&lt;/span&gt;();
    tt.X = projected.X - (AugmentedLabels[i].RenderSize.Width / 2);
    tt.Y = projected.Y - (AugmentedLabels[i].RenderSize.Height / 2);
    AugmentedLabels[i].RenderTransform = tt;
}&lt;/pre&gt;




&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Ici le tableau AugmentedLabels contient les éléments graphiques à afficher (en l’occurrence, un UserControl avec une icône, un nom, et une distance.&lt;/p&gt;

&lt;p&gt;Et voilà ! Nous savons maintenant comment marche la réalité augmentée en mode « viewfinder » dans Windows Phone 7.5. &lt;/p&gt;

&lt;p&gt;Pour ceux qui souhaiteraient industrialiser leurs développements, il est possible de dériver un petit framework de tout ça… ou alors d’en utiliser un existant, comme celui-ci : &lt;a href="http://gart.codeplex.com/"&gt;Geo Augmente Reality Toolkit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Vous pouvez retrouver l’intégralité de ce tutorial au format word ainsi que l’application d’exemple sur le skydrive suivant:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="https://skydrive.live.com/embedicon.aspx/.Public/Tutoriel%20R%c3%a9alit%c3%a9%20Augment%c3%a9e%20Mango?cid=1544e7c8d3f81201&amp;amp;sc=documents" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Happy coding !&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10231703" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/R_E900_alit_E900_+Augment_E900_e/">Réalité Augmentée</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Tutoriel/">Tutoriel</category></item><item><title>[Windows Phone 7.5] Tutoriel simple sur la réalité augmentée, partie 2: Les APIs</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-simple-sur-la-r-233-alit-233-augment-233-e-partie-2-les-apis.aspx</link><pubDate>Mon, 31 Oct 2011 15:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10231696</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10231696</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10231696</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-simple-sur-la-r-233-alit-233-augment-233-e-partie-2-les-apis.aspx#comments</comments><description>&lt;p&gt;Cet article est le deuxième d’une série qui constituent une introduction à la réalité augmentée avec Windows Phone 7.5. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-introduction-224-la-r-233-alit-233-augment-233-e-partie-1-les-concepts-et-les-maths.aspx" href="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-introduction-224-la-r-233-alit-233-augment-233-e-partie-1-les-concepts-et-les-maths.aspx"&gt;Tutoriel simple sur la réalité augmentée, partie 1: les concepts, et les maths&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-sur-la-r-233-alit-233-augment-233-e-partie-3-afficher-les-donn-233-es-augment-233-es-224-l-233-cran.aspx" href="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-sur-la-r-233-alit-233-augment-233-e-partie-3-afficher-les-donn-233-es-augment-233-es-224-l-233-cran.aspx"&gt;Tutoriel simple sur la réalité augmentée partie 3: afficher les données augmentées à l'écran&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Voyons maintenant les API qui nous permettent d’utiliser les différents composants utiles du téléphone, à savoir la caméra, le spatial framework qui permet d’avoir la position du téléphone et les APIs XNA permettant de réaliser les transformations. &lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;h3&gt;Accéder au flux de la camera&lt;/h3&gt;  &lt;p&gt;C’est la partie la plus simple ! en effet avec Mango on dispose de 2 APIs différentes : la classe PhotoCamera, spécifique à Windows Phone, permettant de contrôler la caméra, qu’elle soit frontale ou au dos du téléphone, le flash, le bouton de prise de photo, etc… Une autre API existe, l’API héritée de Silverlight 4, qui garantit la compatibilité avec les applications Desktop, dont nous n’avons cure… &lt;/p&gt;  &lt;p&gt;Pour afficher le flux de la caméra à l’écran il faut définir une zone d’affichage, qui sera rectangulaire : pour cela, il suffit de définir un rectangle, dont nous définirons la source du contenu en code :&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Rectangle&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;VideoBrush &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;viewfinderBrush&amp;quot; /&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Rectangle.Fill&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Rectangle&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160; &lt;/p&gt;

&lt;p&gt;Et pour le code behind : &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;PhotoCamera &lt;/span&gt;camera = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;PhotoCamera&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;CameraType&lt;/span&gt;.Primary);
viewfinderBrush.SetSource(camera);&lt;/pre&gt;

&lt;p&gt;&amp;#160; &lt;/p&gt;

&lt;p&gt;Ces quelques lignes suffisent à afficher le flux vidéo à l’écran. Il faut savoir qu’on peut intercepter chacune des frames de la caméra pour y appliquer un traitement, mais cela ne nous intéresse pas dans cet article. C’est en revanche un élément clef pour l’autre type de réalité augmentée, qui nécessite d’appliquer un traitement à l’image pour détecter un tag par exemple. &lt;/p&gt;

&lt;p&gt;&amp;#160; &lt;/p&gt;

&lt;h3&gt;Déterminer la position du téléphone dans l’espace&lt;/h3&gt;

&lt;p&gt;Maintenant que nous sommes en mesure d’afficher le code de la camera, il nous faut récupérer la position du téléphone. Pour cela nous allons utiliser un spatial framework, c’est-à-dire une API qui permet d’intégrer les fonctionnalités des différents capteurs du téléphone (accéléromètre, boussole, et éventuellement gyroscope), et d’y appliquer un certain nombre de traitements (des filtres par exemple) pour lisser le signal. Comme tous les capteurs dans Windows Phone 7 ce spatial framework dispose d’une interface asynchrone : on va donc l’instantier, le configurer pour recevoir un certain nombre de positions par seconde, et s’abonner à l’évènement de changement de position, avant de le lancer. C’est dans la méthode associé à cet évènement qu’on écrira le code permettant d’afficher les points d’intérêt à l’écran, étant donné que la position de ces points d’intérêt sur l’écran change en fonction de la position du capteur !&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Motion &lt;/span&gt;motion = &lt;span style="color: blue"&gt;null&lt;/span&gt;;

&lt;span style="color: blue"&gt;if &lt;/span&gt;(!&lt;span style="color: #2b91af"&gt;Motion&lt;/span&gt;.IsSupported)
{
    &lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: #a31515"&gt;&amp;quot;Motion API Not supported :(&amp;quot;&lt;/span&gt;);
    &lt;span style="color: blue"&gt;return&lt;/span&gt;;
}

&lt;span style="color: blue"&gt;if &lt;/span&gt;(motion == &lt;span style="color: blue"&gt;null&lt;/span&gt;)
{
    motion = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Motion&lt;/span&gt;();
    motion.TimeBetweenUpdates = &lt;span style="color: #2b91af"&gt;TimeSpan&lt;/span&gt;.FromMilliseconds(66); &lt;span style="color: green"&gt;// 15 FPS, largement suffisant
    &lt;/span&gt;motion.CurrentValueChanged += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;SensorReadingEventArgs&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;MotionReading&lt;/span&gt;&amp;gt;&amp;gt;(motion_CurrentValueChanged);

    &lt;span style="color: blue"&gt;try
    &lt;/span&gt;{
        motion.Start();
    }
    &lt;span style="color: blue"&gt;catch &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Exception &lt;/span&gt;ex)
    {
        &lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: #a31515"&gt;&amp;quot;Impossible de démarrer l'API Motion! &amp;quot; &lt;/span&gt;+ ex.Message);
    }
}&lt;/pre&gt;

&lt;p&gt;&amp;#160; &lt;/p&gt;

&lt;p&gt;Vous remarquerez qu’avant toute chose, on teste si l’API Motion est supportée : en effet, pour fonctionner le spatial framework a besoin au moins d’un accéléromètre et d’une boussole… hors cette dernière est optionnelle dans les chassis Windows Phone 7 (de même que le gyroscope). En tout état de cause, sans boussole, impossible de connaitre l’orientation du téléphone et donc de l’utiliser pour faire de la réalité augmentée… Le gyroscope quand il est présent amène quant à lui une bien meilleure précision dans la captation des mouvements du téléphone. &lt;/p&gt;

&lt;p&gt;&amp;#160; &lt;/p&gt;

&lt;h3&gt;Déterminer la position GPS et la direction des points d’intérêt&lt;/h3&gt;

&lt;p&gt;Notre application exige qu’on connaisse la position de l’utilisateur afin de situer les points d’intérêt autour de lui. C’est chose très facile avec Windows Phone 7, grace à l’API GeoCoordinateWatcher. Encore une fois elle est asynchrone : il faut donc l’instancier, s’abonner à l’évènement de changement de position et démarrer le capteur :&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;GeoCoordinateWatcher &lt;/span&gt;gcw = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;GeoCoordinateWatcher&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;GeoPositionAccuracy&lt;/span&gt;.High);
&lt;span style="color: blue"&gt;if &lt;/span&gt;(gcw.Permission == &lt;span style="color: #2b91af"&gt;GeoPositionPermission&lt;/span&gt;.Granted)
{
    gcw.MovementThreshold = 20;
    gcw.PositionChanged += &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;GeoPositionChangedEventArgs&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;GeoCoordinate&lt;/span&gt;&amp;gt;&amp;gt;(gcw_PositionChanged);
    gcw.Start();
}
&lt;span style="color: blue"&gt;else
&lt;/span&gt;{ 
    &lt;span style="color: #2b91af"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: #a31515"&gt;&amp;quot;You denied location permission - please enter a location in the textbox&amp;quot;&lt;/span&gt;);
}&lt;/pre&gt;

&lt;pre&gt;&amp;#160;&lt;/pre&gt;

&lt;p&gt;Attention à bien vérifier que l’utilisateur a bien autorisé sa géolocalisation avant ! &lt;/p&gt;

&lt;p&gt;&amp;#160; &lt;/p&gt;

&lt;p&gt;Nous avons étudié les concepts mathématiques dans la partie 1, les APIs dans la partie 2, il ne reste plus qu’à utiliser tout cela ensemble pour obtenir une application! c’est l’objectif de la partie 3….&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10231696" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/R_E900_alit_E900_+Augment_E900_e/">Réalité Augmentée</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Tutoriel/">Tutoriel</category></item><item><title>[Windows Phone 7.5] Tutoriel simple sur la réalité augmentée, partie 1: les concepts, et les maths</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-introduction-224-la-r-233-alit-233-augment-233-e-partie-1-les-concepts-et-les-maths.aspx</link><pubDate>Mon, 31 Oct 2011 15:13:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10231688</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10231688</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10231688</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-introduction-224-la-r-233-alit-233-augment-233-e-partie-1-les-concepts-et-les-maths.aspx#comments</comments><description>&lt;p&gt;Avec la version 7.1 du SDK Windows Phone (Mango), l’intégration de la réalité augmentée dans les applications mobiles va devenir beaucoup plus facile : de nouveaux composants font leur apparition et sont conçus pour rendre très simple le développement de ce type d’interface. Mais d’abord, intéressons-nous à ce qu’est la réalité augmentée, et aux concepts qu’il faut maitriser avant de s’attaquer au code.&lt;/p&gt;  &lt;p&gt;Le principe de base de la réalité augmentée est d’afficher en surimpression d’une image « réelle » (issue d’une caméra par exemple) des informations purement digitales. Les deux usages les plus courant de la réalité augmentée sont :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;l’utilisation du téléphone en mode « viewfinder », par exemple pour repérer les directions de points d’intérêt autour de l’utilisateur qui pointe le téléphone dans une certaine direction. &lt;/li&gt;    &lt;li&gt;L’utilisation du téléphone pour capter un « tag » ou un point visuel reconnaissable, sur lequel on affiche des informations en rapport avec ce point : c’est le cas de nombreux jeux par exemple qui se servent de ce principe pour intégrer le gameplay dans un environnement réel. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Dans cet série d’articles, nous allons nous intéresser au premier cas d’utilisation, à savoir le téléphone en mode « viewfinder ». &lt;/p&gt;  &lt;h3&gt;Les concepts de 3D et de mathématiques à comprendre&lt;/h3&gt;  &lt;p&gt;La première chose à comprendre, c’est qu’il nous faut appliquer un certain traitement aux points d’intérêts : en effet nous voulons représenter dans un espace 2D (l’écran du téléphone) un certain nombre d’informations liées à des coordonnées 3D (le monde réel : latitude, longitude, distance, etc). Il faut donc projeter ces points sur l’écran. Et finalement, projeter dans un espace en 2D des points d’un monde en 3D, on le fait depuis longtemps dans le monde des jeux vidéos. On va donc reprendre le vocabulaire de ce monde :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;L’œil de l’utilisateur correspond à une &lt;b&gt;caméra&lt;/b&gt; : c’est un point, qui dispose de coordonnées dans un monde en 3D. &lt;/li&gt;    &lt;li&gt;Le &lt;b&gt;viewport&lt;/b&gt;, c’est l’écran du téléphone : la surface sur laquelle on va dessiner les éléments, s’ils sont dans une certaine zone. &lt;/li&gt;    &lt;li&gt;Cette certaine zone s’appelle le &lt;b&gt;frustum&lt;/b&gt;, et il a la forme d’une pyramide tronquée au sommet&amp;#160; (le sommet étant l’œil). C’est la zone qui est comprise entre l’écran, et une limite au loin qu’on appelle le &lt;b&gt;far plane&lt;/b&gt; (l’écran devenant le &lt;b&gt;near plane&lt;/b&gt;). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lorsqu’un objet sera contenu dans le frustum alors il sera projeté sur le viewport dans la direction de l’œil de l’utilisateur.&lt;/p&gt;  &lt;p&gt;Pour simplifier un schéma pas forcément trivial, on considérera que l’œil de l’utilisateur est à une distance fixe du viewport, dans l’axe de la normale à son centre (le vecteur qui part du centre du rectangle, perpendiculairement au plan du rectangle). Il n’existe de toute façon pas de moyen simple de savoir où se trouve l’œil de l’utilisateur par rapport à l’écran… A moins de faire du face tracking avec la caméra frontale, ce qui n’est pas l’objectif de cet article.&lt;/p&gt;  &lt;p&gt;Tout cela peut se résumer à ce schéma :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/2480.Frustum_5F00_4FEEF06D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Frustum" border="0" alt="Frustum" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/1423.Frustum_5F00_thumb_5F00_735B6F05.png" width="440" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette projection doit bien entendu également tenir compte de la position du téléphone : en effet, dans une localisation d’un objet en 3D (donc potentiellement, plus haut ou plus bas que l’utilisateur) il faut tenir compte de la position du téléphone (qu’il faut de toute façon connaitre pour savoir dans quel sens l’utilisateur regarde !!).&lt;/p&gt;  &lt;p&gt;Pour symboliser la position de la caméra, du téléphone, des points d’intérêt, et les transformations qu’il faut y appliquer pour les projeter sur l’écran, un seul outil…&lt;strong&gt; les matrices&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Pas besoin de se replonger dans un cours d’algèbre linéaire pour faire de la réalité augmentée cependant ! il faut juste accepter le fait qu’une position peut être codée par un vecteur 3D (donc composé des 3 coordonnées x, y et z) auquel on adjoint en général une 4&lt;sup&gt;ème&lt;/sup&gt; composante nécessaire pour les calculs qu’on appellera w. Par ailleurs il est possible de coder dans une matrice 4x4 à la fois des rotations, des translations, des mises à l’échelle (scaling), et des projections. Encore une fois pas besoin de comprendre pourquoi et comment ça marche (même si c’est très intéressant… si vous voulez en savoir plus, rendez-vous dans les ressources au bout de ce document, nombre d’articles intéressant y figurent pour avoir plus de contexte).&lt;/p&gt;  &lt;p&gt;Si on résume tout ça : je prends des points en 3D symbolisés par des vecteurs, que je multiplie par des matrices symbolisant des transformations, pour avoir de nouveaux vecteurs, dans un repère 2D : l’écran du téléphone. Nous verrons dans la suite que les API de Windows Phone 7 notamment dans XNA permettent de faire ça très simplement.&lt;/p&gt;  &lt;p&gt;Le prochain article de cette série sera consacrée aux APIs de Windows Phone dont on va se servir, à savoir la Caméra, la classe Motion (aussi appelée Spatial Framework) et le GPS&lt;/p&gt;  &lt;p&gt;Voici les liens vers les articles suivants:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-simple-sur-la-r-233-alit-233-augment-233-e-partie-2-les-apis.aspx" href="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-simple-sur-la-r-233-alit-233-augment-233-e-partie-2-les-apis.aspx"&gt;Tutoriel simple sur la réalité augmentée, partie 2: les APIs&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-sur-la-r-233-alit-233-augment-233-e-partie-3-afficher-les-donn-233-es-augment-233-es-224-l-233-cran.aspx" href="http://blogs.msdn.com/b/pierreca/archive/2011/10/31/windows-phone-7-5-tutoriel-sur-la-r-233-alit-233-augment-233-e-partie-3-afficher-les-donn-233-es-augment-233-es-224-l-233-cran.aspx"&gt;Tutoriel simple sur la réalité augmentée, partie 3: afficher les données augmentées à l'écran&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10231688" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/R_E900_alit_E900_+Augment_E900_e/">Réalité Augmentée</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Tutoriel/">Tutoriel</category></item><item><title>Windows Phone 7 Design Day: tout pour comprendre et vous former au design Metro, le 8 novembre au campus Microsoft</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/10/28/windows-phone-7-design-day-tout-pour-comprendre-et-vous-former-au-design-metro-le-8-novembre-au-campus-microsoft.aspx</link><pubDate>Fri, 28 Oct 2011 16:24:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10231118</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10231118</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10231118</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/10/28/windows-phone-7-design-day-tout-pour-comprendre-et-vous-former-au-design-metro-le-8-novembre-au-campus-microsoft.aspx#comments</comments><description>&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496878&amp;amp;Culture=fr-FR"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/4401.clip_5F00_image002_5F00_48CBAF20.gif" width="441" height="269" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Le 8 novembre, sur le Campus Microsoft à Issy-les-Moulineaux, on vous invite à rencontrer un des “Senior UX Designer” à l’origine de l’interface Metro de Windows Phone 7: &lt;a href="http://ux.artu.tv/"&gt;Arturo Toledo&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;L’agenda est le suivant:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;10h: Bienvenue!&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;10h15: metro: the foundation&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Comprendre Metro, l’agencement, la typographie, les animations, les spécificités d’une expérience utilisateur sur téléphone&lt;/li&gt;      &lt;li&gt;11h: Pause!&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;11h15: think: sketch, wireframe, prototype&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Brainstorming créatif, techniques… la réflexion avant la conception&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;12h: design: visual, interaction, motion&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Le langage visuel, les graphismes, les animations et les patterns d’interactions&lt;/li&gt;      &lt;li&gt;12h45: déjeuner!&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;14h: refine: best practices&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;bonnes pratiques, amélioration des performances perçues, utiliser les fonctionnalités du téléphone…&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;14h45: make it XAML&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;importer du contenu dans Expression Blend, agencer et créer des contrôles…&lt;/li&gt;      &lt;li&gt;15h30: pause!&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;15h45: workshop&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;démarrer une nouvelle application ou faites vous conseiller sur votre design!&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Voila quelques formations au design metro et quelques sessions sur le sujet auxquelles je participe, mais jamais encore je n’avais vu un planning d’évènement sur le sujet aussi bien gaulé (gauler étant un terme technique, bien entendu &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Clignement d&amp;#39;œil" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/1261.wlEmoticon_2D00_winkingsmile_5F00_0D97D355.png" /&gt;). Que vous soyez développeur Windows Phone 7 ou pas, je pense que vous allez en prendre plein la vue… il faudra vraiment y être!&lt;/p&gt;  &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496878&amp;amp;Culture=fr-FR"&gt;L’inscription c’est par ici!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10231118" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Ev_E800_nement/">Evènement</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Metro/">Metro</category></item><item><title>L’Accélérateur Windows Phone et les friday labs : du nouveau pour les développeurs mobiles</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/10/28/l-acc-233-l-233-rateur-et-les-friday-labs-du-nouveau-pour-les-d-233-veloppeurs-windows-phone-7.aspx</link><pubDate>Fri, 28 Oct 2011 15:37:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10231091</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10231091</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10231091</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/10/28/l-acc-233-l-233-rateur-et-les-friday-labs-du-nouveau-pour-les-d-233-veloppeurs-windows-phone-7.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/0361.image_5F00_0A205755.png"&gt;&lt;img title="image" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-13-metablogapi/4812.image_5F00_thumb_5F00_3D0FE7BC.png" width="522" height="235" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/fr-fr/accelerateur-windows-phone-7.aspx"&gt;L’Accélérateur Windows Phone,&lt;/a&gt; c’est une série de moyens mis à votre disposition, vous, les développeurs, pour vous aider tout au long de votre parcours sur la plateforme Windows Phone 7: formation, conception de l’application, compréhension du marketplace et de l’app-hub, jusqu’à la publication!&lt;/p&gt;  &lt;p&gt;Derrière ce programme se cache une “vraie personne” (pas un robot quoi) qui voue ses journées à vous aider, et qui va tacher de répondre à toutes vos requêtes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Des ressources techniques&lt;/strong&gt;: accès à l’app-hub offert, téléphones à disposition, support… &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Du coaching&lt;/strong&gt;: que ce soit de l’aide sur un point spécifique du développement, ou de la formation plus avancée (et gratuite) on devrait pouvoir vous aider à ne jamais vous sentir bloqué dans votre développement! &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;De la visibilité&lt;/strong&gt;: que ce soit à l’évènement Le Web 11, sur Marketplace, ou à travers la réalisation d’une vidéo de promotion de votre application. Faisons en sorte que votre application soit un succès dès sa publication! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/fr-fr/windowsphone/friday-labs-windows-phone-7.aspx"&gt;Les friday labs&lt;/a&gt;, c’est tout simplement les portes de Microsoft France qui s’ouvrent tous les vendredis entre 10h et 18h pour les développeurs Windows Phone 7 qui souhaitent rencontrer des experts du développement Windows Phone 7, que ce soit pour du support technique, des feedbacks avisés sur une application, passer la certification… Bref, c’est l’occasion d’échanger, au sein du Microsoft Technology Center, sur le développement Windows Phone 7. N’oubliez pas de &lt;a href="http://msdn.microsoft.com/fr-fr/windowsphone/friday-labs-windows-phone-7.aspx"&gt;vous inscrire sur le site&lt;/a&gt; avant de passer!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10231091" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/msdn/">msdn</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/acc_E900_l_E900_rateur/">accélérateur</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Friday+labs/">Friday labs</category></item><item><title>[App-Hub // Mango] Finalement, il sera possible de mettre à jour à la fois la version 7.0 et la version 7.1 de votre application sur l’App-Hub</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/09/21/app-hub-mango-finalement-il-sera-possible-de-mettre-224-jour-224-la-fois-la-version-7-0-et-la-version-7-1-de-votre-application-sur-l-app-hub.aspx</link><pubDate>Wed, 21 Sep 2011 09:37:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10214636</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10214636</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10214636</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/09/21/app-hub-mango-finalement-il-sera-possible-de-mettre-224-jour-224-la-fois-la-version-7-0-et-la-version-7-1-de-votre-application-sur-l-app-hub.aspx#comments</comments><description>&lt;p&gt;Une bonne nouvelle annoncée hier &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/09/20/submit-windows-phone-7-5-apps-today-update-7-0-apps-in-october.aspx"&gt;sur le blog développeurs Windows Phone 7&lt;/a&gt;, qui fait suite à un post sur &lt;a href="http://blogs.msdn.com/b/pierreca/archive/2011/08/29/windows-phone-7-passage-224-mango-quelle-version-pour-qui-sur-marketplace.aspx"&gt;ce qui arrive quand on met une application à jour vers Mango&lt;/a&gt;. Le premier scénario était qu’à partir du moment ou on met à jour une application vers Mango, il n’est plus possible de mettre à jour la version 7.0. Le groupe responsable de &lt;a href="http://create.msdn.com"&gt;l’App-Hub&lt;/a&gt; a travaillé dur pour faire sauter cette limitation, et c’est avec plaisir que je relaie la nouvelle : il sera maintenant possible de faire des mises à jour à la fois pour la version 7.0 et pour la version 7.1. Cette possibilité sera offerte dès fin Octobre et devrait débloquer pas mal de développeurs qui attendaient pour poster la mise à jour “Mango” de leur application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10214636" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Marketplace/">Marketplace</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/AppHub/">AppHub</category></item><item><title>[Windows Phone 7] Du contenu pour faciliter la vie des développeurs Nokia</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/09/21/windows-phone-7-du-contenu-pour-faciliter-la-vie-des-d-233-veloppeurs-nokia.aspx</link><pubDate>Wed, 21 Sep 2011 09:26:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10214632</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10214632</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10214632</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/09/21/windows-phone-7-du-contenu-pour-faciliter-la-vie-des-d-233-veloppeurs-nokia.aspx#comments</comments><description>&lt;p&gt;L’API Mapping tool, déjà présenté sur ce blog est un outil proposé par l’équipe interopérabilité de Microsoft qui permet aux développeurs &lt;a href="http://wp7mapping.interoperabilitybridges.com/Home/Library?source=iPhone"&gt;iPhone&lt;/a&gt; et &lt;a href="http://wp7mapping.interoperabilitybridges.com/Home/Library?source=Android"&gt;Android&lt;/a&gt;, et à partir d’aujourd’hui &lt;a href="http://wp7mapping.interoperabilitybridges.com/Library?source=Qt"&gt;Symbian (Qt)&lt;/a&gt; de retrouver l’équivalent de leurs API favorites dans le kit de développement Windows Phone 7.&lt;/p&gt;  &lt;p&gt;En plus de l’API Mapping Tool, l’équipe d’interop a aussi publié un guide &lt;a href="http://windowsphone.interoperabilitybridges.com/articles/windows-phone-7-guide-for-symbian-qt-application-developers"&gt;“Windows Phone 7 Guide for Symbian Qt application developers”&lt;/a&gt; qui permet de comprendre comment faire évoluer sa compréhension de la plateforme Nokia vers Windows Phone 7, en parlant de l’environnement de développement, des langages de programmation, de l’ergonomie, de Metro, etc.&lt;/p&gt;  &lt;p&gt;Tout ce contenu est annoncé aujourd’hui même sur le blog développeurs Windows Phone 7, en kickoff de &lt;a href="http://www.cvent.com/events/overview-nokia-windows-phone-training/event-summary-2842a9f2472742e79fa4abf9e87ef3d5.aspx"&gt;la tournée Nokia / Windows Phone 7&lt;/a&gt; qui débute par l’évènement parisien aujourd’hui!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10214632" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Nokia/">Nokia</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Qt/">Qt</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Symbian/">Symbian</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/API+Mapping+Tool/">API Mapping Tool</category></item><item><title>Rencontrons-nous aux Microsoft Days pour parler Mango, à Paris ou en régions!</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/09/06/rencontrons-nous-aux-microsoft-days-pour-parler-mango-224-paris-ou-en-r-233-gions.aspx</link><pubDate>Tue, 06 Sep 2011 17:10:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10206843</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10206843</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10206843</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/09/06/rencontrons-nous-aux-microsoft-days-pour-parler-mango-224-paris-ou-en-r-233-gions.aspx#comments</comments><description>&lt;p&gt;La tournée des Microsoft Days reprend, comme chaque année, avec un tour de France pour venir voir clients et partenaires et parler de l’actualité du développement, et de l’IT en entreprise. Cette année, je vous propose qu’on se retrouve autour de 2 sessions sur Mango au cours de la journée:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;A l’attention des utilisateurs, des décideurs et des responsables d’infrastructure:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Windows Phone&amp;#160; « Mango » en Entreprise&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;« Mango » est le nom de code de la version 7.5 de Windows Phone, et c’est une mise à jour majeure, à la fois pour les utilisateurs et les entreprises. &lt;/p&gt;  &lt;p&gt;Encore plus simple et intuitif, Windows Phone « Mango » améliore l’expérience du Smartphone autour des communications, de la productivité, des applications et du Web. En plus d’une expérience utilisateur peaufinée, de nombreuses nouvelles fonctionnalités ont été ajoutées, rendant le téléphone plus efficace, et plus facilement intégrable en Entreprise : Le support d’Exchange, de Sharepoint, l’intégration avec Office365, la possibilité de déployer des applications métiers… toutes ces fonctionnalités vous seront présentés dans une session factuelle et riche en démonstrations.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;A l’attention des développeurs:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Nouveaux scénarios d’applications avec le SDK Windows Phone 7 « Mango »&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Avec l’arrivée de la mise à jour « Mango », de nouveaux horizons s’offrent aux développeurs d’applications mobiles. Que vous ayez déjà pris le virage Windows Phone 7, ou que vous soyez encore à l’étude du marché, ce nouveau SDK va vous permettre d’établir de nouveaux scénarios : réalité augmentée avec l’intégration du flux vidéo, de Silverlight et XNA et du Spatial Framework, synchronisation online/offline avec le multitasking et la base de donnée locale, meilleure intégration dans l’expérience native du téléphone, etc. Vos applications métiers ne seront pas en reste puisqu’il est maintenant possible d’opter pour une distribution privée des applications. Une session technique et inspirante à destination des développeurs de tous niveaux, mobiles, ou pas !&lt;/p&gt;  &lt;p&gt;Les dates à retenir:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Nantes&lt;/strong&gt; : 28 Septembre &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Paris&lt;/strong&gt; : 4 Octobre &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Strasbourg&lt;/strong&gt; : 13 Octobre &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lille&lt;/strong&gt; : 19 Octobre &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Marseille&lt;/strong&gt; : 3 Novembre &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lyon&lt;/strong&gt; : 9 Novembre &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Bordeaux&lt;/strong&gt; : 15 Novembre &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Pour vous inscrire il faut aller sur &lt;a href="http://www.microsoft.com/france/microsoft-days/"&gt;le site des Microsoft Days&lt;/a&gt; et s’enregistrer aux rencontre techniques !&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10206843" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Ev_E800_nement/">Evènement</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/MS+Days/">MS Days</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category></item><item><title>[Windows Phone 7–Mango] S’assurer que votre application marchera avec Mango : les “breaking changes”.</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/09/05/windows-phone-7-mango-s-assurer-que-votre-application-marchera-avec-mango-les-breaking-changes.aspx</link><pubDate>Mon, 05 Sep 2011 11:35:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10206286</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10206286</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10206286</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/09/05/windows-phone-7-mango-s-assurer-que-votre-application-marchera-avec-mango-les-breaking-changes.aspx#comments</comments><description>&lt;p&gt;Avec le nouveau SDK pour Mango, le WebClient, le contrôle WebBrowser et la ListBox ont subi des changements qui peuvent impacter le bon fonctionnement de votre application. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Le WebClient&lt;/h2&gt;  &lt;p&gt;Avant le WebClient revenait systématiquement dans le thread UI, peu importe le thread appelant. Cela change, et maintenant, il va revenir dans son thread appelant. Cela a un impact direct sur toutes les applications qui manipulent la couche UI depuis le callback du WebClient sans utiliser le dispatcher (c’est-à-dire, plein de gens !). Cela va maintenant provoquer une exception d’accès (Invalid cross-thread access).&lt;/p&gt;  &lt;p&gt;Pour y remédier, la solution de facilité consiste à enfermer toutes vos manipulations de l’UI dans des appels au Dispatcher :&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Deployment&lt;/span&gt;.Current.Dispatcher.BeginInvoke(() =&amp;gt;
{
    &lt;span style="color: green"&gt;// Votre code qui manipule l’UI ici
&lt;/span&gt;});&lt;/pre&gt;

&lt;p&gt;Attention, cette méthode permet de refaire marcher rapidement votre application, mais il faut bien avoir conscience que manipuler l’UI de cette manière n’est de toutes façons pas une bonne pratique ! Votre WebClient devrait travailler dans votre couche d’accès aux données qui devrait certainement être séparée de votre couche UI (par le pattern que vous voulez !).&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Le contrôle WebBrowser&lt;/h2&gt;

&lt;p&gt;Autre contrôle impacté par le passage à Mango, le contrôle WebBrowser. Mango va effectivement utiliser IE9 pour se mettre le plus à jour possible quant au support du HTML5 et le contrôle WebBrowser va aussi bénéficier de cette amélioration : toutefois comme tous les développeurs Web le savent, nouveau browser signifie souvent qu’il faut retester le code javascript/html/css pour s’assurer du rendu. Même si dès le départ, les expériences à base de contrôle WebBrowser ont été déconseillées (sauf pour afficher une page web évidement), certaines applications ont fait le choix de masquer leur site web mobile sous une expérience native… et dans ce cas, l’impact n’est que difficilement mesurable, car il dépend des standards utilisés pour ce site web ! &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/29/introducing-the-ie9-on-windows-phone-mango-user-agent-string.aspx"&gt;Le user agent va également changer&lt;/a&gt;, et même si c’est maintenant considéré comme une mauvaise pratique de tailler l’expérience en fonction du user agent, certains choisissent parfois de le faire… il faudra faire attention ! Sachez que si vous souhaitez tester dès maintenant l’émulateur des outils de développement est en IE9 ! Si vous voulez tout savoir sur les capacités de IE9 et du contrôle WebBrowser dans Windows Phone 7 &amp;quot;Mango&amp;quot;, rendez-vous sur &lt;a href="http://msdn.microsoft.com/en-us/library/ff462082(v=VS.92).aspx"&gt;MSDN : Web Development for Windows Phone 7&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Le ScrollViewer (et donc la ListBox)&lt;/h2&gt;

&lt;p&gt;Le dernier changement dont je voulais parler qui pourrait impacter certaines applications (beaucoup plus rares) vient du fait que maintenant le traitement des inputs (contacts) sur l’écran tactile qui se fait maintenant dans un thread à part. Encore une fois l’équipe Silverlight le décrit &lt;a href="http://blogs.msdn.com/b/slmperf/archive/2011/06/02/listbox-scrollviewer-performance-improvement-for-mango-and-how-it-impacts-your-existing-application.aspx"&gt;dans un post sur son blog&lt;/a&gt;. Cela peut impacter le rafraichissement de certaines propriétés du ScrollViewer. Ce dernier, à partir de Mango va aussi maintenant « manger » tous les évènements « ManipulationDelta » ce qui fait qu’ils ne seront plus disponibles pour les enfants du ScrollViewer. Si cela impacte votre application il suffit de rajouter une propriété à votre ScrollViewer : &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: red"&gt;ScrollViewer.ManipulationMode&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Control&amp;quot;
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Il n’y a que très peu de chance que votre application soit impactée par ces changements du ScrollViewer, en revanche, pour le WebClient et le contrôle WebBrowser, faites attention !! Enfin il y a d’autres changements qui ne sont pas forcément impactants mais que vous noterez au fur et à mesure, l’InputScope “Number” qui devient un vrai pavé numérique plutôt qu’un clavier complet avec chiffres par exemple… mais ces changements ne menacent pas directement votre application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10206286" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/SDK/">SDK</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/IE9/">IE9</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/ListBox/">ListBox</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/WebBrowser/">WebBrowser</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/WebClient/">WebClient</category></item><item><title>[Windows Phone 7] Développeurs, avez-vous passé votre téléphone à Mango?</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/08/31/windows-phone-7-d-233-veloppeurs-avez-vous-pass-233-votre-t-233-l-233-phone-224-mango.aspx</link><pubDate>Wed, 31 Aug 2011 11:02:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10203539</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10203539</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10203539</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/08/31/windows-phone-7-d-233-veloppeurs-avez-vous-pass-233-votre-t-233-l-233-phone-224-mango.aspx#comments</comments><description>&lt;p&gt;Depuis la beta 2 des outils (fin Juillet) il est possible de passer son téléphone à une ROM beta de Mango. Si vous avez déjà un compte sur l’App-Hub vous avez surement déjà reçu un email d’invitation à cette beta, hébergée sur &lt;a href="http://connect.microsoft.com"&gt;Connect&lt;/a&gt;. (Si vous ne retrouvez pas cet email, vérifiez votre dossier spam… l’invitation vient de &lt;a href="mailto:msftconn@microsoft.com"&gt;msftconn@microsoft.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Le processus de mise à jour est relativement sans risque, mais il faut quand même être conscient qu’il fait perdre la garantie constructeur. Point extrêmement important tout de même, n’oubliez pas l’étape de backup du téléphone, car il sera nécessaire d’utiliser ce point de restauration pour revenir à Nodo avant la mise à jour officielle et de production de Mango. &lt;/p&gt;  &lt;p&gt;Si vous n’avez pas encore de compte développeur, c’est le moment d’en créer un! C’est de toutes façons obligatoire pour publier une application (Si vous ne cherchez pas à faire d’applications juste à profiter de Mango, cette béta n’est pas pour vous). Rendez-vous sur &lt;a href="http://create.msdn.com/en-US/"&gt;l’App-Hub&lt;/a&gt; avec votre LiveID, et &lt;a href="http://create.msdn.com/home/about/developer_registration_walkthrough"&gt;suivez le guide&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Une fois le compte créé, vous pouvez demander une invitation à la beta en passant par &lt;a href="http://bit.ly/wpdev7712"&gt;ce formulaire en ligne&lt;/a&gt;. N’oubliez pas de bien lire les instructions, de bien respecter le backup du téléphone (et le backup du backup) et prévoyez entre 1 et 2 heures de votre temps… &lt;/p&gt;  &lt;p&gt;Je profite de ce post pour vous rappeler qu’avoir la beta de Mango sur le téléphone ne suffit pas: il faut aussi télécharger les outils de dev, et mettre à jour vos toolkits. Pour l’instant on est à la Release Candidate des outils. Pas d’inquiétude pour autant quant à la stabilité de votre machine de dev, la béta de Mango étant parfaitement stable pour continuer à développer pour la version actuelle de Windows Phone 7 (et oui, vous allez voir, vous allez peut-être continuer un peu…)&lt;/p&gt;  &lt;p&gt;Pour que l’installation des outils se passent bien assurez-vous de désinstaller d’abord l’ancienne version des outils, et du client Zune. Attention choisissez bien dans votre panneau de configuration le meta-installer (Windows Phone 7.0 SDK – ENU). Vérifiez avec la fonction recherche qu’il n’y a plus rien qui concerne Windows Phone 7 avant de vous lancer dans la nouvelle installation.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://zune.net/fr-FR/products/software/download/default.htm"&gt;Le Zune Client&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://create.msdn.com/en-us/home/getting_started"&gt;la dernière version des outils de développement&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/pierreca/archive/2011/08/26/windows-phone-7-les-toolkits-silverlight-et-coding4fun-passent-224-mango.aspx" href="http://blogs.msdn.com/b/pierreca/archive/2011/08/26/windows-phone-7-les-toolkits-silverlight-et-coding4fun-passent-224-mango.aspx"&gt;Les toolkits tiers&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enfin, avant de passer votre application à Mango, relisez bien &lt;a title="http://blogs.msdn.com/b/pierreca/archive/2011/08/29/windows-phone-7-passage-224-mango-quelle-version-pour-qui-sur-marketplace.aspx" href="http://blogs.msdn.com/b/pierreca/archive/2011/08/29/windows-phone-7-passage-224-mango-quelle-version-pour-qui-sur-marketplace.aspx"&gt;ce post qui décrit ce que fait Marketplace avec les updates Mango des applications&lt;/a&gt;. Une fois que vous aurez publié une mise à jour de votre application pour Mango, vous ne pourrez plus poster de mises à jour pour la version pré-Mango de votre application… qui continuera à être téléchargée par tous les gens qui n’ont pas encore migré !! Réfléchissez donc bien au timing de votre mise à jour et aux besoins de vos utilisateurs!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10203539" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/SDK/">SDK</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/ROM/">ROM</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category></item><item><title>[Windows Phone 7] Passage à Mango : Quelle version, pour qui, sur Marketplace?</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/08/29/windows-phone-7-passage-224-mango-quelle-version-pour-qui-sur-marketplace.aspx</link><pubDate>Mon, 29 Aug 2011 15:51:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10201634</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10201634</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10201634</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/08/29/windows-phone-7-passage-224-mango-quelle-version-pour-qui-sur-marketplace.aspx#comments</comments><description>&lt;p&gt;Avec l’arrivée prochaine de Mango sur les téléphones des utilisateurs, cette rentrée est le bon moment pour se poser les questions des évolutions de vos applications. Quels sont les changements nécessaires, quels sont les changements suggérés, quelles sont les nouvelles expériences que vous pourriez proposer aux utilisateurs avec les nouvelles API? Premier post d’une petite série... et on commence avec la base: comment vont se passer les updates de votre application sur Marketplace pour les utilisateurs qui ont Mango, et ceux qui n’ont pas encore mis leur téléphone à jour?&lt;/p&gt;  &lt;p&gt;Pour faire court, Marketplace gère les choses intelligemment: Chaque utilisateur verra la version de votre application qui convient à son téléphone, autrement dit votre dernière version “7.0” continuera d’exister aux cotés de la version “7.1”, et un utilisateur qui n’a pas encore migré verra la première, alors qu’un utilisateur ayant installé Mango verra la seconde. &lt;/p&gt;  &lt;p&gt;Si un utilisateur a déjà migré à Mango a déjà installé la version 7.0 de votre application, il verra une notification pour passer à la version 7.1. Evidemment un utilisateur qui n’aura pas encore installé Mango ne verra pas cette notification de mise à jour.&lt;/p&gt;  &lt;p&gt;Tous les rankings et les reviews que vous avez reçu avec votre application en 7.0 seront gardés pour la version 7.1.&lt;/p&gt;  &lt;p&gt;En revanche, Attention ! Toutes les infos et les images (screenshots) que vous posterez avec l’update pour 7.1 seront celles qu’on verra avec la version 7.0.. il faut donc veiller à bien identifier dans la description de votre application et sur les screenshots les fonctionnalités Mango (avec un overlay “WP 7.5 Only”). On recommande aussi dans la description d’inclure un lien vers notre site d’information sur la mise à jour: &lt;a title="mangome" href="http://wpupgrade.ms/mangome"&gt;http://wpupgrade.ms/mangome&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;[Note au passage] Les terminaux Mango seront des Windows Phone 7.5, mais les nouveaux outils de développement, correspondent à la version de l’OS, qui est 7.1… Don’t ask!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strike&gt;Enfin, une fois que vous aurez poster une mise à jour pour Mango, vous ne pourrez plus poster de mise à jour pour la version 7.0. Autrement dit, il ne sera pas possible de faire évoluer les 2 branches en même temps… Ceci étant dit, les applications conçues pour Windows Phone 7.0 devrait continuer à fonctionner sur Windows Phone 7.1… A quelques breaking changes, associés à quelques erreurs courantes de programmation, dont on discutera dans un prochain article.&lt;/strike&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;[Update – 20/09/2011]&lt;/strong&gt; &lt;a href="http://blogs.msdn.com/b/pierreca/archive/2011/09/21/app-hub-mango-finalement-il-sera-possible-de-mettre-224-jour-224-la-fois-la-version-7-0-et-la-version-7-1-de-votre-application-sur-l-app-hub.aspx"&gt;Finalement il sera possible de faire évoluer les 2 versions en même temps!&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dernier mot pour la conclusion, juste pour rappeler que tous les terminaux Windows Phone 7 auront droit à la mise à jour Mango, à l’exception des premiers modèles pour développeurs qui ne sont jamais sortis dans le commerce. A terme, on espère que 100% de votre base d’utilisateurs auront Mango!&lt;/p&gt;  &lt;p&gt;Dans le prochain article, nous détaillerons les changements impactants les applications existantes dans Mango!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10201634" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Marketplace/">Marketplace</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category></item><item><title>[Windows Phone 7] Les toolkits Silverlight et Coding4Fun passent à Mango!</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/08/26/windows-phone-7-les-toolkits-silverlight-et-coding4fun-passent-224-mango.aspx</link><pubDate>Fri, 26 Aug 2011 13:06:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10200783</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10200783</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10200783</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/08/26/windows-phone-7-les-toolkits-silverlight-et-coding4fun-passent-224-mango.aspx#comments</comments><description>&lt;p&gt;Avec les outils en Release Candidate, les développeurs de toolkits qui fournissent des contrôles supplémentaires au SDK se mettent à jour. A l’occasion du passage de votre application à Mango, pensez à regarder les nouveautés, il y a de bons moyens d’intégrer facilement des nouveaux contrôles et améliorer l’expérience de votre applications!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://silverlight.codeplex.com/"&gt;Le Silverlight Toolkit for Windows Phone&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Mis à jour en Août, il propose un tas d’améliorations de performance (notamment le LongListSelector et les transitions, ouf!) mais aussi des nouveautés comme le contrôle HubTile qui permet de recréer l’expérience du start screen dans votre application. Indispensable! En plus il est fournit en source donc vous pouvez vous en inspirer pour dériver vos propres contrôles. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://coding4fun.codeplex.com/"&gt;Le Coding4Fun Toolkit for Windows Phone&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Livré en source aussi, avec dedans des trucs simples et sympas comme le RoundButton, le TimeSpanPicker (par notre collègue &lt;a href="http://blogs.msdn.com/stephe"&gt;Stéphanie&lt;/a&gt;!) ou des popup et des overlays bien sympas. Bref, de quoi pimper votre application!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wp7contrib.codeplex.com/"&gt;WP7Contrib&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Qui ne contient pas que des contrôles, mais aussi des bouts de code utile implémentant des patterns de caching, de messaging… bref, de quoi améliorer votre application. L’inconvénient de ce toolkit est qu’il est dépendant d’autres (JSON.NET, MVVM Light, etc) et donc c’est un peu compliqué d’évaluer s’il est vraiment Mango Ready… mais ça vaut le coup de le connaitre quoiqu’il arrive!&lt;/p&gt;  &lt;p&gt;N’hésitez pas à partager si vous connaissez d’autres toolkits qui méritent d’être cités!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10200783" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/SDK/">SDK</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/WP7/">WP7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Silverlight+Toolkit+for+Windows+Phone+7/">Silverlight Toolkit for Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/toolkit/">toolkit</category></item><item><title>[Windows Phone 7] le SDK Mango passe en Release Candidate</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/08/24/windows-phone-7-le-sdk-mango-passe-en-release-candidate.aspx</link><pubDate>Wed, 24 Aug 2011 09:20:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10199458</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10199458</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10199458</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/08/24/windows-phone-7-le-sdk-mango-passe-en-release-candidate.aspx#comments</comments><description>&lt;p&gt;La RC du kit de développement Windows Phone 7 est maintenant disponible sur le download center Microsoft:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Windows Phone SDK 7.1 Release Candidate" href="http://go.microsoft.com/fwlink/?LinkId=226403"&gt;Windows Phone SDK 7.1 Release Candidate&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La documentation a été mise à jour sur MSDN pour refléter les derniers changements:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff637516.aspx"&gt;Quoi de neuf dans la RC du SDK Mango&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;On retrouve en vrac l’utilitaire de screenshot, l’utilitaire de tests de Marketplace (qui permet de faire passer votre application aux tests automatisés avant de l’envoyer à la certification), et une belle amélioration du profiler qui permet de tester l’usage de la mémoire dans votre application… mais surtout, ce SDK est compatible avec la build de Mango disponible sur Connect pour les développeurs enregistrés (7712), la build de l’émulateur est finale (7720) et les API sont en version finale, ce qui nous permet, par la même occasion, d’ouvrir le Marketplace à la soumission d’applications pour Mango! Serez-vous prêts pour le lancement?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10199458" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/SDK/">SDK</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Mango/">Mango</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Release+Candidate/">Release Candidate</category></item><item><title>Update de l’AppHub Windows Phone 7: béta et distribution privée, nouveau SDK pub, nouveau dashboard….</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/07/21/update-de-l-apphub-windows-phone-7-b-233-ta-et-distribution-priv-233-e-nouveau-sdk-pub-nouveau-dashboard.aspx</link><pubDate>Thu, 21 Jul 2011 07:56:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10188455</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10188455</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10188455</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/07/21/update-de-l-apphub-windows-phone-7-b-233-ta-et-distribution-priv-233-e-nouveau-sdk-pub-nouveau-dashboard.aspx#comments</comments><description>&lt;p&gt;Aujourd’hui se lance la version améliorée de l’AppHub, le dashboard développeur qui permet de publier une application sur le Marketplace Windows Phone 7… et c’est une sacrée update! De très nombreux feedbacks de notre communauté ont été intégrés, et la liste des nouveautés est impressionnante:&lt;/p&gt;  &lt;h2&gt;Nouveaux modèles de distribution d’application: béta privée, et distribution cachée&lt;/h2&gt;  &lt;p&gt;&lt;em&gt;“Je veux pouvoir faire tester mon application avant de la publier!”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Il est maintenant possible de proposer une beta à des utilisateurs en indiquant leur live ID dans le dashboard, sans passer de certification, et sans débloquer leur téléphone: ils recevront un email, et pourront télécharger l’application et l’utiliser pendant 90 jours. Limitée à 100 utilisateurs, forcément gratuite, et sans mécanisme d’update (i.e.. nouvelle version == nouvelle beta).&lt;/p&gt;  &lt;p&gt;&lt;em&gt;“Je veux pouvoir distribuer mon application sans qu’elle soit visible!”&lt;/em&gt; ou bien &lt;em&gt;“je veux un marketplace privé!”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Pour ceux qui veulent déployer leur application en privé, il est aussi possible, après certification, de ne pas publier l’application mais obtenir un lien privé, sans contrôle d’accès: à vous de voir ensuite comment vous distribuez votre lien, et faites votre sécurité dans l’application! pas de limite en nombre d’utilisateurs ou en durée d’utilisation, et la possibilité d’utiliser le système d’updates pour pousser les nouvelles versions. il est aussi possible de passer l’application en distribution publique plus tard, et même de choisir si elle sera gratuite ou payante!&lt;/p&gt;  &lt;h2&gt;Processus d’inscription simplifié pour les développeurs indépendants et les étudiants&lt;/h2&gt;  &lt;p&gt;&lt;em&gt;“J’en peux plus de Geotrust, ça fait 3 semaines que j’essaye d’ouvrir un compte pour débloquer mon téléphone!”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Pour la catégorie Individual, une simple carte de crédit valide (qu’on rentre de toutes façons au moment de payer l’abonnement) suffit pour valider le compte, plus besoin de passer par le processus Geotrust. Pour les étudiants, le compte sera validé par dreamspark, et l’âge vérifié avec le Live ID, plus besoin de publier une première application, pour que le compte soit validé.    &lt;br /&gt;&lt;/p&gt;  &lt;h2&gt;Inscription, soumission d’apps, reporting… un dashboard beaucoup plus clair, avec des informations plus pertinentes&lt;/h2&gt;  &lt;p&gt;&lt;em&gt;“Je veux comprendre ce qui se passe avec mes applications!”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Toutes les parties du dashboard Marketplace ont été grandement améliorées: le processus d’inscription est plus simple, plus pertinent (par exemple, on ne demande plus de remplir les informations bancaires pour les gens qui publient des applications gratuites). Le processus de soumission aussi bénéficie d’améliorations (le statut de certification est plus explicite par exemple). Enfin le reporting aussi est amélioré: daily downloads, crash counts, graphes consolidés de downloads, et surtout possibilité de les exporter..&lt;/p&gt;  &lt;h2&gt;Le SDK de pub Microsoft Advertising bientôt disponible dans plus de pays, notamment la France!&lt;/h2&gt;  &lt;p&gt;&lt;em&gt;“Je veux pouvoir intégrer de la pub dans mon application et toucher des sous-sous!”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Disponible auparavant uniquement aux états-unis, on pourra bientôt intégrer le SDK “officiel” de pub in-app de Microsoft dans les applications, notamment en Europe et en Asie… Vous retrouverez à l’occasion un article sur ce blog pour vous en parler!&lt;/p&gt;  &lt;h2&gt;Plus de pays pour soumettre des applications, et pour les distribuer!&lt;/h2&gt;  &lt;p&gt;&lt;em&gt;“Je veux que mon application soit visible par le monde entier!”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Une amélioration sensible pour tous ceux qui publient une application à vocation internationale: vous allez maintenant pouvoir régionaliser votre application pour 19 pays de plus (incluant le Brésil, l’Argentine et la Colombie, l’Inde, l’Afrique du Sud, certains pays d’Europe de l’Est dont la Pologne, la Russie…) et publier votre application depuis 9 pays de plus (dont la Chine, l’Inde, l’Afrique du Sud…). Enfin le global publisher program continue d’être disponible pour tous les pays qui ne sont pas encore listés dans ces listes…&lt;/p&gt;  &lt;h2&gt;Soumission d’applications pour Mango dès le mois prochain!&lt;/h2&gt;  &lt;p&gt;&lt;em&gt;“Mon application est prête je veux pouvoir la distribuer aux gens qui ont déjà installé Mango!”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Patience, ça arrive! une version RC des outils devrait arriver d’ici la fin Août et avec ça la possibilité de soumettre des applications sur Marketplace directement à destination des terminaux Mango!&lt;/p&gt;  &lt;p&gt;Toutes ces nouveautés sont également détaillées sur &lt;a href="http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/07/20/windows-phone-developers-get-new-app-hub-features-mango-app-submission-just-one-month-away.aspx"&gt;le blog officiel des développeurs Windows Phone 7&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10188455" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Marketplace/">Marketplace</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/WP7/">WP7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/AppHub/">AppHub</category></item><item><title>Une série de vidéos Supinfo pour vous expliquer comment concevoir une application Windows Phone 7 connectée au cloud</title><link>http://blogs.msdn.com/b/pierreca/archive/2011/07/04/une-s-233-rie-de-vid-233-os-supinfo-pour-vous-expliquer-comment-concevoir-une-application-windows-phone-7-connect-233-e-au-cloud.aspx</link><pubDate>Mon, 04 Jul 2011 12:13:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10182854</guid><dc:creator>PierreCauchois</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/rsscomments.aspx?WeblogPostID=10182854</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/pierreca/commentapi.aspx?WeblogPostID=10182854</wfw:comment><comments>http://blogs.msdn.com/b/pierreca/archive/2011/07/04/une-s-233-rie-de-vid-233-os-supinfo-pour-vous-expliquer-comment-concevoir-une-application-windows-phone-7-connect-233-e-au-cloud.aspx#comments</comments><description>&lt;p&gt;Belle initiative de supinfo a lancé sa webtv cette année, les &lt;em&gt;rendez-vous des experts&lt;/em&gt;, et qui nous propose une petite série de webcasts sur le développement d’une application Windows Phone 7, avec un backend dans Azure, utilisant WCF, Entity Framework et SQL Azure, avec quelques soupçons de T4 dedans !&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Partie 1: le DAL avec Entity Framework et la base Azure&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;iframe style="width: 444px; height: 317px" height="349" src="http://www.youtube.com/embed/WdM44VFFTlI" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Partie 2 – Avec Mathieu Mezil et Julien Dollon, pour la couche Entities et un peu de T4!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;iframe style="width: 444px; height: 283px" height="349" src="http://www.youtube.com/embed/VAkekIsuHz0" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Partie 3 – Julien Dollon sur WCF, l’hébergement dans Azure et Thomas Laurent pour l’application WP7&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;iframe style="width: 448px; height: 306px" height="349" src="http://www.youtube.com/embed/KKq_5Zf4XVw" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10182854" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/mobile/">mobile</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/webcasts/">webcasts</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Azure/">Windows Azure</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/Windows+Phone+7/">Windows Phone 7</category><category domain="http://blogs.msdn.com/b/pierreca/archive/tags/supinfo/">supinfo</category></item></channel></rss>