﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>Renaud Dumont</title>
    <description>{.NET Blog}</description>
    <link>http://www.renauddumont.be/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.7.0.4</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.renauddumont.be/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Renaud</dc:creator>
    <dc:title>Renaud Dumont</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>//learn/ - Global Windows Phone Store Webcast 2014</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2014%2f04%2flearn.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Au cas o&amp;ugrave; vous l'auriez manqu&amp;eacute;, ce 24/04/2014 &amp;eacute;tait la date de l'event &lt;strong&gt;//learn/&lt;/strong&gt;. Une initiative mondiale rassemblant des MVPs de tous les horizons pour donner &lt;strong&gt;une journ&amp;eacute;e live d'introduction au d&amp;eacute;veloppement d'apps Windows Phone Store&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Et les francophones se sont mobilis&amp;eacute;s pour vous fournir du contenu en fran&amp;ccedil;ais ! :-)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour revoir toutes les sessions &amp;agrave; la demande, il vous suffit de vous inscrire ici :&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="https://vts.inxpo.com/scripts/Server.nxp?LASCmd=AI%3A4%3BF%3AQS%2110100&amp;amp;ShowKey=18934&amp;amp;GroupID=WPL" target="_blank"&gt;https://vts.inxpo.com/scripts/Server.nxp?LASCmd=AI%3A4%3BF%3AQS%2110100&amp;amp;ShowKey=18934&amp;amp;GroupID=WPL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2014/04/24/learn-Global-Windows-Phone-Store-Webcast-2014</link>
      <comments>http://www.renauddumont.be/post/2014/04/24/learn-Global-Windows-Phone-Store-Webcast-2014#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=926b80bb-f6c3-49eb-b078-85acbc98d675</guid>
      <pubDate>Thu, 24 Apr 2014 14:16:00 +0000</pubDate>
      <category>MOOC</category>
      <category>Windows Phone</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=926b80bb-f6c3-49eb-b078-85acbc98d675</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=926b80bb-f6c3-49eb-b078-85acbc98d675</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2014/04/24/learn-Global-Windows-Phone-Store-Webcast-2014#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=926b80bb-f6c3-49eb-b078-85acbc98d675</wfw:commentRss>
    </item>
    <item>
      <title>Le Mobile Dev Day accueille l'évènement //publish/ en Belgique</title>
      <description>&lt;h2&gt;Vous pouvez retrouver l'article original sur &lt;a title="K&amp;eacute;vin Rapaille - Mobile Dev Day accueille l'&amp;eacute;v&amp;eacute;nement //publish/ en Belgique" href="http://www.kevinrapaille.com/2014/04/22/le-mobile-dev-day-accueille-publish-en-belgique" target="_blank"&gt;le blog de K&amp;eacute;vin Rapaille&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ces 15 et 16 mai, Microsoft organise un &amp;eacute;v&amp;egrave;nement mondial afin de vous aider &amp;agrave; finir vos applications Windows 8.1 et Windows Phone 8.1.&lt;/p&gt;
&lt;p&gt;Et bien s&amp;ucirc;r, &lt;a title="//publish/ Belgium" href="https://publishbelgium.eventday.com/" target="_blank"&gt;la Belgique y participe&lt;/a&gt; !&lt;/p&gt;
&lt;h2&gt;//publish/&lt;/h2&gt;
&lt;p&gt;Durant toute la dur&amp;eacute;e de l'&amp;eacute;v&amp;egrave;nement, des experts Microsoft et de la communaut&amp;eacute; seront pr&amp;eacute;sent afin de vous aider &amp;agrave; r&amp;eacute;soudre les diff&amp;eacute;rents probl&amp;egrave;mes que vous rencontrez ou apporter la touche finale de votre projet.&lt;/p&gt;
&lt;p&gt;Diff&amp;eacute;rents appareils de test seront &amp;eacute;galement &amp;agrave; votre disposition afin que vous puissiez tester votre application dans les meilleures conditions.&lt;/p&gt;
&lt;h2&gt;Le concours&lt;/h2&gt;
&lt;p&gt;Comme toujours, il y a des prix &amp;agrave; gagner ! Un concours global est donc organis&amp;eacute; pour chacune des applications publi&amp;eacute;es avant le 1er Juin.&lt;/p&gt;
&lt;p&gt;En voici les prix :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;3 voyages pour les USA&lt;/strong&gt; &amp;agrave; l'occasion du &lt;strong&gt;Grand Prix de Formule 1 de Austin&lt;/strong&gt; dans le Texas&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3 ultimate dev caves&lt;/strong&gt; d'une valeur de &lt;strong&gt;10.000 $&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6 imprimantes 3D MarkerBot&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Plus de 100 &lt;strong&gt;Lumia 1520&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le concours se divise en 3 groupes : Les &amp;eacute;tudiants, les personnes individuelles, et les petites entreprises (moins de 100 employ&amp;eacute;s).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Chacun des membres de ces groupes pourra concourir dans 4 cat&amp;eacute;gories diff&amp;eacute;rentes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les &lt;strong&gt;meilleures applications Windows 8.1&lt;/strong&gt; dont la meilleure app de chaque groupe se verra remporter l'un des voyages aux USA.&lt;/li&gt;
&lt;li&gt;Les &lt;strong&gt;meilleures applications Windows Phone 8.1&lt;/strong&gt; dont la meilleure app de chaque groupe se verra remporter l'une des Ultimate Dev Caves &amp;agrave; 10 000$&lt;/li&gt;
&lt;li&gt;Les &lt;strong&gt;meilleures applications cross-plateforme&lt;/strong&gt; dont la meilleure app de chaque groupe se verra remporter l'une des imprimantes 3D MarkerBot&lt;/li&gt;
&lt;li&gt;Et &lt;strong&gt;les plus belles applications innovantes&lt;/strong&gt; dont la meilleure app de chaque groupe se verra &amp;eacute;galement remporter l'une des imprimantes 3D MarkerBot&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notez que pour chaque groupe, dans chaque cat&amp;eacute;gorie, le top 9 remportera un lumia 1520.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;En Belgique&lt;/h2&gt;
&lt;p&gt;Face &amp;agrave; des prix aussi impressionnants, l'&amp;eacute;quipe du &lt;strong&gt;Mobile Dev Day&lt;/strong&gt; s'est donc r&amp;eacute;unie afin de vous en faire profiter !&lt;/p&gt;
&lt;p&gt;Nous accueillerons donc le &lt;strong&gt;//publish/&lt;/strong&gt; au MIC de Mons le vendredi 16 mai et avons grand espoir de voir notre communaut&amp;eacute; rayonner dans ce concours.&lt;/p&gt;
&lt;p&gt;Qui plus est, un concours local sera &amp;eacute;galement organis&amp;eacute;. &lt;strong&gt;Un Lumia 1520 et une Dell Venue Pro 8 seront &amp;agrave; gagner le jour m&amp;ecirc;me&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Pour plus d'infos, &lt;a title="Inscription //publish/" href="https://publishbelgium.eventday.com/" target="_blank"&gt;rendez-vous ici&lt;/a&gt;. Inscrivez-vous vite !&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2014/04/22/Le-Mobile-Dev-Day-accueille-levenement-publish-en-Belgique</link>
      <comments>http://www.renauddumont.be/post/2014/04/22/Le-Mobile-Dev-Day-accueille-levenement-publish-en-Belgique#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=9b7d9a6b-b08d-4a89-9b86-48494385238b</guid>
      <pubDate>Tue, 22 Apr 2014 17:12:00 +0000</pubDate>
      <category>Events</category>
      <category>Windows 8</category>
      <category>Windows Phone</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=9b7d9a6b-b08d-4a89-9b86-48494385238b</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=9b7d9a6b-b08d-4a89-9b86-48494385238b</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2014/04/22/Le-Mobile-Dev-Day-accueille-levenement-publish-en-Belgique#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=9b7d9a6b-b08d-4a89-9b86-48494385238b</wfw:commentRss>
    </item>
    <item>
      <title>Opening of the new Microsoft Centre in Brussels and #EUYouth</title>
      <description>&lt;p&gt;Last two days (20th &amp;amp; 21st of January), I've been invited to the Microsoft Centre in Brussels for the opening of the new offices and the signing of a new 3 years agreement between the Brussels government &amp;amp; Microsoft to help prevent youth unemployment in Europe.&lt;/p&gt;
&lt;h2&gt;Blogger Roundtable &amp;amp; YouthSpark program&lt;/h2&gt;
&lt;p&gt;It all started with an invitation from the YouthSpark program. They proposed me to join them as a young blogger to discuss the youth unemployment issues people are facing in Europe. I met some talentuous bloggers from all over Europe: Greece, Spain, Italy, Portugal, ... They all have different passions and different situations, but all of them are interested in technologies &amp;amp; social media, and their impact on youth, education, and employment. I was very impressed by their impressive career.&lt;/p&gt;
&lt;p&gt;On monday, we had a inspiring guided tour of the new Microsoft Center with &lt;strong&gt;Mark Lange&lt;/strong&gt;, Director for EU Insitutional Relations at Microsoft. And I have to say, the new Microsoft Centre is&amp;nbsp;really an exciting place. Actually, it reminds me what can be seen in Seattle, on the Microsoft campus. Lots of devices (phones, tablets, hybrids) everywhere that you can use, huge touch screens on every wall, a few xbox one, skype rooms here and there, Surfaces everywhere ! There's also much more place than in the previous building. The conference rooms are great, with a lot of space.&amp;nbsp;&lt;/p&gt;
&lt;script type="text/javascript"&gt;// &lt;![CDATA[
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));
// ]]&gt;&lt;/script&gt;
&lt;div class="fb-post" data-href="https://www.facebook.com/photo.php?fbid=10152084633457834&amp;amp;set=a.464925852833.255331.764147833&amp;amp;type=1" data-width="466"&gt;
&lt;div class="fb-xfbml-parse-ignore"&gt;&lt;a href="https://www.facebook.com/photo.php?fbid=10152084633457834&amp;amp;set=a.464925852833.255331.764147833&amp;amp;type=1"&gt;Post&lt;/a&gt; by &lt;a href="https://www.facebook.com/renaud.dumont"&gt;Renaud Dumont&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;After that, we had a roundtable with &lt;strong&gt;Lori Harnick&lt;/strong&gt;, Microsoft's General Manager for Citizenship and Public Affairs. The aim was to introduce the global YouthSpark program, the program's achievements for last year and the new targets for this year. We met some non-profit patrners collaborating with Microsoft on this program, helping young people to find paid internship and get the necessary ICT skills they need to find a job.&lt;/p&gt;
&lt;h2&gt;Technology showcase&lt;/h2&gt;
&lt;p&gt;At the same time, I've been asked by the Microsoft Innovation Center to make a technology demonstration during the event on Tuesday 21. I decided to show how it was possible to use the Kinect for Windows to control Nao (a small humanoid robot made by an awsome french company called &lt;a href="http://www.aldebaran-robotics.com/fr/" target="_blank"&gt;Aldebaran Robotics&lt;/a&gt;). it's interesting because even if we can see more and more usages of the Kinect on the web, most people still think it's only useful for gaming. I actually believe that kind of technologies could save lives. We could send robots in situations that are too dangerous for humans and control them remotely with all the precision of the Kinect.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2014%2f01%2fkinectnao.png" alt="" width="378" height="232" /&gt;&lt;/p&gt;
&lt;p&gt;And because it's cool, I decided to use the new &lt;a href="http://www.microsoft.com/en-us/kinectforwindowsdev/newdevkit.aspx" target="_blank"&gt;Kinect for Windows v2 sensor (technical preview)&lt;/a&gt; aside of the old Kinect sensor. Both can totally work together on the same machine, with the same application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I had the chance to show this cool demo to &lt;a href="https://twitter.com/bradsmi" target="_blank"&gt;&lt;strong&gt;Brad Smith&lt;/strong&gt;&lt;/a&gt;, Microsoft Executive Vice President and General Counsel. I hope he enjoyed it :-)&lt;/p&gt;
&lt;p&gt;The demo is based on the code found in this blog post, written by two student during their internship at the Microsoft Innovation Center:&amp;nbsp;&lt;a href="http://blog.mic-belgique.be/articles/controler-un-robot-humanoide-nao-avec-une-kinect/" target="_blank"&gt;http://blog.mic-belgique.be/articles/controler-un-robot-humanoide-nao-avec-une-kinect/&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is a great video made by those students:&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;iframe src="//www.youtube-nocookie.com/embed/ZGRVqnqP7Pw" width="560" height="315" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;If you want to learn more about Kinect programming, you can read this series of blog posts I've written :&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;table class="alignleft" border="1" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: justify;" valign="top" width="614"&gt;&amp;nbsp;1.&amp;nbsp;&lt;strong&gt;&lt;a href="http://www.renauddumont.be/en/2012/kinect-sdk-1-0-1-introduction-a-lapi"&gt;Introducing the Kinect for Windows API&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: justify;" valign="top" width="614"&gt;&amp;nbsp;2.&amp;nbsp;&lt;a href="http://www.renauddumont.be/en/2012/kinect-sdk-1-0-2-utilisation-du-colorstream"&gt;Use the ColorImageStream&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: justify;" valign="top" width="614"&gt;&amp;nbsp;3.&amp;nbsp;&lt;a href="http://www.renauddumont.be/en/2012/kinect-sdk-1-0-3-tracker-les-mouvements-avec-le-skeletonstream"&gt;Track the users with the SkeletonStream&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: justify;" valign="top" width="614"&gt;&amp;nbsp;4.&amp;nbsp;&lt;a href="http://www.renauddumont.be/en/2012/kinect-sdk-1-0-4-kinect-en-profondeur-avec-le-depthstream"&gt;Kinect in depth!&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: justify;" valign="top" width="614"&gt;&amp;nbsp;5.&amp;nbsp;&lt;a href="http://www.renauddumont.be/en/2012/kinect-sdk-1-0-5-reconnaissance-vocale"&gt;Speech recognition&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Launch of the Microsoft Center&lt;/h2&gt;
&lt;p&gt;On Tuesday 21&lt;sup&gt;st&lt;/sup&gt;, we assisted to a few conferences and debates with &lt;strong&gt;Brad Smith&lt;/strong&gt;, &lt;strong&gt;C&amp;eacute;line Fremault&lt;/strong&gt; (Minister of Economy and Employment in Brussels-Capital Region), &lt;strong&gt;Andrew W. Wyckoff&lt;/strong&gt; (Director of OECD), and some &lt;strong&gt;Members of the&lt;/strong&gt; &lt;strong&gt;European Parliament&lt;/strong&gt;. I've been very impressed by the talk of Brad Smith about YouthSpark and how Microsoft is helping young people to create and capture opportunities. That guy really knows how to talk and keep your attention !&lt;/p&gt;
&lt;blockquote class="twitter-tweet" lang="fr"&gt;
&lt;p&gt;Minister Fremault, Commissioner Andor, Brad Smith and &lt;a href="https://twitter.com/search?q=%23Youthspark&amp;amp;src=hash"&gt;#Youthspark&lt;/a&gt; empowering &lt;a href="https://twitter.com/search?q=%23EUYouth&amp;amp;src=hash"&gt;#EUYouth&lt;/a&gt; at Microsoft Center BXL &lt;a href="http://t.co/IimEFwzmDF"&gt;pic.twitter.com/IimEFwzmDF&lt;/a&gt;&lt;/p&gt;
&amp;mdash; Bruno Schroder (@Bruno_Schroder) &lt;a href="https://twitter.com/Bruno_Schroder/statuses/425562514076991488"&gt;21 Janvier 2014&lt;/a&gt;&lt;/blockquote&gt;
&lt;script charset="utf-8" type="text/javascript" src="//platform.twitter.com/widgets.js"&gt;&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote class="twitter-tweet" lang="fr"&gt;
&lt;p&gt;Partnership btw BXL and Microsoft: a response to combat unemployment &amp;amp; boost the spirit of entreprise among youth &lt;a href="http://t.co/meGdkhXfPB"&gt;pic.twitter.com/meGdkhXfPB&lt;/a&gt;&lt;/p&gt;
&amp;mdash; C&amp;eacute;line Fremault (@celinefremault) &lt;a href="https://twitter.com/celinefremault/statuses/425582629937631232"&gt;21 Janvier 2014&lt;/a&gt;&lt;/blockquote&gt;
&lt;script charset="utf-8" type="text/javascript" src="//platform.twitter.com/widgets.js"&gt;&lt;/script&gt;
&lt;p&gt;During the conf, Brad Smith had a live skype session with Students from Europe. We saw a teacher from Portugal, in his classroom with 6 years old kids. He explained how they were trying to develop ICT interest with those kids by using &lt;a href="http://www.kodugamelab.com/" target="_blank"&gt;Kodu&lt;/a&gt; (a Microsoft Research project). This application helps kids understand the basics of programming (with a visual language) and trains their logic skills. Those 6-years old kids, grouped by two, each group with a laptop, had to develop a game using Kodu. That was fun to see them doing some sort of pair programming.&lt;/p&gt;
&lt;blockquote class="twitter-tweet" lang="fr"&gt;
&lt;p&gt;Skype en live avec une classe au Portugal o&amp;ugrave; des enfants de 6 ans font du pair programming! :) &lt;a href="https://twitter.com/search?q=%23EUyouth&amp;amp;src=hash"&gt;#EUyouth&lt;/a&gt; &lt;a href="http://t.co/jvllCczaSq"&gt;http://t.co/jvllCczaSq&lt;/a&gt;&lt;/p&gt;
&amp;mdash; Renaud Dumont (@DumontRenaud) &lt;a href="https://twitter.com/DumontRenaud/statuses/425562312703873024"&gt;21 Janvier 2014&lt;/a&gt;&lt;/blockquote&gt;
&lt;h2&gt;Evening Reception&lt;/h2&gt;
&lt;p&gt;By the end of the day, there was a party, with Xbox games and DJ sets. Time to have a drink and talk about less serious stuff with nice people.&lt;/p&gt;
&lt;p&gt;Anyway, that was a great event. It's good to know that Microsoft is working that much on solving youth unemployment issues. By developping ICT skills or entrepreunarial mindset. There is a lot of work to do in the EU. But I met a lot of amazing and enthusiastic young people from all around Europe and I'm pretty confident they will positively contribute in some way in the changes that we need.&lt;/p&gt;
&lt;blockquote class="twitter-tweet" lang="fr"&gt;
&lt;p&gt;&lt;a href="https://twitter.com/search?q=%23EUyouth&amp;amp;src=hash"&gt;#EUyouth&lt;/a&gt; fun stuff happening &lt;a href="http://t.co/r8LjzHRc4O"&gt;pic.twitter.com/r8LjzHRc4O&lt;/a&gt;&lt;/p&gt;
&amp;mdash; StoryMe (@hello_storyme) &lt;a href="https://twitter.com/hello_storyme/statuses/425701402590339072"&gt;21 Janvier 2014&lt;/a&gt;&lt;/blockquote&gt;
&lt;script charset="utf-8" type="text/javascript" src="//platform.twitter.com/widgets.js"&gt;&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Additionally, here is a great coverage of the event made by&amp;nbsp;&lt;strong&gt;euronews.com&lt;/strong&gt;:&amp;nbsp;&lt;a href="http://www.euronews.com/2014/01/24/start-ups-shake-up-tech-world-/" target="_blank"&gt;Start-ups shake up tech world&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.euronews.com/2014/01/24/start-ups-shake-up-tech-world-/" target="_blank"&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2014%2f01%2fstartupsshakethetechworld.png" alt="" width="422" height="239" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2014/01/22/Opening-of-the-new-Microsoft-Centre-in-Brussels-and-EUYouth</link>
      <comments>http://www.renauddumont.be/post/2014/01/22/Opening-of-the-new-Microsoft-Centre-in-Brussels-and-EUYouth#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=92f5d754-ee68-4ff1-8a28-955ddc174efc</guid>
      <pubDate>Wed, 22 Jan 2014 07:57:00 +0000</pubDate>
      <category>Events</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=92f5d754-ee68-4ff1-8a28-955ddc174efc</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=92f5d754-ee68-4ff1-8a28-955ddc174efc</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2014/01/22/Opening-of-the-new-Microsoft-Centre-in-Brussels-and-EUYouth#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=92f5d754-ee68-4ff1-8a28-955ddc174efc</wfw:commentRss>
    </item>
    <item>
      <title>Mon premier MVP Summit</title>
      <description>&lt;p&gt;... et, j'esp&amp;egrave;re, pas le dernier!&lt;/p&gt;
&lt;p&gt;Je souhaite vraiment &amp;agrave; tous mes amis d&amp;eacute;veloppeurs ici, passionn&amp;eacute;s de technologies et impliqu&amp;eacute;s dans les communaut&amp;eacute;s Microsoft, d'avoir la chance d'&amp;ecirc;tre un jour&amp;nbsp;reconnu en tant que&amp;nbsp;MVP et de pouvoir participer au MVP Summit.&lt;/p&gt;
&lt;p&gt;En effet, l'un n'implique pas l'autre. Tous les MVP ne participent pas &amp;agrave; cette rencontre annuelle. Il faut encore &amp;ecirc;tre disponible &amp;agrave; la date pr&amp;eacute;vue, et pouvoir s'offrir le voyage jusqu'&amp;agrave; Seattle.&lt;/p&gt;
&lt;p&gt;Je souhaite donc &amp;agrave; mes amis d'avoir cette chance un jour, parce qu'en dehors du fait de pouvoir se balader sur le campus (oui &amp;ccedil;a fait un peu fanboy j'avoue :)), &amp;ccedil;a permet surtout de rencontrer d'autres MVP venus du monde entier, et&amp;nbsp;de nombreux d&amp;eacute;veloppeurs de chez Microsoft.&lt;/p&gt;
&lt;p&gt;Mais plus encore, je souhaite &amp;agrave; tous les d&amp;eacute;veloppeurs qui pensent que Microsoft n'est qu'une grosse bo&amp;icirc;te noire d'avoir la chance un jour de participer &amp;agrave; un MVP Summit. Parce qu'au fond, le MVP Summit, ce n'est pas du tout ce que j'esp&amp;eacute;rais. C'est beaucoup plus que &amp;ccedil;a. Ce n'est pas l'occasion pour Microsoft de satisfaire l'&amp;eacute;go de quelques d&amp;eacute;veloppeurs en les couvrant de goodies entre deux brainwashing. C'est infiniment plus int&amp;eacute;ressant !&lt;/p&gt;
&lt;p&gt;En v&amp;eacute;rit&amp;eacute;, 90% des sessions auxquelles j'ai particip&amp;eacute; n'&amp;eacute;taient pas des sessions de pr&amp;eacute;sentation du futur de Microsoft, mais plut&amp;ocirc;t des discussions pour construire ensemble le futur des outils et technologies que nous, d&amp;eacute;veloppeurs, allons utiliser dans les ann&amp;eacute;es &amp;agrave; venir. J'&amp;eacute;tais vraiment agr&amp;eacute;ablement surpris de la tournure des discussions. On ne nous a jamais dit "hello, voici le nouveau Visual Studio", mais plut&amp;ocirc;t "Voici une proposition. Qu'en pensez-vous? Devrions-nous l'impl&amp;eacute;menter ou est-on &amp;agrave; c&amp;ocirc;t&amp;eacute; de la plaque?". R&amp;eacute;guli&amp;egrave;rement, les &amp;eacute;quipes produits (XAML, Azure Mobile Services, Visual Studio, C#, .NET, etc...) lan&amp;ccedil;aient des sondages &amp;agrave; main lev&amp;eacute;e pour &amp;eacute;valuer l'int&amp;eacute;r&amp;ecirc;t de l'audience pour telle ou telle autre fonctionnalit&amp;eacute;.&lt;/p&gt;
&lt;p&gt;It's not presenting the future, it's about designing it!&lt;/p&gt;
&lt;p&gt;Je me rends compte maintenant &amp;agrave; quel point tous les produits, les langages&amp;nbsp;et outils que nous utilisons ne sont pas&amp;nbsp;uniquement le fruit de quelques illumin&amp;eacute;s &amp;agrave; Redmond qui pensent savoir ce&amp;nbsp;dont on besoin les&amp;nbsp;d&amp;eacute;veloppeurs du monde entier. En fait, tout ce qui existe aujourd'hui est le r&amp;eacute;sultat du feedback, des propositions et de&amp;nbsp;la collaboration des communaut&amp;eacute;s de d&amp;eacute;veloppeurs avec Microsoft.&lt;/p&gt;
&lt;p&gt;C'est un peu comme si&amp;nbsp;tous les MVP venaient&amp;nbsp;faire des pull request IRL une fois par an, en rapportant avec eux le feedback des communaut&amp;eacute;s locales.&lt;/p&gt;
&lt;p&gt;Je suis content d'avoir pu y participer d'une certaine mani&amp;egrave;re.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Photo des MVPs francophones par &lt;a href="http://www.linkedin.com/in/laurentgebeau"&gt;Laurent G&amp;eacute;beau&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f11%2fmvpfr.jpg" alt="" /&gt;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/11/20/Mon-premier-MVP-Summit</link>
      <comments>http://www.renauddumont.be/post/2013/11/20/Mon-premier-MVP-Summit#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=d5159a06-1a51-460e-b7ce-50109015b0c7</guid>
      <pubDate>Wed, 20 Nov 2013 18:36:00 +0000</pubDate>
      <category>Events</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=d5159a06-1a51-460e-b7ce-50109015b0c7</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=d5159a06-1a51-460e-b7ce-50109015b0c7</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/11/20/Mon-premier-MVP-Summit#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=d5159a06-1a51-460e-b7ce-50109015b0c7</wfw:commentRss>
    </item>
    <item>
      <title>Mobile Dev Day 2013</title>
      <description>&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f11%2fmobiledevday_banner.jpg" alt="" /&gt;&lt;/p&gt;
&lt;h1&gt;Premi&amp;egrave;re &amp;eacute;dition du Mobile Dev Day&lt;/h1&gt;
&lt;p&gt;Le 12 d&amp;eacute;cembre prochain aura lieu un &amp;eacute;v&amp;eacute;nement sans pr&amp;eacute;c&amp;eacute;dant en Belgique: une journ&amp;eacute;e consacr&amp;eacute;e enti&amp;egrave;rement au d&amp;eacute;veloppement et aux technologies mobiles. Bien s&amp;ucirc;r, ce n'est pas la premi&amp;egrave;re fois qu'on parle de mobile en Belgique, mais cette fois-ci il s'agit d'une journ&amp;eacute;e consacr&amp;eacute;e principalement aux technologies Microsoft et, qui plus est, en fran&amp;ccedil;ais!&lt;/p&gt;
&lt;p&gt;Le site web est en ligne depuis quelques jours: &lt;a title="Mobile Dev Day" href="http://www.mobiledevday.be" target="_blank"&gt;http://www.mobiledevday.be&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Un &amp;eacute;v&amp;egrave;nement pour les d&amp;eacute;veloppeurs, par des d&amp;eacute;veloppeurs&lt;/h2&gt;
&lt;p&gt;D'o&amp;ugrave; est n&amp;eacute;e l'id&amp;eacute;e d'organiser cet &amp;eacute;v&amp;egrave;nement? L'histoire a commenc&amp;eacute; avec la &lt;a title="Windows Phone Week" href="https://wpcommunityweek.eventday.com/" target="_blank"&gt;Windows Phone Week&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Pour ceux qui n'en auraient pas entendu parler, la Windows Phone Week est une initiative men&amp;eacute;e par tous les MVP (Most Valuable Professional) Windows Phone du monde et qui consiste &amp;agrave; organiser localement des &amp;eacute;v&amp;egrave;nements d&amp;eacute;di&amp;eacute;s &amp;agrave; cette discipline.&lt;/p&gt;
&lt;p&gt;Pas de chance pour nous les Belges, il n'y a pas de MVP Windows Phone parmi nous, ce qui signifie donc pas d'&amp;eacute;v&amp;egrave;nement. &amp;Agrave; moins... qu'un membre de la communaut&amp;eacute; d&amp;eacute;cide qu'il y a l&amp;agrave; quelque chose &amp;agrave; faire.&lt;/p&gt;
&lt;p&gt;Et c'est ainsi que&amp;nbsp;&lt;a title="Olivier Matis" href="https://twitter.com/GuruuMeditation" target="_blank"&gt;Olivier Matis&lt;/a&gt; (&lt;a title="Olivier Matis" href="http://www.guruumeditation.net/" target="_blank"&gt;www.guruumeditation.net/&lt;/a&gt;), &lt;a title="Olivier Matis" href="http://mvp.microsoft.com/fr-fr/mvp/Olivier%20Matis-4039633" target="_parent"&gt;MVP C&lt;/a&gt;# et &lt;a title="Olivier Matis" href="http://developer.nokia.com/Profile/?u=GuruuMeditation" target="_blank"&gt;Nokia Developer Champion&lt;/a&gt;, m'a contact&amp;eacute; pour me parler de sa frustration (que je partageais &amp;eacute;videmment). La suite s'est encha&amp;icirc;n&amp;eacute;e tr&amp;egrave;s rapidement. Il fallait constituer une team pour organiser cet &amp;eacute;v&amp;egrave;nement, et nous avons contact&amp;eacute; deux membres actifs de la communaut&amp;eacute; Microsoft en Belgique: &lt;a title="K&amp;eacute;vin Rapaille" href="https://twitter.com/krapaille" target="_blank"&gt;K&amp;eacute;vin Rapaille&lt;/a&gt;&amp;nbsp;-&amp;nbsp;Software Engineer chez RealDolmen et &lt;a title="K&amp;eacute;vin Rapaille" href="http://www.kevinrapaille.com/" target="_blank"&gt;blogueur&lt;/a&gt;&amp;nbsp;- et &lt;a title="Matthieu Vandenhende" href="https://twitter.com/matthieuvdh" target="_blank"&gt;Matthieu Vandenhende&lt;/a&gt; - d&amp;eacute;veloppeur chez Agilys, &lt;a title="Matthieu Vandenhende" href="http://devillu.com/" target="_blank"&gt;blogueur&lt;/a&gt; et &lt;a title="Matthieu Vandenhende" href="http://mvp.microsoft.com/fr-fr/MVP/Matthieu%20Vandenhende-5000305" target="_blank"&gt;MVP Client Development&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Un programme avec uniquement des t&amp;ecirc;tes d'affiches&lt;/h2&gt;
&lt;p&gt;Bon alors c'est s&amp;ucirc;r, on aurait pu se d&amp;eacute;merder nous m&amp;ecirc;me et vous pondre quelques sessions plus ou moins int&amp;eacute;ressantes. Mais on a voulu faire quelque chose de grand. Et pour &amp;ccedil;a, on est all&amp;eacute; vous chercher de v&amp;eacute;ritables rockstar. Des speakers venus de France et de Belgique. Des d&amp;eacute;veloppeurs exceptionnels et des employ&amp;eacute;s Microsoft avec des vrais morceaux de Microsoft &amp;agrave; l'int&amp;eacute;rieur.&lt;/p&gt;
&lt;p&gt;C'est un peu comme si vous alliez assister &amp;agrave; un Techdays, mais en comit&amp;eacute; r&amp;eacute;duit, en s&amp;eacute;ance VIP!&lt;/p&gt;
&lt;p&gt;En dehors des sessions, vous aurez &amp;eacute;videmment la possibilit&amp;eacute; de discuter et boire un verre avec tous ces gens, ainsi qu'avec tous les autres passionn&amp;eacute;s qui seront pr&amp;eacute;sents ce jour-l&amp;agrave;.&lt;/p&gt;
&lt;h2&gt;Inscriptions ouvertes et limit&amp;eacute;es&lt;/h2&gt;
&lt;p&gt;Malheureusement, nous ne pouvons pas accueillir des milliers de personnes comme aux Techdays. La comparaison s'arr&amp;ecirc;te l&amp;agrave; :) Je vous invite donc &amp;agrave; vous inscrire assez rapidement. Bloquez votre 12 d&amp;eacute;cembre, et venez passer une super journ&amp;eacute;e avec la communaut&amp;eacute; Microsoft Belux. L'entr&amp;eacute;e est bien &amp;eacute;videmment gratuite ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour avoir toutes les informations, rendez-vous sur le site officiel : &lt;a title="Mobile Dev Day" href="http://www.mobiledevday.be" target="_blank"&gt;http://www.mobiledevday.be&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div style="width: 100%; text-align: left;"&gt;&lt;iframe src="https://www.eventbrite.fr/tickets-external?eid=8830739981&amp;amp;ref=etckt&amp;amp;v=2" width="100%" height="214" frameborder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;h2&gt;Sponsors&lt;/h2&gt;
&lt;p&gt;Et enfin il faut le signaler, un &amp;eacute;v&amp;egrave;nement de cette taille n&amp;eacute;cessite des moyens, et nous ne pourrions pas y arriver sans l'aider de nos sponsors principaux que sont:&lt;/p&gt;
&lt;div&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a title="Neomytic" href="http://www.neomytic.be/" target="_blank"&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f11%2fNeomytic.png" alt="" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a title="RealDolmen" href="http://www.realdolmen.com/" target="_blank"&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f11%2frd.png" alt="" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
      <link>http://www.renauddumont.be/post/2013/11/10/Mobile-Dev-Day-2013</link>
      <comments>http://www.renauddumont.be/post/2013/11/10/Mobile-Dev-Day-2013#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=84b02bbd-a02c-403b-bc93-2deeabfcfe11</guid>
      <pubDate>Sun, 10 Nov 2013 15:13:00 +0000</pubDate>
      <category>Events</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=84b02bbd-a02c-403b-bc93-2deeabfcfe11</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=84b02bbd-a02c-403b-bc93-2deeabfcfe11</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/11/10/Mobile-Dev-Day-2013#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=84b02bbd-a02c-403b-bc93-2deeabfcfe11</wfw:commentRss>
    </item>
    <item>
      <title>Planning de la rentrée 2013-2014</title>
      <description>&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f09%2fDeveloper_Camp2.png" alt="" /&gt;&lt;/p&gt;
&lt;h1&gt;Trainings gratuits au Microsoft Innovation Center de Mons&lt;/h1&gt;
&lt;p&gt;Plein de nouvelles formations planifi&amp;eacute;es au MIC pour la rentr&amp;eacute;e, avec des sessions sur Windows Phone et Windows 8 en C#/XAML et en JavaScript/HTML5! Toutes ces formations sont &amp;eacute;videmment gratuites, en fran&amp;ccedil;ais, et ouvertes &amp;agrave; tous!&lt;/p&gt;
&lt;h2&gt;Create your Windows 8 app in HTML5&lt;/h2&gt;
&lt;p&gt;How different is Windows 8? What is the rush to build apps for the Windows 8 platform and why are developer communities reacting differently to Windows 8?&amp;nbsp; This Windows Store App course introduces HTML5, CSS3, and JavaScript and helps you&amp;nbsp;learn HTML5/CSS3/JavaScript programming skills. This course is an entry point into both the Web application and Windows Store apps.&lt;/p&gt;
&lt;p style="line-height: 30px; margin: 0; font-size: 16px;"&gt;&lt;img style="float: left;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f09%2fcalendar.png" alt="" /&gt;&amp;nbsp;&lt;a href="http://events.mic-belgique.be/event/create-your-windows-8-app-in-html5" target="_blank"&gt;18 septembre&lt;/a&gt;, &lt;a href="http://events.mic-belgique.be/event/create-your-windows-8-app-in-html5--2" target="_blank"&gt;5 novembre&lt;/a&gt;, &lt;a href="http://events.mic-belgique.be/event/create-your-windows-8-app-in-html5--3" target="_blank"&gt;10 janvier&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The Ins &amp;amp; Outs of Windows Phone 8 apps&lt;/h2&gt;
&lt;p&gt;The ins &amp;amp; outs of Windows Phone 8 is a hands on introduction to building apps for Windows Phone. We&amp;rsquo;ll guide you through the unique aspects of the Windows Phone platform and you&amp;rsquo;ll have the chance to build on your knowledge immediately! Your app at the end of the day!&lt;/p&gt;
&lt;p style="line-height: 30px; margin: 0; font-size: 16px;"&gt;&lt;img style="float: left;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f09%2fcalendar.png" alt="" /&gt;&amp;nbsp;&lt;a href="http://events.mic-belgique.be/event/the-ins-outs-of-windows-phone-8-apps" target="_blank"&gt;30 septembre&lt;/a&gt;, &lt;a href="http://events.mic-belgique.be/event/the-ins-outs-of-windows-phone-8-apps--2" target="_blank"&gt;12 novembre&lt;/a&gt;, &lt;a href="http://events.mic-belgique.be/event/the-ins-outs-of-windows-phone-8-apps--3" target="_blank"&gt;20 janvier&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Making your first Windows 8 app&lt;/h2&gt;
&lt;p&gt;This workshop is a free and fun training from developers, for developers. Expertise is offered in a fun, low key, interactive way and you&amp;rsquo;ll have the chance to test and experiment with your new knowledge!&lt;/p&gt;
&lt;p style="line-height: 30px; margin: 0; font-size: 16px;"&gt;&lt;img style="float: left;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f09%2fcalendar.png" alt="" /&gt;&amp;nbsp;&lt;a href="http://events.mic-belgique.be/event/making-your-first-windows-8-app" target="_blank"&gt;16 octobre&lt;/a&gt;, &lt;a href="http://events.mic-belgique.be/event/making-your-first-windows-8-app" target="_blank"&gt;9 d&amp;eacute;cembre&lt;/a&gt;, &lt;a href="http://events.mic-belgique.be/event/making-your-first-windows-8-app" target="_blank"&gt;12 f&amp;eacute;vrier&lt;/a&gt;&lt;/p&gt;
&lt;p style="line-height: 30px; margin: 0; font-size: 16px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Make your app run into the Cloud&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Et pour &amp;eacute;tendre les capacit&amp;eacute;s de vos apps et lier tout &amp;ccedil;a avec le cloud, sachez qu'une session Cloud &amp;amp; Windows Azure est &amp;eacute;galement pr&amp;eacute;vue et sera donn&amp;eacute;e par&amp;nbsp;&lt;a href="http://be.linkedin.com/in/nicktrogh" target="_blank"&gt;Nick Trogh&lt;/a&gt;, Developer and Platform Evangelist chez Microsoft BELUX.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In this workshop, we&amp;rsquo;ll teach you how to add a cloud backend to your app. Free, fun, no-fluff, you will learn how to add a cloud-based backend service to a Windows Store app using Windows Azure Mobile Services. And you&amp;rsquo;ll have the chance to test and experiment with your new knowledge!&lt;/p&gt;
&lt;p style="line-height: 30px; margin: 0; font-size: 16px;"&gt;&lt;img style="float: left;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f09%2fcalendar.png" alt="" /&gt;&amp;nbsp;&lt;a href="http://events.mic-belgique.be/event/make-your-app-run-into-the-cloud" target="_blank"&gt;11 d&amp;eacute;cembre&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Encore plus de sessions&lt;/h1&gt;
&lt;p&gt;Je donnerai &amp;eacute;galement des formations au MIC Brussels (&lt;a title="Events MIC Bruxelles" href="http://micbru.fikket.com/" target="_blank"&gt;voir leur agenda&lt;/a&gt;) sur les m&amp;ecirc;mes sujets, mais probablement en anglais cette fois (cela d&amp;eacute;pendra de l'audience :)).&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/09/05/Planning-de-la-rentree-2013-2014</link>
      <comments>http://www.renauddumont.be/post/2013/09/05/Planning-de-la-rentree-2013-2014#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=a46bc91d-a7d6-41fd-b63c-9affd42bda65</guid>
      <pubDate>Thu, 05 Sep 2013 07:31:00 +0000</pubDate>
      <category>Windows 8</category>
      <category>Windows Azure</category>
      <category>Windows Phone</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=a46bc91d-a7d6-41fd-b63c-9affd42bda65</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=a46bc91d-a7d6-41fd-b63c-9affd42bda65</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/09/05/Planning-de-la-rentree-2013-2014#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=a46bc91d-a7d6-41fd-b63c-9affd42bda65</wfw:commentRss>
    </item>
    <item>
      <title>Microsoft DreamSpark, des logiciels gratuits à l'intention des étudiants</title>
      <description>&lt;p&gt;Les vacances faisant, cela fait un moment que je n'ai plus post&amp;eacute; d'article sur mon blog. Et, bien que j'aurais aim&amp;eacute; commencer par quelque chose de technique, il m'a sembl&amp;eacute; important pour cette rentr&amp;eacute;e acad&amp;eacute;mique de vous &amp;eacute;crire quelques mots au sujet du programme &lt;strong&gt;DreamSpark&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Pourquoi parler de DreamSpark? Tout simplement parce qu'&amp;agrave; l'&amp;eacute;poque o&amp;ugrave; j'&amp;eacute;tais &amp;eacute;tudiant, comme beaucoup d'autres choses, je ne savais pas que cela existait... et aujourd'hui je me dis que j'aurais aim&amp;eacute; pouvoir en profiter. Je pense que ce programme est injustement m&amp;eacute;connu, alors j'esp&amp;egrave;re qu'il vous servira plus qu'il ne m'a servi &amp;agrave; moi :)&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f08%2fDreamSpark_bL.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;De quoi s'agit-il?&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;DreamSpark &lt;/strong&gt;(&lt;a href="https://www.dreamspark.com/" target="_blank"&gt;https://www.dreamspark.com/&lt;/a&gt;)&amp;nbsp;est un programme annonc&amp;eacute; par Bill Gates lors d'une conf&amp;eacute;rence en 2008 (source: &lt;a href="http://en.wikipedia.org/wiki/DreamSpark" target="_blank"&gt;Wikipedia&lt;/a&gt;), et qui a pour objectif d'offrir aux &amp;eacute;tudiants tous les outils de d&amp;eacute;veloppement dont ils ont besoin, et cela &lt;strong&gt;gratuitement&lt;/strong&gt;! Non non, il n'y a pas de pi&amp;egrave;ge. Pas d'engagement, pas de limite. La seule condition en Belgique: &amp;ecirc;tre &lt;strong&gt;un&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;&amp;eacute;tudiant d'au moins 14 ans&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;L'une des qualit&amp;eacute; dont fait preuve Microsoft, c'est bien de s'occuper de ses d&amp;eacute;veloppeurs. Pour cela, ils ont notamment cr&amp;eacute;&amp;eacute; l'environnement de d&amp;eacute;veloppement Visual Studio que vous connaissez sans doute d&amp;eacute;j&amp;agrave;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f08%2fvisualstudio.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Il existe bien s&amp;ucirc;r des versions gratuites de Visual Studio (limit&amp;eacute;es en fonctionnalit&amp;eacute;s), appel&amp;eacute;es &lt;strong&gt;&lt;a href="http://www.microsoft.com/visualstudio/fra/downloads#d-2012-express"&gt;Visual Studio Express&lt;/a&gt;&lt;/strong&gt;. Mais gr&amp;acirc;ce &amp;agrave; votre statut d'&amp;eacute;tudiant et au programme &lt;strong&gt;DreamSpark&lt;/strong&gt;, vous pouvez notamment t&amp;eacute;l&amp;eacute;charger et utiliser gratuitement &lt;a href="https://www.dreamspark.com/Product/Product.aspx?productid=44" target="_blank"&gt;&lt;strong&gt;Visual Studio Professional 2012&lt;/strong&gt;&lt;/a&gt;, le nouveau &lt;a href="https://www.dreamspark.com/Product/Product.aspx?productid=72" target="_blank"&gt;&lt;strong&gt;Visual Studio Professional 2013 Preview&lt;/strong&gt;&lt;/a&gt;, et des tas d'autres logiciels!&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;Comment en profiter?&lt;/h1&gt;
&lt;p&gt;C'est simple, il suffit de vous rendre ici:&amp;nbsp;&lt;a href="https://www.dreamspark.com/Student/Default.aspx"&gt;https://www.dreamspark.com/Student/Default.aspx&lt;/a&gt;&amp;nbsp;et de cliquer sur &lt;em&gt;Cr&amp;eacute;er un nouveau compte&lt;/em&gt;. Sur cette page, choisissez simplement vos identifiants. Passez ensuite &amp;agrave; l'&amp;eacute;tape suivante: la &lt;strong&gt;v&amp;eacute;rification&lt;/strong&gt;. &lt;em&gt;Pourquoi une v&amp;eacute;rification?&lt;/em&gt; Parce que cette offre est uniquement r&amp;eacute;serv&amp;eacute;e aux &amp;eacute;tudiants!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f08%2fdreamspark-1.png" alt="" /&gt;&lt;/p&gt;
&lt;h3&gt;3 m&amp;eacute;thode de v&amp;eacute;rification&lt;/h3&gt;
&lt;p&gt;Si vous avez &lt;strong&gt;une carte ISIC&lt;/strong&gt;, vous pourrez sans soucis faire valider votre compte.&lt;/p&gt;
&lt;p&gt;Sinon, vous devrez essayer la premi&amp;egrave;re option: &lt;strong&gt;v&amp;eacute;rification par le biais de l'&amp;eacute;tablissement&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Cette solution s'effectue en deux &amp;eacute;tapes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vous s&amp;eacute;lectionnez votre &amp;eacute;tablissement scolaire&lt;/li&gt;
&lt;li&gt;Vous entrez votre adresse email acad&amp;eacute;mique&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En principe, cela devrait fonctionner sans probl&amp;egrave;me. Toutefois, vu les nombreuses restructurations, il arrive parfois que des &amp;eacute;coles/universit&amp;eacute;s changent d'appellation, et donc de nom de domaine. Cela a notamment &amp;eacute;t&amp;eacute; mon cas lorsque j'&amp;eacute;tais &amp;eacute;tudiant puisque j'ai commenc&amp;eacute; mes &amp;eacute;tudes &amp;agrave; l'IRAM, qui est devenu l'HERB, pour finalement se d&amp;eacute;cider sur HELHa.&lt;/p&gt;
&lt;h3&gt;Aucune des deux premi&amp;egrave;res solutions de fonctionne pour moi...&lt;/h3&gt;
&lt;p&gt;Bref, si vous &amp;ecirc;tes certains que votre adresse email acad&amp;eacute;mique est correcte, et que &lt;strong&gt;DreamSpark&lt;/strong&gt; ne veut pas terminer le processus de v&amp;eacute;rification, alors je vous invite &amp;agrave; &lt;strong&gt;me contacter&lt;/strong&gt; (&lt;a href="https://twitter.com/dumontrenaud" target="_blank"&gt;ici&lt;/a&gt; ou &lt;a href="http://www.renauddumont.be/contact" target="_blank"&gt;l&amp;agrave;&lt;/a&gt;) et &lt;strong&gt;je pourrai vous fournir un code de v&amp;eacute;rification&lt;/strong&gt;!&lt;/p&gt;
&lt;h1&gt;Autres avantages&lt;/h1&gt;
&lt;h3&gt;&lt;br /&gt;Plus de logiciels&lt;/h3&gt;
&lt;p&gt;En dehors d'une multitude de versions de Visual Studio, DreamSpark vous donne &amp;eacute;galement acc&amp;egrave;s &amp;agrave; d'autres logiciels comme la suite Expression, des licences Windows Server et SQL Server, et Windows Embedded (&lt;a href="https://www.dreamspark.com/Student/Software-Catalog.aspx#" target="_blank"&gt;https://www.dreamspark.com/Student/Software-Catalog.aspx#&lt;/a&gt;).&lt;/p&gt;
&lt;h3&gt;Des offres partenaires&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://pluralsight.com/training" target="_blank"&gt;Pluralsight &lt;/a&gt;offre &amp;eacute;galement 90 jours d'acc&amp;egrave;s gratuit &amp;agrave; tous les &amp;eacute;tudiants utilisant DreamSpark. Si vous ne connaissez pas Pluralsight, il s'agit d'un proposant des trainings en ligne, en vid&amp;eacute;o, excessivement bien faits! (&lt;a href="https://pluralsight.com/training/offers?cc=Dreamspark" target="_blank"&gt;https://pluralsight.com/training/offers?cc=Dreamspark&lt;/a&gt;)&lt;/p&gt;
&lt;h3&gt;Des comptes d&amp;eacute;veloppeurs gratuits&lt;/h3&gt;
&lt;h3&gt;&lt;img style="font-size: 10px; float: right; margin-left: 10px; margin-right: 10px;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f08%2fDS_Banner_Student_Live1.jpg" alt="" /&gt;&lt;/h3&gt;
&lt;p&gt;En effet, avec compte DreamSpark vous obtenez &amp;eacute;galement un code vous permettant de vous enregistrer sans frais sur le Windows Store (applications pour Windows 8) et sur le Windows Phone Store. Ainsi, vous pourrez m&amp;ecirc;me commencer &amp;agrave; publier vos applications!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Obtenir un code pour le Windows Store&lt;/strong&gt; (bas de page: &lt;a href="https://www.dreamspark.com/Student/Windows-8-App-Development.aspx" target="_blank"&gt;Windows 8&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Obtenir un compte d&amp;eacute;veloppeur Windows Phone&lt;/strong&gt; (suivre les instructions: &lt;a href="https://www.dreamspark.com/Student/Windows-Phone-8-App-Development.aspx" target="_blank"&gt;WP8&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Si vous rencontrez un probl&amp;egrave;me pour l'une des inscriptions, contactez-moi ;)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/08/21/Microsoft-DreamSpark-des-logiciels-gratuits-a-lintention-des-etudiants</link>
      <comments>http://www.renauddumont.be/post/2013/08/21/Microsoft-DreamSpark-des-logiciels-gratuits-a-lintention-des-etudiants#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=c51c0e59-32c0-491c-8e2e-e98aaff37891</guid>
      <pubDate>Wed, 21 Aug 2013 20:08:00 +0000</pubDate>
      <category>Tools</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=c51c0e59-32c0-491c-8e2e-e98aaff37891</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=c51c0e59-32c0-491c-8e2e-e98aaff37891</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/08/21/Microsoft-DreamSpark-des-logiciels-gratuits-a-lintention-des-etudiants#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=c51c0e59-32c0-491c-8e2e-e98aaff37891</wfw:commentRss>
    </item>
    <item>
      <title>[Azure] Backup automatique de SQL Azure et restauration</title>
      <description>&lt;p&gt;Si vous utilisez Azure, et les bases de donn&amp;eacute;es SQL, vous savez que vos donn&amp;eacute;es sont en s&amp;eacute;curit&amp;eacute;s, et que vous pouvez par exemple utiliser la g&amp;eacute;o-r&amp;eacute;plication pour vous assurer que m&amp;ecirc;me en cas de d&amp;eacute;faillance technique d'un datacenter tout entier, vos donn&amp;eacute;es soient toujours disponibles dans un autre datacenter (par exemple sur un autre continent), dans une base de donn&amp;eacute;es synchronis&amp;eacute;e avec celle en production.&lt;/p&gt;
&lt;p&gt;Toutefois, cela ne vous met pas &amp;agrave; l'abris d'une erreur humaine. Si vous effacez des donn&amp;eacute;es importantes, apr&amp;egrave;s synchronisation, vous n'aurez aucun moyen de les r&amp;eacute;cup&amp;eacute;rer. Voici donc un moyen simple de faire des backup r&amp;eacute;guli&amp;egrave;rements pour pouvoir, en cas de p&amp;eacute;pin, restaurer votre base de donn&amp;eacute;es dans un &amp;eacute;tat acceptable.&lt;/p&gt;
&lt;p&gt;Si vous vous connectez au portail et que vous vous rendez dans la section des bases de donn&amp;eacute;es, vous pourrez voir dans la barre d'action en bas qu'il vous est possible d'&lt;strong&gt;exporter&lt;/strong&gt; et d'&lt;strong&gt;importer&lt;/strong&gt; des bases de donn&amp;eacute;es.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f07%2fbackup-1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Regardons d&amp;eacute;j&amp;agrave; ce que cela nous permet:&lt;/p&gt;
&lt;h2&gt;Export manuel&lt;/h2&gt;
&lt;p&gt;L'export permet de cr&amp;eacute;er un fichier BACPAC &amp;agrave; partir d'une base de donn&amp;eacute;es en production. &lt;strong&gt;Qu'est-ce qu'un BACPAC?&lt;/strong&gt; Il s'agit d'un &lt;strong&gt;fichier contenant&lt;/strong&gt; des informations d&amp;eacute;crivant &lt;strong&gt;le sch&amp;eacute;ma d'une base de donn&amp;eacute;es&lt;/strong&gt;,&lt;strong&gt; ainsi que son contenu&lt;/strong&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ce fichier est g&amp;eacute;n&amp;eacute;ralement utilis&amp;eacute; dans deux cas de figure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;migrer une base de donn&amp;eacute;es d'un serveur vers un autre;&lt;/li&gt;
&lt;li&gt;archiver une base de donn&amp;eacute;es (faire un backup).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Globalement, ce fichier nous permettra par la suite d'&amp;ecirc;tre import&amp;eacute; pour cr&amp;eacute;er une nouvelle base de donn&amp;eacute;es &amp;agrave; l'identique sur le serveur de notre choix.&lt;/p&gt;
&lt;p&gt;En s&amp;eacute;lectionnant la base qui nous int&amp;eacute;resse et en cliquant sur Exporter, une fen&amp;ecirc;tre s'ouvre pour nous demander o&amp;ugrave; stocker le fichier de backup. En fait, Azure attends de vous que vous lui indiquiez un conteneur d'un stockage Azure. Le fichier .bacpac va en effet &amp;ecirc;tre stock&amp;eacute; dans un blob.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f07%2fbackup-2-1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Si ce n'est pas d&amp;eacute;j&amp;agrave; fait, cr&amp;eacute;ez donc un compte. Sinon s&amp;eacute;lectionnez celui qui vous convient. Choisissez le conteneur (ici &lt;strong&gt;sqlbackup&lt;/strong&gt;) et entrez les informations de connexion au SQL Server sur lequel se trouve la base de donn&amp;eacute;es. Confirmez, patientez quelques secondes, et vous pourrez finalement retrouver votre fichier sauvegard&amp;eacute; dans votre compte de stockage:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f07%2fbackup-3.png" alt="" /&gt;&lt;/p&gt;
&lt;h2&gt;Import manuel via le portail&lt;/h2&gt;
&lt;p&gt;Pour r&amp;eacute;utiliser maintenant ce fichier via le portail, c'est tr&amp;egrave;s simple: on va utiliser le bouton d'import vue pr&amp;eacute;c&amp;eacute;demment.&lt;/p&gt;
&lt;p&gt;Il suffit alors de fournir le fichier BACPAC cr&amp;eacute;&amp;eacute; juste avant, donner un nom &amp;agrave; la nouvelle base de donn&amp;eacute;es et choisir un serveur sur lequel d&amp;eacute;ployer cette base de donn&amp;eacute;es.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f07%2fbackup-4.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Validez, et vous pourrez voir votre nouvelle base de donn&amp;eacute;es dans le dashboard:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f07%2fbackup-5.png" alt="" /&gt;&lt;/p&gt;
&lt;h2&gt;Automatiser l'export&lt;/h2&gt;
&lt;p&gt;Il existe une API qui permet de faire des exports automatiquement. Vous pourrez trouver ici &lt;a title="SQLDatabaseBackup Tool" href="https://github.com/richorama/SQLDatabaseBackup" target="_blank"&gt;les sources de SQLDatabaseBackup&lt;/a&gt;. Cet outil fait appel &amp;agrave; l'API de Azure pour cr&amp;eacute;er un BACPAC d'un DB et le stocker dans un Blob. La proc&amp;eacute;dure utilis&amp;eacute;e est celle recommand&amp;eacute;e sur MSDN (cf:&amp;nbsp;&lt;a title="Strat&amp;eacute;gie recommand&amp;eacute;e pour backuper un DB SQL Azure" href="http://msdn.microsoft.com/en-us/library/windowsazure/jj650016.aspx" target="_blank"&gt;Windows Azure SQL Database Backup and Restore /&amp;nbsp;Recommended Backup Strategy&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 class="heading" style="color: #db7100; font-family: 'Segoe UI Light', 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 1.286em; font-weight: normal; margin: 0px; padding-bottom: 5px; padding-top: 5px;"&gt;Recommended Backup Strategy&lt;/h2&gt;
&lt;p style="color: #2a2a2a; margin-top: 0px; margin-bottom: 0px; padding-bottom: 15px; line-height: 18px;"&gt;Creating a database copy and then exporting a BACPAC file gives you a transactionally consistent backup file of the database that is portable and can be stored in Windows Azure storage or on-premises locations. This file then can be used for a rollback plan to protect against user or application errors, or in the event of loss of the entire region.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bref, t&amp;eacute;l&amp;eacute;chargez les sources, compilez-les et ouvrez une console pour ex&amp;eacute;cuter l'application en ligne de commande. Voici la liste des param&amp;egrave;tres que vous pouvez utiliser:&lt;/p&gt;
&lt;pre class="brush: ps; first-line: 1; tab-size: 4; toolbar: false; "&gt;    -server [SQL Database server (sans .database.windows.net)]
    -database [la db &amp;agrave; backuper]
    -databasecopy (facultatif) [Le nom de la db temporaire, par d&amp;eacute;faut: database_copy]
    -user [nom d'utilisateur]
    -pwd [mot de passe]
    -storagename [nom du compte de stockage pour les blob]
    -storagekey [cl&amp;eacute; secr&amp;egrave;te du blob storage]
    -container (facultatif) [le conteneur de blob &amp;agrave; utiliser, par d&amp;eacute;faut: sqlbackup]
    -datacenter [le datacenter dans lequel se trouve la db (et non pas le blob storage)]
        (westeurope | southeastasia | eastasia | northcentralus | northeurope | southcentralus | eastus | westus)
    -cleanup&lt;/pre&gt;
&lt;p&gt;Par exemple, ceci pourrait &amp;ecirc;tre une commande valide:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;SQLDatabaseBackup.exe&lt;/strong&gt; -&lt;strong&gt;server&lt;/strong&gt; &lt;em&gt;tfde53dse&lt;/em&gt; -&lt;strong&gt;database&lt;/strong&gt; &lt;em&gt;mydatabase&lt;/em&gt; -&lt;strong&gt;user&lt;/strong&gt; &lt;em&gt;admindb&lt;/em&gt; -&lt;strong&gt;pwd&lt;/strong&gt; &lt;em&gt;password&lt;/em&gt; -&lt;strong&gt;storagename&lt;/strong&gt; &lt;em&gt;storageaccount&lt;/em&gt; -&lt;strong&gt;storagekey&lt;/strong&gt; &lt;em&gt;yUfnVH+iIrO4sgS+Sr60PRzIMUQv5tFPpKYtr03QTKDxl9ZLr4Y7IkxPkQRJrarqnDX5mWCoA==&lt;/em&gt; -&lt;strong&gt;container&lt;/strong&gt; &lt;em&gt;backupfolder&lt;/em&gt; -&lt;strong&gt;datacenter&lt;/strong&gt; &lt;em&gt;westeurope&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pour automatiser cette t&amp;acirc;che, nous allons tout simplement utiliser un fichier &lt;strong&gt;Batch&lt;/strong&gt; et le &lt;strong&gt;Task Scheduler&lt;/strong&gt; de Windows.&lt;/p&gt;
&lt;p&gt;Voici le script &lt;strong&gt;.bat&lt;/strong&gt; qui va lancer l'ex&amp;eacute;cution de l'outil: on ouvre une console, on se d&amp;eacute;place jusqu'&amp;agrave; l'ex&amp;eacute;cutable et on lance la commande:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;START cmd.exe /k "&lt;em&gt;cd C:\Users\path\to\tool\folder\&lt;/em&gt; &lt;strong&gt;&amp;amp;&lt;/strong&gt; &lt;em&gt;SQLDatabaseBackup.exe -server tfde53dse -database mydatabase -user admindb -pwd password -storagename storageaccount -storagekey yUfnVH+iIrO4sgS+Sr60PRzIMUQv5tFPpKYtr03QTKDxl9ZLr4Y7IkxPkQRJrarqnDX5mWCoA== -container backupfolder -datacenter westeurope&lt;/em&gt;"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ouvrez ensuite le &lt;strong&gt;Task Scheduler&lt;/strong&gt;, et cr&amp;eacute;ez une nouvelle t&amp;acirc;che (Create Basic Task): un wizard s'ouvre, qui vous permet de configurer la t&amp;acirc;che:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Son nom&lt;/li&gt;
&lt;li&gt;Sa r&amp;eacute;currence (par exemple, tous les jours &amp;agrave; midi)&lt;/li&gt;
&lt;li&gt;Le type d'action: "Start a program"&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;S&amp;eacute;lectionnez alors le fichier .bat que vous venez de cr&amp;eacute;er.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;Pour finir, allez dans les propri&amp;eacute;t&amp;eacute;s de cette t&amp;acirc;che et faites les modifications suivantes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dans l'onglet &lt;strong&gt;Conditions&lt;/strong&gt;, d&amp;eacute;cochez&amp;nbsp;&lt;strong&gt;D&amp;eacute;marrer la t&amp;acirc;che seulement si l'alimentation est branch&amp;eacute;e&lt;/strong&gt;. En effet, ce qui compte c'est de demander &amp;agrave; Azure de faire le boulot. Ensuite, peu importe que votre PC reste en ligne ou pas, et donc pas de raison de s'inqui&amp;eacute;ter d'une &amp;eacute;ventuelle panne de batterie.&lt;/li&gt;
&lt;li&gt;Dans l'onglet &lt;strong&gt;Settings&lt;/strong&gt;, cochez&amp;nbsp;&lt;strong&gt;Run task as soon as possible after a sceduled start is missed&lt;/strong&gt;. Avec cette option, si votre ordinateur &amp;eacute;tait &amp;eacute;teint au moment o&amp;ugrave; un backup aurait d&amp;ucirc; avoir lieu, ou si pour toute autre raison une t&amp;acirc;che n'a pas pu &amp;ecirc;tre lanc&amp;eacute;e, le Task Scheduler ex&amp;eacute;cutera la t&amp;acirc;che d&amp;egrave;s que possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A priori, comme j'allume rarement mon laptop moins d'une fois par jour, je suis s&amp;ucirc;r gr&amp;acirc;ce &amp;agrave; cette config d'avoir un backup quotidien de mes bases de donn&amp;eacute;es!&lt;/p&gt;
&lt;h2&gt;Restaurer une DB avec SQL Server Management Studio&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;Pour finir, si vous n'avez pas envie de passer par le portail de Windows Azure pour restaurer un fichier BACPAC, vous pouvez &amp;eacute;galement le faire depuis SQL Server Management Studio (&lt;a title="SQL Server Management Studio Express 2012" href="http://msdn.microsoft.com/en-us/evalcenter/hh230763" target="_blank"&gt;version express&lt;/a&gt;, &lt;a title="SQL Server 2012 SP1 Eval" href="http://www.microsoft.com/betaexperience/pd/SQL2012EvalCTA/enus/default.aspx" target="_blank"&gt;version compl&amp;egrave;te d'&amp;eacute;valuation&lt;/a&gt;, ou &lt;a title="SQL Server Managament Studio sur MSDN" href="https://msdn.microsoft.com/en-us/subscriptions/securedownloads/hh442898#searchTerm=sql%20server%202012%20management%20studio%20service&amp;amp;ProductFamilyId=0&amp;amp;Languages=en&amp;amp;PageSize=10&amp;amp;PageIndex=0&amp;amp;FileId=0" target="_blank"&gt;sur MSDN&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Connectez-vous &amp;agrave; votre SQL Server Azure, et faites un clique droit sur le dossier &lt;strong&gt;Databases&lt;/strong&gt; dans l'Object Explorer. S&amp;eacute;lectionnez &lt;strong&gt;Import Data-tier Application...&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f07%2fbackup-6.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Suivez le wizard, qui vous permet &amp;eacute;galement de r&amp;eacute;cup&amp;eacute;rer le fichier BACPAC directement depuis un compte de Blob Storage. Choisissez les settings de la DB (&amp;eacute;dition Web 1Go pour les db standard de WebSite) et lancez l'op&amp;eacute;ration. Et voil&amp;agrave; votre nouvelle base de donn&amp;eacute;es cr&amp;eacute;&amp;eacute;es sur le serveur!&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/07/10/Backup-automatique-de-SQL-Azure-et-restauration</link>
      <comments>http://www.renauddumont.be/post/2013/07/10/Backup-automatique-de-SQL-Azure-et-restauration#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=336158b3-bbbf-46d3-bcdf-444cd312525b</guid>
      <pubDate>Wed, 10 Jul 2013 15:55:00 +0000</pubDate>
      <category>Windows Azure</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=336158b3-bbbf-46d3-bcdf-444cd312525b</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=336158b3-bbbf-46d3-bcdf-444cd312525b</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/07/10/Backup-automatique-de-SQL-Azure-et-restauration#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=336158b3-bbbf-46d3-bcdf-444cd312525b</wfw:commentRss>
    </item>
    <item>
      <title>IE - The browser you loved to hate</title>
      <description>&lt;p&gt;Vous pouvez l'aimer ou pas mais, quoi qu'il en soit, IE10 m&amp;eacute;rite que vous l'essayiez! Si vous &amp;ecirc;tes d&amp;eacute;veloppeurs Web et que vous avez souffert (souffrez toujours) &amp;agrave; cause des vieilles versions d'IE, celle-ci (voire m&amp;ecirc;me la suivante, IE11, d&amp;eacute;j&amp;agrave; dispo sur Windows 8.1) devrait pouvoir vous r&amp;eacute;concilier. Pour faire simple, Microsoft a fait une croix sur le pass&amp;eacute; et apr&amp;egrave;s avoir fait des &lt;a title="IE6 Countdown" href="http://www.ie6countdown.com/" target="_blank"&gt;campagnes d'incitation &amp;agrave; l'abandon de IE6&lt;/a&gt;, on a maintenant droit &amp;agrave; de chouettes initiatives pour changer l'image que l'on peut avoir de IE.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.browseryoulovedtohate.com/" target="_blank"&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f07%2fbrowseryoulovedtohate.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="The browser you loved to hate" href="http://www.browseryoulovedtohate.com/" target="_blank"&gt;Ce site web vous invite &amp;agrave; tester IE&lt;/a&gt;, et tentera de vous faire changer d'avis. Mais en dehors des trucs techniques, j'aimerais juste vous montrer quelques vid&amp;eacute;os post&amp;eacute;es sur Vine, qui montrent encore une fois que l'&amp;eacute;quipe derri&amp;egrave;re IE a pris un r&amp;eacute;el tournant et ne manque pas d'humour :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe src="https://vine.co/v/b0AOnAEVPuV/embed/postcard" width="600" height="600" frameborder="0"&gt;&lt;/iframe&gt; &lt;iframe src="https://vine.co/v/b0ArZHrYMbt/embed/postcard" width="600" height="600" frameborder="0"&gt;&lt;/iframe&gt; &lt;iframe src="https://vine.co/v/b0A99WYtzgB/embed/postcard" width="600" height="600" frameborder="0"&gt;&lt;/iframe&gt; &lt;iframe src="https://vine.co/v/b0JEbzaKKJO/embed/postcard" width="600" height="600" frameborder="0"&gt;&lt;/iframe&gt; &lt;iframe src="https://vine.co/v/b0153hAAB3D/embed/postcard" width="600" height="600" frameborder="0"&gt;&lt;/iframe&gt; &lt;iframe src="https://vine.co/v/b0vQIv72Q30/embed/postcard" width="600" height="600" frameborder="0"&gt;&lt;/iframe&gt; &lt;iframe src="https://vine.co/v/b9QqeAIPgua/embed/postcard" width="600" height="600" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;script charset="utf-8" type="text/javascript" src="//platform.vine.co/static/scripts/embed.js"&gt;&lt;/script&gt;</description>
      <link>http://www.renauddumont.be/post/2013/07/09/IE-The-browser-you-loved-to-hate</link>
      <comments>http://www.renauddumont.be/post/2013/07/09/IE-The-browser-you-loved-to-hate#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=5124fff3-5870-492a-9992-bbd93df70207</guid>
      <pubDate>Tue, 09 Jul 2013 22:04:00 +0000</pubDate>
      <category>Internet Explorer</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=5124fff3-5870-492a-9992-bbd93df70207</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=5124fff3-5870-492a-9992-bbd93df70207</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/07/09/IE-The-browser-you-loved-to-hate#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=5124fff3-5870-492a-9992-bbd93df70207</wfw:commentRss>
    </item>
    <item>
      <title>Build 2013 - Keynote Live Stream au MIC Belgique</title>
      <description>&lt;div style="background-color: #00bcf2; ;padding: 12px;"&gt;&lt;img style="margin-right: 12px; width: 100px; float: left;" src="http://www.buildwindows.com/img/logo-build-small.png" alt="" /&gt;
&lt;p style="color: white; line-height: 100px; margin: 0; font-size: 38px;"&gt;Build 2013 au MIC Belgique&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://events.mic-belgique.be/event/build-2013-keynote-live-stream" target="_blank"&gt;&lt;span style="color: #006b97; font-family: calibri, sans-serif; font-size: 16px; line-height: 24px;"&gt;http://events.mic-belgique.be/event/build-2013-keynote-live-stream&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le 26 juin prochain, Microsoft organise LA conf&amp;eacute;rence &amp;agrave; ne pas manquer pour les d&amp;eacute;veloppeurs! La conf&amp;eacute;rence &lt;strong&gt;Build&lt;/strong&gt;, c'est le moment pour MS de pr&amp;eacute;senter quelques grosses nouveaut&amp;eacute;s et sa vision du futur. Il y a deux ans, Microsoft d&amp;eacute;voilait une &lt;em&gt;preview&lt;/em&gt;&amp;nbsp;de Windows 8 (et offrait par la m&amp;ecirc;me occasion des tablettes Samsung Slate 7 avec cette version de Windows 8 &amp;agrave; tous les participants).&lt;/p&gt;
&lt;p&gt;Depuis, Microsoft a fait du chemin. La Surface, premi&amp;egrave;re tablette enti&amp;egrave;rement &lt;em&gt;brand&amp;eacute;e&lt;/em&gt;&amp;nbsp;Microsoft, est apparue et est disponible dans les magasins. Une nouvelle version de Windows Phone est sortie, rapprochant un petit peu plus les mondes des PC/tablettes et des smartphones. Et la communaut&amp;eacute; des d&amp;eacute;veloppeurs Windows et Windows Phone se d&amp;eacute;veloppe plus que bien en France et en Belgique.&lt;/p&gt;
&lt;p&gt;Et d&amp;eacute;j&amp;agrave;, on arrive &amp;agrave; une nouvelle &amp;eacute;dition de la &lt;strong&gt;Build&lt;/strong&gt;, qui aura lieu cette fois &amp;agrave; &lt;span style="text-decoration: underline;"&gt;San Francisco&lt;/span&gt;. Et vous le savez sans doute: beaucoup de nouveaut&amp;eacute;s sont pr&amp;eacute;vues pour les d&amp;eacute;veloppeurs, notamment &amp;agrave; propos de Windows 8.1!&lt;/p&gt;
&lt;p&gt;Les entr&amp;eacute;es ont &amp;eacute;t&amp;eacute; mises en vente d&amp;eacute;but avril...&lt;/p&gt;
&lt;blockquote class="twitter-tweet" lang="fr"&gt;
&lt;p&gt;Build 2013 registration is officially open! Register now at &lt;a title="http://bit.ly/WJOR5C" href="http://t.co/KpUkjo4nf2" target="_blank"&gt;bit.ly/WJOR5C&lt;/a&gt; &lt;a href="https://twitter.com/search/%23bldwin" target="_blank"&gt;#bldwin&lt;/a&gt;!&lt;/p&gt;
&amp;mdash; BUILD Windows (@bldwin) &lt;a href="https://twitter.com/bldwin/status/319117513403269121" target="_blank"&gt;2 avril 2013&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;... et se sont termin&amp;eacute;es presque aussit&amp;ocirc;t.&lt;/p&gt;
&lt;blockquote class="twitter-tweet" lang="fr"&gt;
&lt;p&gt;Build 2013 is officially sold out! You can still watch keynotes, select sessions, &amp;amp; live Q&amp;amp;A online at &lt;a title="http://bit.ly/X04A2Q" href="http://t.co/vvWojKL0YV" target="_blank"&gt;bit.ly/X04A2Q&lt;/a&gt; &lt;a href="https://twitter.com/search/%23bldwin" target="_blank"&gt;#bldwin&lt;/a&gt;&lt;/p&gt;
&amp;mdash; BUILD Windows (@bldwin) &lt;a href="https://twitter.com/bldwin/status/319464955726409728" target="_blank"&gt;3 avril 2013&lt;/a&gt;&lt;/blockquote&gt;
&lt;script charset="utf-8" type="text/javascript" src="//platform.twitter.com/widgets.js"&gt;&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Malheureusement je ne pourrai pas m'y rendre cette ann&amp;eacute;e :) J'avoue que m&amp;ecirc;me si mon emploi du temps me l'avais permis, le prix total (billets + voyage + logement) m'aurait un peu fait h&amp;eacute;siter.&lt;/p&gt;
&lt;p&gt;Bref, cela n'est pas grave... Heureusement il y aura comme toujours un &lt;em&gt;streaming live&lt;/em&gt; de la &lt;em&gt;Keynote&lt;/em&gt;, cette session d'ouverture. Et avec quelques gars de la communaut&amp;eacute; on s'est dit que ce serait sympa de squatter le MIC pour regarder les annonces ensemble.&lt;/p&gt;
&lt;p&gt;L'event est ouvert &amp;agrave; tous, que vous soyez un passionn&amp;eacute; de technos Microsoft ou juste curieux, n'h&amp;eacute;sitez pas &amp;agrave; nous rejoindre:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://events.mic-belgique.be/event/build-2013-keynote-live-stream" target="_blank"&gt;http://events.mic-belgique.be/event/build-2013-keynote-live-stream&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Bonus:&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Un invit&amp;eacute; de marque sera pr&amp;eacute;sent avec nous ce soir: &lt;strong&gt;&lt;a title="Le blog de David Hernie" href="http://blogs.msdn.com/b/davidhernie/" target="_blank"&gt;David Hernie&lt;/a&gt;&amp;nbsp;(&lt;a title="David Hernie sur Twitter" href="https://twitter.com/davidhernie" target="_blank"&gt;@DavidHernie&lt;/a&gt;), Evangelist Windows 8, Windows Phone et Azure chez Microsoft Belux sera de la partie! :)&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/06/05/Build-2013-Keynote-Live-Stream-au-MIC-Belgique</link>
      <comments>http://www.renauddumont.be/post/2013/06/05/Build-2013-Keynote-Live-Stream-au-MIC-Belgique#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=c45f466a-2116-4796-a103-499eade8187d</guid>
      <pubDate>Wed, 05 Jun 2013 21:54:00 +0000</pubDate>
      <category>Events</category>
      <category>Windows 8</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=c45f466a-2116-4796-a103-499eade8187d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=c45f466a-2116-4796-a103-499eade8187d</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/06/05/Build-2013-Keynote-Live-Stream-au-MIC-Belgique#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=c45f466a-2116-4796-a103-499eade8187d</wfw:commentRss>
    </item>
    <item>
      <title>[Windows 8] Générateur de politique de confidentialité</title>
      <description>&lt;p&gt;Vous le savez sans doute, sur Windows 8, l'utilisateur doit toujours garder le contr&amp;ocirc;le sur son syst&amp;egrave;me. Et pour cela, Microsoft n'a pas seulement fait en sorte que le syst&amp;egrave;me soit s&amp;eacute;curis&amp;eacute;, mais a &amp;eacute;galement &amp;eacute;tabli quelques r&amp;egrave;gles pour nous les d&amp;eacute;veloppeurs. Ces r&amp;egrave;gles visent particuli&amp;egrave;rement &amp;agrave; informer l'utilisateur de l'usage que nous pourrions faire de leurs donn&amp;eacute;es.&lt;/p&gt;
&lt;p&gt;Ainsi, pour utiliser des fonctionnalit&amp;eacute;s de Windows 8 qui touche au respect de la vie priv&amp;eacute;e (GPS, acc&amp;egrave;s aux librairies personnelles comme les documents, les photos, etc, ...), il est n&amp;eacute;cessaire de le d&amp;eacute;clarer explicitement. L'utilisateur verra alors - avant de t&amp;eacute;l&amp;eacute;charger l'application - que vous r&amp;eacute;clamez l'un ou l'autre droit.&lt;/p&gt;
&lt;p&gt;En ce qui concerne l'acc&amp;egrave;s &amp;agrave; internet, les choses sont &amp;eacute;galement tr&amp;egrave;s claires: si votre application fait usage d'internet, vous devez fournir &amp;agrave; l'utilisateur une Politique de Confidentialit&amp;eacute; consultable en ligne!&lt;/p&gt;
&lt;p&gt;Alors si vous &amp;ecirc;tes un peu fain&amp;eacute;ants ou que vous n'avez aucune id&amp;eacute;e de comment h&amp;eacute;berger une page web, voici un petit g&amp;eacute;n&amp;eacute;rateur que j'ai mis en ligne sur mon compte &lt;a title="Le cloud de Microsoft" href="https://www.windowsazure.com" target="_blank"&gt;Windows Azure&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://w8privacy.azurewebsites.net/"&gt;http://w8privacy.azurewebsites.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f06%2fw8privacy.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Rien de tr&amp;egrave;s complexe, mais c'est surtout pratique :) d&amp;eacute;velopp&amp;eacute; en deux temps, trois mouvements avec &lt;a title="Zurb! (&amp;agrave; tes souhaites...)" href="http://foundation.zurb.com/" target="_blank"&gt;Foundation&lt;/a&gt;. L'int&amp;eacute;r&amp;ecirc;t &amp;eacute;tant que vous aurez &lt;strong&gt;une page personnalis&amp;eacute;e (et multilingue!) pour votre&lt;/strong&gt; &lt;strong&gt;application&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Il vous suffit de suivre les &amp;eacute;tapes, et c'est parti, vous aurez une URL unique que vous pourrez utiliser dans la page "&amp;Agrave; propos" de votre application ET dans le formulaire de soumission de votre application sur le Windows Store!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;Bonus&lt;/strong&gt; &lt;/span&gt;: si cela ne vous suffit pas tout &amp;agrave; fait, &lt;strong&gt;les sources sont dispos sur GitHub: &lt;a title="Les sources de W8Privacy" href="https://github.com/MrRenaud/W8Privacy" target="_blank"&gt;W8Privacy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/06/04/Windows-8-Generateur-de-politique-de-confidentialite</link>
      <comments>http://www.renauddumont.be/post/2013/06/04/Windows-8-Generateur-de-politique-de-confidentialite#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=47e7acb6-250c-4ab5-b0e0-7c540a73bdab</guid>
      <pubDate>Tue, 04 Jun 2013 21:37:00 +0000</pubDate>
      <category>Windows 8</category>
      <category>Windows Azure</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=47e7acb6-250c-4ab5-b0e0-7c540a73bdab</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=47e7acb6-250c-4ab5-b0e0-7c540a73bdab</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/06/04/Windows-8-Generateur-de-politique-de-confidentialite#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=47e7acb6-250c-4ab5-b0e0-7c540a73bdab</wfw:commentRss>
    </item>
    <item>
      <title>[ASP.NET MVC4] Comment implémenter la réinitialisation de mot de passe</title>
      <description>&lt;p&gt;Le &lt;em&gt;template&lt;/em&gt; "Internet Application" de ASP.NET MVC4 est hyper complet en ce qui concerne la gestion des comptes utilisateurs. De base, ils permet de cr&amp;eacute;er une application web avec tout ce qu'il faut pour qu'un utilisateur puisse &lt;strong&gt;s'inscrire&lt;/strong&gt;, &lt;strong&gt;se connecter&lt;/strong&gt;, &lt;strong&gt;g&amp;eacute;rer son profil&lt;/strong&gt; et &lt;strong&gt;modifier son mot de passe&lt;/strong&gt;. Avec un minimum de configuration, on peut &amp;eacute;galement permettre aux utilisateurs de &lt;strong&gt;choisir entre un compte local&lt;/strong&gt; (nom d'utilisateur + mot de passe) &lt;strong&gt;et une identification au travers d'un fournisseur d'identit&amp;eacute;&lt;/strong&gt; tel que Facebook, Twitter, Microsoft (Live), Google et Yahoo (ou n'importe quel autre service &amp;agrave; condition d'&amp;eacute;crire soi-m&amp;ecirc;me quelques lignes de code...).&lt;/p&gt;
&lt;p&gt;Tout le code n&amp;eacute;cessaire au bon fonctionnement de ces fonctionnalit&amp;eacute; est int&amp;eacute;gr&amp;eacute; dans le &lt;em&gt;template&lt;/em&gt;. Il n'y a donc pour ainsi dire rien &amp;agrave; faire! :) Vous avez sans doute d&amp;eacute;j&amp;agrave; jet&amp;eacute; un oeil dans le contr&amp;ocirc;leur &lt;em&gt;&lt;strong&gt;AccountController&lt;/strong&gt;&lt;/em&gt;. C'est effectivement l&amp;agrave; que tout se passe. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Une autre fonctionnalit&amp;eacute; disponible dans ASP.NET MVC4 est la &lt;strong&gt;r&amp;eacute;cup&amp;eacute;ration de compte&lt;/strong&gt;. Par r&amp;eacute;cup&amp;eacute;ration de compte, j'entends ici &lt;strong&gt;le fait de pouvoir modifier son mot de passe lorsque l'on a perdu son mot de passe actuel, et que l'on ne peut donc plus se connecter&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Mais contrairement &amp;agrave; ce qui a &amp;eacute;t&amp;eacute; cit&amp;eacute; ci-dessus, il n'y a pas d'&lt;em&gt;action&lt;/em&gt; pr&amp;eacute;vue pour cela dans le &lt;em&gt;template&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;La gestion des comptes avec WebSecurity&lt;/h2&gt;
&lt;p&gt;Il y a eu du changement depuis ASP.NET MVC3. Pr&amp;eacute;c&amp;eacute;demment, tout ce qui concernait la gestion des compte se faisait &amp;agrave; l'aide de la classe &lt;em&gt;&lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx" target="_blank"&gt;Membership&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;. Mais si vous regardez le code de &lt;em&gt;&lt;strong&gt;AccountController&lt;/strong&gt;&lt;/em&gt; dans un projet MVC4, vous verrez qu'on utilise d&amp;eacute;sormais deux autres classes : &lt;a href="http://msdn.microsoft.com/en-us/library/webmatrix.webdata.websecurity(v=vs.111).aspx" target="_blank"&gt;&lt;em&gt;&lt;strong&gt;WebSecurity&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;, et &lt;em&gt;&lt;strong&gt;OAuthWebSecurity&lt;/strong&gt;&lt;/em&gt;. Ces classes sont une nouvelle couche d'abstraction qui permettent de r&amp;eacute;aliser les actions courantes de gestion de compte utilisateur comme la cr&amp;eacute;ation, la modification de mot de passe lorsque l'on est connect&amp;eacute;, etc...&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Sc&amp;eacute;nario de r&amp;eacute;cup&amp;eacute;ration&lt;/h2&gt;
&lt;p&gt;Avant de nous lancer dans l'impl&amp;eacute;mentation de cette proc&amp;eacute;dure, r&amp;eacute;fl&amp;eacute;chissons deux secondes &amp;agrave; ce dont nous avons besoin...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un moyen d'identifier l'utilisateur: son email ou son mot de passe&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 30px;"&gt;En principe l'utilisateur ayant perdu son mot de passe devrait se souvenir de sa propre adresse email. Cela permettra d'identifier le compte que l'on veut r&amp;eacute;cup&amp;eacute;rer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un jeton de modification de mot de passe, avec une date d'expiration.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 30px;"&gt;Lorsque l'utilisateur lancera la proc&amp;eacute;dure de r&amp;eacute;cup&amp;eacute;ration, un jeton sera cr&amp;eacute;&amp;eacute; et sera valable pour une dur&amp;eacute;e limit&amp;eacute;e. Sans ce jeton, pas de r&amp;eacute;cup&amp;eacute;ration possible.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un moyen de contacter l'utilisateur pour lui envoyer son jeton.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 30px;"&gt;&amp;Eacute;videmment, il est hors de question de donner ce jeton &amp;agrave; n'importe quelle personne le demandant. On l'enverra donc &amp;agrave; l'adresse email de l'utilisateur qui a fait la requ&amp;ecirc;te. Ainsi, &amp;agrave; moins qu'une autre personne se soit empar&amp;eacute;e du compte email, on peut &amp;ecirc;tre s&amp;ucirc;r que la requ&amp;ecirc;te &amp;eacute;mane bien du propri&amp;eacute;taire du compte.&lt;/p&gt;
&lt;p&gt;Comme je vous le disais, la classe WebSecurity impl&amp;eacute;mente les t&amp;acirc;ches les plus courantes! :) Et ce m&amp;eacute;canisme aussi!&lt;/p&gt;
&lt;h2&gt;L'impl&amp;eacute;mentation&lt;/h2&gt;
&lt;h3&gt;1/ Obtenir l'adresse email de l'utilisateur&lt;/h3&gt;
&lt;p&gt;On l'a vu, nous aurons besoin d'une adresse email! Par d&amp;eacute;faut, le &lt;em&gt;&lt;strong&gt;UserProfile&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;(la classe servant &amp;agrave; repr&amp;eacute;senter un utilisateur) ne poss&amp;egrave;de pas cet attribut. Mais ce n'est pas un soucis: pour &amp;eacute;toffer le profil utilisateur avec ASP.NET MVC4, il suffit d'ajouter des attributs &amp;agrave; cette classe.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Models/AccountModels.cs&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: 9; tab-size: 4; toolbar: false; "&gt;[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }

    public string Email { get; set; }
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;On va &amp;eacute;galement modifier l&amp;eacute;g&amp;egrave;rement la page d'inscription pour demander &amp;agrave; l'utilisateur cette information suppl&amp;eacute;mentaire:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;/Models/AccountModels.cs&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: [7, 8, 9]; tab-size: 4; toolbar: false; "&gt;public class RegisterModel
{
    [Required]
    [Display(Name = "User name")]
    public string UserName { get; set; }

    [Required]
    [Display(Name = "Email")]
    public string Email { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Views/Account/Register.cshtml&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: [23, 24, 25, 26]; tab-size: 4; toolbar: false; "&gt;@model RecoverPasswordMVC4.Models.RegisterModel
@{
    ViewBag.Title = "Register";
}

&amp;lt;hgroup class="title"&amp;gt;
    &amp;lt;h1&amp;gt;@ViewBag.Title.&amp;lt;/h1&amp;gt;
    &amp;lt;h2&amp;gt;Create a new account.&amp;lt;/h2&amp;gt;
&amp;lt;/hgroup&amp;gt;

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()

    &amp;lt;fieldset&amp;gt;
        &amp;lt;legend&amp;gt;Registration Form&amp;lt;/legend&amp;gt;
        &amp;lt;ol&amp;gt;
            &amp;lt;li&amp;gt;
                @Html.LabelFor(m =&amp;gt; m.UserName)
                @Html.TextBoxFor(m =&amp;gt; m.UserName)
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;
                @Html.LabelFor(m =&amp;gt; m.Email)
                @Html.TextBoxFor(m =&amp;gt; m.Email)
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;
                @Html.LabelFor(m =&amp;gt; m.Password)
                @Html.PasswordFor(m =&amp;gt; m.Password)
            &amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;
                @Html.LabelFor(m =&amp;gt; m.ConfirmPassword)
                @Html.PasswordFor(m =&amp;gt; m.ConfirmPassword)
            &amp;lt;/li&amp;gt;
        &amp;lt;/ol&amp;gt;
        &amp;lt;input type="submit" value="Register" /&amp;gt;
    &amp;lt;/fieldset&amp;gt;
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}&lt;/pre&gt;
&lt;p&gt;&amp;Agrave; ce stade, si l'on ex&amp;eacute;cute l'application et que l'on essaie de se loguer, on pourra voir le r&amp;eacute;sultat suivant :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f05%2frecupaccountmvc4-1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Il reste encore &amp;agrave; modifier l'action &lt;strong&gt;POST&lt;/strong&gt; &lt;em&gt;&lt;strong&gt;Register&lt;/strong&gt; &lt;/em&gt;pour sauver l'Email. Une fois que le compte est cr&amp;eacute;&amp;eacute; &amp;agrave; l'aide de &lt;em&gt;&lt;strong&gt;WebSecurity&lt;/strong&gt;&lt;/em&gt;, on va r&amp;eacute;cup&amp;eacute;rer l'enregistrement UserProfile correspondant, et le mettre &amp;agrave; jour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Controllers/AccountController.cs&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: [13, 14, 15, 16, 17, 18]; tab-size: 4; toolbar: false; "&gt;[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid)
    {
        // Attempt to register the user
        try
        {
            WebSecurity.CreateUserAndAccount(model.UserName, model.Password);

            using (UsersContext context = new UsersContext())
            {
                UserProfile user = context.UserProfiles.FirstOrDefault(u =&amp;gt; u.UserName == model.UserName);
                user.Email = model.Email;
                context.SaveChanges();
            }

            WebSecurity.Login(model.UserName, model.Password);

            return RedirectToAction("Index", "Home");
        }
        catch (MembershipCreateUserException e)
        {
            ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
        }
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}&lt;/pre&gt;
&lt;h3&gt;2/ Demander &amp;agrave; l'utilisateur ses informations de compte&lt;/h3&gt;
&lt;p&gt;On va cr&amp;eacute;er une nouvelle action RecupAccount, et le formulaire correspondant.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Controllers/AccountController.cs&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; tab-size: 4; toolbar: false; "&gt;[AllowAnonymous]
public ActionResult RecupAccount()
{
    return View(new RecupAccountModel());
}&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;L'attribut&amp;nbsp;&lt;em&gt;AllowAnonymous&lt;/em&gt;&amp;nbsp;indique que les utilisateurs peuvent faire appel &amp;agrave; cette action sans &amp;ecirc;tre connect&amp;eacute;s&lt;/strong&gt;. Il est n&amp;eacute;cessaire ici de le d&amp;eacute;clarer explicitement car le&amp;nbsp;&lt;strong&gt;&lt;em&gt;AccountController&lt;/em&gt; &lt;/strong&gt;est d&amp;eacute;cor&amp;eacute; de l'attribut &lt;em&gt;&lt;strong&gt;[Authorized]&lt;/strong&gt;&lt;/em&gt;, ce qui fait que toutes ses actions n&amp;eacute;cessitent par d&amp;eacute;faut d'&amp;ecirc;tre identifi&amp;eacute;.&lt;/p&gt;
&lt;p&gt;La classe &lt;em&gt;&lt;strong&gt;RecupAccountModel&lt;/strong&gt;&lt;/em&gt; poss&amp;egrave;de deux propri&amp;eacute;t&amp;eacute;s. &lt;strong&gt;L'utilisateur devra nous fournir ses donn&amp;eacute;es s'il veut qu'on essaie de s'occuper de son probl&amp;egrave;me! :)&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Models/RecupAccountModel.cs&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; tab-size: 4; toolbar: false; "&gt;public class RecupAccountModel
{
    [Required]
    public string UserName { get; set; }
    [Required]
    public string Email { get; set; }
}&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Views/Account/RecupAccount.cshtml&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; tab-size: 4; toolbar: false; "&gt;@model RecoverPasswordMVC4.Models.RecupAccountModel

@{
    ViewBag.Title = "R&amp;eacute;cup&amp;eacute;ration de compte";
}

&amp;lt;h2&amp;gt;Mot de passe perdu?&amp;lt;/h2&amp;gt;

@using (@Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()
    
    @Html.LabelFor(m =&amp;gt; m.UserName)
    @Html.EditorFor(m =&amp;gt; m.UserName)
    @Html.ValidationMessageFor(m =&amp;gt; m.UserName)

    @Html.LabelFor(m =&amp;gt; m.Email)
    @Html.EditorFor(m =&amp;gt; m.Email)
    @Html.ValidationMessageFor(m =&amp;gt; m.Email)

    &amp;lt;input type="submit" value="Aidez-moi!" /&amp;gt;
}
&lt;/pre&gt;
&lt;p&gt;Notre utilisateur malheureux va donc pouvoir nous envoyer ses infos, que nous allons &amp;eacute;videmment v&amp;eacute;rifier lors de l'envoi du formulaire.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;3/ Envoyer le jeton de r&amp;eacute;initialisation &amp;agrave; l'utilisateur&lt;/h3&gt;
&lt;p&gt;On va donc v&amp;eacute;rifier les donn&amp;eacute;es, et si elles sont correctes,&lt;strong&gt; g&amp;eacute;n&amp;eacute;rer un jeton de r&amp;eacute;initialisation de mot de passe gr&amp;acirc;ce &amp;agrave; la classe &lt;/strong&gt;&lt;em&gt;&lt;strong&gt;WebSecurity&lt;/strong&gt;&lt;/em&gt;. Pour cela, on fait appel &amp;agrave; la m&amp;eacute;thode &lt;strong&gt;&lt;em&gt;GeneratePasswordResetToken&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;qui prend en param&amp;egrave;tre le nom d'utilisateur et le temps avant expiration (facultatif). Par d&amp;eacute;faut, le &lt;em&gt;token&lt;/em&gt; expire apr&amp;egrave;s 1440 minutes (24 heures), mais comme je suis un peu vache j'ai d&amp;eacute;cid&amp;eacute; de ne laisser que 5 minutes &amp;agrave; l'utilisateur pour faire la manip'! :)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Controllers/AccountController.cs&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: 16; tab-size: 4; toolbar: false; "&gt;[HttpPost]
[AllowAnonymous]
public ActionResult RecupAccount(RecupAccountModel model)
{
    // On v&amp;eacute;rifie que les deux champs sont remplis
    if (ModelState.IsValid)
    {
        using (UsersContext context = new UsersContext())
        {
            // Si on trouve un compte qui match avec les infos entr&amp;eacute;es par l'utilisateur...
            if (context.UserProfiles.Any(
                    u =&amp;gt; u.UserName.Equals(model.UserName, StringComparison.OrdinalIgnoreCase) &amp;amp;&amp;amp;
                            u.Email.Equals(model.Email, StringComparison.OrdinalIgnoreCase)))
            {
                // On cr&amp;eacute;e un token permettant de r&amp;eacute;initialiser le mot de passe ...
                string token = WebSecurity.GeneratePasswordResetToken(model.UserName, 5);

                // ... et on l'envoit &amp;agrave; l'utilisateur par email
                MailingService mailingService = new MailingService();
                mailingService.SendTokenByEmail(token, model.Email, model.UserName);

                return View("RecupAccountConfirmed");
            }
            else
            {
                ModelState.AddModelError("", "Le nom d'utilisateur ou l'email est incorrect.");
            }
        }
    }
    return View(model);
}&lt;/pre&gt;
&lt;p&gt;Ensuite on va envoyer ce&amp;nbsp;&lt;em&gt;token&lt;/em&gt;&amp;nbsp;par email. En fait, on va envoyer &amp;agrave; l'utilisateur un lien sur lequel il n'aura qu'&amp;agrave; cliquer pour consommer ce token et r&amp;eacute;initialiser son mot de passe:&lt;/p&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: 1; tab-size: 4; toolbar: false; "&gt;var url = String.Format("{0}/account/resetpassword/?token={1}", SitewebUrl, token);&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Si vous ne savez pas comment envoyer de mail en ASP.NET MVC, vous trouverez l'impl&amp;eacute;mentation de la classe MailingService dans le projet d'exemple t&amp;eacute;l&amp;eacute;chargeable &amp;agrave; la fin de l'article.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f05%2frecupaccountmvc4-2.png" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A ce stade, &lt;strong&gt;soit l'utilisateur nous a donn&amp;eacute; des informations correctes et il re&amp;ccedil;oit un email&lt;/strong&gt;, &lt;strong&gt;soit les informations sont bidons et il revient sur le formulaire avec un message d'erreur&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;4/ V&amp;eacute;rifier le jeton&lt;/h3&gt;
&lt;p&gt;Lorsque l'utilisateur aura re&amp;ccedil;u son email, il naviguera vers un lien du genre: &lt;em&gt;http://monsupersite.be/account/resetpassword/?token=Ddsn32jd3jLJsnd3&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;On va donc&amp;nbsp;&lt;strong&gt;cr&amp;eacute;er cette action, charg&amp;eacute;e de v&amp;eacute;rifier le jeton de l'utilisateur&lt;/strong&gt;. Encore une fois nous allons faire appel &amp;agrave; la classe &lt;em&gt;&lt;strong&gt;WebSecurity&lt;/strong&gt;&lt;/em&gt;. La m&amp;eacute;thode &lt;strong&gt;&lt;em&gt;GetUserIdFromPasswordResetToken&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;permet de r&amp;eacute;cup&amp;eacute;rer l'Id de l'utilisateur li&amp;eacute; au jeton. Si ce dernier a expir&amp;eacute; ou ne correspond &amp;agrave; aucun jeton existant, l'Id retourn&amp;eacute; sera -1.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;/Controllers/AccountController.cs&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: 4; tab-size: 4; toolbar: false; "&gt;[AllowAnonymous]
public ActionResult ResetPassword(string token)
{
    var userId = WebSecurity.GetUserIdFromPasswordResetToken(token);

    using (UsersContext context = new UsersContext())
    {
        UserProfile user = context.UserProfiles.Find(userId);
        if (user == null)
            return View("Error");

        var model = new ResetPasswordModel()
            {
                Token = token,
                UserName = user.UserName
            };

        return View(model);
    }
}&lt;/pre&gt;
&lt;p&gt;Si l'Id ne correspond &amp;agrave; rien, on peut rediriger l'utilisateur vers une page d'erreur, ou plut&amp;ocirc;t lui proposer de refaire une demande de jeton. Le sien ayant peut-&amp;ecirc;tre tout simplement expir&amp;eacute;.&lt;/p&gt;
&lt;h3&gt;5/ Modifier le mot de passe&lt;/h3&gt;
&lt;p&gt;Quoiqu'il en soit, si tout se passe bien, l'utilisateur sera amen&amp;eacute; sur la page de r&amp;eacute;initialisation de son mot de passe. La classe ResetPasswordModel est d&amp;eacute;finie comme ceci. On va avoir besoin de toutes ces valeurs par la suite. On connait d&amp;eacute;j&amp;agrave; le &lt;em&gt;Token&lt;/em&gt; et le &lt;em&gt;UserName&lt;/em&gt;, et l'utilisateur va nous donner le nouveau mot de passe.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Models/Account/ResetPasswordModel.cs&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; tab-size: 4; toolbar: false; "&gt;public class ResetPasswordModel
{
    [Required]
    public string Token { get; set; }
    [Required]
    public string UserName { get; set; }
    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Nouveau mot de passe")]
    public string NewPassword { get; set; }
    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Confirmation mot de passe")]
    public string ConfirmNewPassword { get; set; }
}&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;em&gt;/Views/Account/ResetPassword.cshtml&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class="brush: c-sharp; first-line: 1; tab-size: 4; toolbar: false; "&gt;@model RecoverPasswordMVC4.Models.ResetPasswordModel

@{
    ViewBag.Title = "R&amp;eacute;initialisation du mot de passe";
}

&amp;lt;h2&amp;gt;R&amp;eacute;initialisation du mot de passe&amp;lt;/h2&amp;gt;

@using (@Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()
    
    @Html.HiddenFor(m =&amp;gt; m.Token)
    @Html.HiddenFor(m =&amp;gt; m.UserName)
    
    @Html.LabelFor(m =&amp;gt; m.NewPassword)
    @Html.PasswordFor(m =&amp;gt; m.NewPassword)
    @Html.ValidationMessageFor(m =&amp;gt; m.NewPassword)

    @Html.LabelFor(m =&amp;gt; m.ConfirmNewPassword)
    @Html.PasswordFor(m =&amp;gt; m.ConfirmNewPassword)
    @Html.ValidationMessageFor(m =&amp;gt; m.ConfirmNewPassword)

    &amp;lt;input type="submit" value="Changer mot de passe" /&amp;gt;
}&lt;/pre&gt;
&lt;p&gt;Dans cette vue, les champs &lt;em&gt;Token&lt;/em&gt; et &lt;em&gt;UserName&lt;/em&gt; seront invisibles &amp;agrave; l'utilisateur, mais ils seront envoy&amp;eacute;s avec les autres informations du formulaire.&lt;/p&gt;
&lt;p&gt;Et pour finir, on va v&amp;eacute;rifier que l'utilisateur a bien entr&amp;eacute; deux fois le m&amp;ecirc;me mot de passe, et on va faire une derni&amp;egrave;re fois appel &amp;agrave; la classe &lt;em&gt;&lt;strong&gt;WebSecurity&lt;/strong&gt;&lt;/em&gt;. &lt;strong&gt;La m&amp;eacute;thode &lt;em&gt;ResetPassword&lt;/em&gt; va mettre &amp;agrave; jour le mot de passe en consommant le jeton, et la m&amp;eacute;thode &lt;em&gt;Login&lt;/em&gt; va connecter l'utilisateur &amp;agrave; l'aide de son nom et de son nouveau mot de passe&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;/Controllers/AccountController.cs&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: [12,13]; tab-size: 4; toolbar: false; "&gt;[HttpPost]
[AllowAnonymous]
public ActionResult ResetPassword(ResetPasswordModel model)
{
    if (ModelState.IsValid)
    {
        if (!model.NewPassword.Equals(model.ConfirmNewPassword))
        {
            ModelState.AddModelError("", "Les mots de passe ne correspondent pas.");
            return View(model);
        }
        WebSecurity.ResetPassword(model.Token, model.NewPassword);
        WebSecurity.Login(model.UserName, model.NewPassword);
        return RedirectToAction("Index", "Home");
    }
    return View(model);
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Et voil&amp;agrave;, l'utilisateur pourra &amp;agrave; nouveau se connecter. Il ne reste plus qu'&amp;agrave; ajouter un petit lien "Mot de passe oubli&amp;eacute;?" sur la page de login :&lt;/p&gt;
&lt;pre class="brush: c-sharp; first-line: 1; tab-size: 4; toolbar: false; "&gt;@Html.ActionLink("Mot de passe oubli&amp;eacute; ?", "RecupAccount", "Account")&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour r&amp;eacute;sumer, les diff&amp;eacute;rentes &amp;eacute;tapes de la proc&amp;eacute;dure sont :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1/ Avoir un moyen de contacter l'utilisateur (email).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2/ Mettre en place une page "Mot de passe oubli&amp;eacute;?"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3/ G&amp;eacute;n&amp;eacute;rer un jeton de r&amp;eacute;initialisation et l'envoyer &amp;agrave; l'utilisateur &amp;agrave; l'aide de &lt;em&gt;WebSecurity&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4/ V&amp;eacute;rifier que le jeton est correct avec &lt;em&gt;WebSecurity&lt;/em&gt; et montrer une page demandant un nouveau mot de passe.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5/ R&amp;eacute;initialiser le mot de passe avec &lt;em&gt;WebSecurity&lt;/em&gt; en consommant le jeton&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Ressources&lt;/h2&gt;
&lt;p&gt;Vous pouvez t&amp;eacute;l&amp;eacute;charger la solution d'exemple ici:&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&lt;span style="font-size: x-large;"&gt;&lt;a href="http://sdrv.ms/1863s05" target="_blank"&gt;RecoverPasswordMVC4.zip&lt;/a&gt;&lt;/span&gt;&lt;/pre&gt;</description>
      <link>http://www.renauddumont.be/post/2013/05/26/Comment-implementer-la-reinitialisation-de-mot-de-passe-en-ASPNET-MVC4</link>
      <comments>http://www.renauddumont.be/post/2013/05/26/Comment-implementer-la-reinitialisation-de-mot-de-passe-en-ASPNET-MVC4#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=128879d9-75b2-4d94-9d7a-ff295da92b4a</guid>
      <pubDate>Sun, 26 May 2013 19:04:00 +0000</pubDate>
      <category>ASP.NET MVC</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=128879d9-75b2-4d94-9d7a-ff295da92b4a</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=128879d9-75b2-4d94-9d7a-ff295da92b4a</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/05/26/Comment-implementer-la-reinitialisation-de-mot-de-passe-en-ASPNET-MVC4#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=128879d9-75b2-4d94-9d7a-ff295da92b4a</wfw:commentRss>
    </item>
    <item>
      <title>La Kinect nouvelle génération bientôt disponible sur PC</title>
      <description>&lt;p&gt;Microsoft vient tout juste d'annoncer sa nouvelle console, la &lt;a title="Meet Xbox One" href="http://www.xbox.com/fr-FR/xboxone/meet-xbox-one" target="_blank"&gt;Xbox One&lt;/a&gt;&amp;nbsp;(&lt;a href="http://www.amazon.fr/gp/product/B00CO4BDO2/ref=as_li_qf_sp_asin_il?ie=UTF8&amp;amp;camp=1642&amp;amp;creative=6746&amp;amp;creativeASIN=B00CO4BDO2&amp;amp;linkCode=as2&amp;amp;tag=renadumo-21" target="_blank"&gt;pr&amp;eacute;-commandable sur Amazon&lt;/a&gt;). En gros: un nouveau look, plus de puissance, et &lt;strong&gt;une box all-in-one&lt;/strong&gt;. En effet,&amp;nbsp;elle ne viendra pas seule puisqu'elle sera accompagn&amp;eacute;e de &lt;strong&gt;la Kinect nouvelle g&amp;eacute;n&amp;eacute;ration&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f05%2fe60a4174-44b1-4235-a635-3a470767068c.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;La super bonne nouvelle, m&amp;ecirc;me si cela semblait &amp;eacute;vident, c'est &lt;strong&gt;la confirmation que cette nouvelle Kinect arrivera sur PC prochainement&lt;/strong&gt;. C'est &lt;a href="https://www.shacknews.com/article/79307/kinect-for-xbox-one-coming-to-pc" target="_blank"&gt;ce que rapporte le site Shacknews&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;According to Kinect program manager Scott Evans, Microsoft plans on bringing the new Kinect to PC. "We will bring this to PC," he told us. "We will have more information soon."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On ne sait donc pas encore quand, mais on ne peut qu'&amp;ecirc;tre impatient aux vues des nouvelles possibilit&amp;eacute;s!&lt;/p&gt;
&lt;p&gt;La nouvelle Kinect est de faite &lt;strong&gt;plus pr&amp;eacute;cise&lt;/strong&gt;. Elle permet de d&amp;eacute;tecter et suivre les mouvements du corps &lt;strong&gt;quasiment sans aucune latence&lt;/strong&gt;. Elle peut&lt;strong&gt; suivre enti&amp;egrave;rement jusqu'&amp;agrave; 6 personnes simultan&amp;eacute;ment&lt;/strong&gt;, l&amp;agrave; o&amp;ugrave; la version pr&amp;eacute;c&amp;eacute;dente se limitait &amp;agrave; 2 personnes. La Kinect pouvait d&amp;eacute;j&amp;agrave; suivre les mouvements du corps, mais d&amp;eacute;sormais elle peut le faire avec plus de d&amp;eacute;tails. On peut ainsi &lt;strong&gt;suivre plus d'articulations&lt;/strong&gt;, conna&amp;icirc;tre l'orientation des &amp;eacute;paules et la position m&amp;ecirc;me des pouces des mains. &lt;strong&gt;La Kinect regardera &amp;eacute;galement votre visage&lt;/strong&gt;, pouvant ainsi dire si vous souriez, si vous regardez ou non vers l'&amp;eacute;cran, si vous portez des lunettes, etc... Et plus impressionnant encore, &lt;strong&gt;la Kinect peut monitorer votre rythme cardiaque&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Pour voir le tout en vid&amp;eacute;o, voici &lt;a href="http://www.theverge.com/2013/5/21/4353232/kinect-xbox-one-hands-on" target="_blank"&gt;le test de The Verge: Kinect Xbox One / Hands on&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;iframe src="http://www.youtube.com/embed/t6gHM95JQq0" width="640" height="360" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Quand on voit d&amp;eacute;j&amp;agrave; ce que permettait la derni&amp;egrave;re version du SDK, avec le tracking des mains, la reconnaissance faciale, la mod&amp;eacute;lisation 3D... Cela ne fait nul doute que beaucoup de d&amp;eacute;veloppeurs &amp;agrave; travers le monde doivent &amp;ecirc;tre impatients de voir arriver la version PC et le nouveau SDK qui l'accompagnera!&amp;nbsp;&lt;img title="Smile" src="http://www.renauddumont.be/editors/tiny_mce_3_5_8/plugins/emotions/img/smiley-smile.gif" alt="Smile" border="0" /&gt;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/05/22/La-Kinect-nouvelle-generation-bientot-disponible-sur-PC</link>
      <comments>http://www.renauddumont.be/post/2013/05/22/La-Kinect-nouvelle-generation-bientot-disponible-sur-PC#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=8f429399-ce67-4dff-b3af-292b3562651d</guid>
      <pubDate>Wed, 22 May 2013 06:54:00 +0000</pubDate>
      <category>Kinect</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=8f429399-ce67-4dff-b3af-292b3562651d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=8f429399-ce67-4dff-b3af-292b3562651d</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/05/22/La-Kinect-nouvelle-generation-bientot-disponible-sur-PC#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=8f429399-ce67-4dff-b3af-292b3562651d</wfw:commentRss>
    </item>
    <item>
      <title>[Windows 8] Développez en HTML 5 pour Windows 8</title>
      <description>&lt;p style="text-align: center;"&gt;&lt;strong&gt;* Petite pub perso&amp;nbsp;&lt;img title="Tongue Out" src="http://www.renauddumont.be/editors/tiny_mce_3_5_8/plugins/emotions/img/smiley-tongue-out.gif" alt="Tongue Out" border="0" /&gt;&amp;nbsp;*&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;Ces derniers moi j'ai &amp;eacute;crit un bouquin traitant de&amp;nbsp;&lt;strong&gt;Windows 8&lt;/strong&gt; avec &lt;a href="http://be.linkedin.com/in/loicbar" target="_blank"&gt;Lo&amp;iuml;c Bar&lt;/a&gt; et &lt;a href="http://www.linkedin.com/in/simonboigelot" target="_blank"&gt;Simon Boigelot&lt;/a&gt;. Ce livre parle du d&amp;eacute;veloppement d'applications pour le store Windows 8 &lt;strong&gt;&amp;agrave; base de HTML 5 et de JavaScript&lt;/strong&gt; !&lt;/p&gt;
&lt;p&gt;Ce livre s'adresse aux d&amp;eacute;butants, aux personnes n'ayant pas n&amp;eacute;cessairement d'exp&amp;eacute;rience avec les technologies du monde Microsoft. Vous n'avez jamais fait de .NET? Mais vous avez d&amp;eacute;j&amp;agrave; bidouill&amp;eacute; avec du HTML?&lt;/p&gt;
&lt;p&gt;Si vous voulez passer &amp;agrave; la vitesse sup&amp;eacute;rieure, tirer profit du nouvel OS de Microsoft et pourquoi pas commencer &amp;agrave; gagner un peu d'argent en vendant vos applications, ce livre est pour vous ! :)&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="http://www.amazon.fr/gp/product/282240142X/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=1642&amp;amp;creative=6746&amp;amp;creativeASIN=282240142X&amp;amp;linkCode=as2&amp;amp;tag=renadumo-21"&gt;D&amp;eacute;veloppez en HTML 5 pour Windows 8&lt;/a&gt;&lt;img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.fr/e/ir?t=renadumo-21&amp;amp;l=as2&amp;amp;o=8&amp;amp;a=282240142X" alt="" width="1" height="1" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.amazon.fr/gp/product/282240142X/ref=as_li_tf_il?ie=UTF8&amp;amp;camp=1642&amp;amp;creative=6746&amp;amp;creativeASIN=282240142X&amp;amp;linkCode=as2&amp;amp;tag=renadumo-21"&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://ws.assoc-amazon.fr/widgets/q?_encoding=UTF8&amp;amp;ASIN=282240142X&amp;amp;Format=_SL160_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=FR&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=renadumo-21" alt="" border="0" /&gt;&lt;/a&gt;&lt;img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.fr/e/ir?t=renadumo-21&amp;amp;l=as2&amp;amp;o=8&amp;amp;a=282240142X" alt="" width="1" height="1" border="0" /&gt;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/04/29/Windows-8-Developpez-en-HTML-5-pour-Windows-8</link>
      <comments>http://www.renauddumont.be/post/2013/04/29/Windows-8-Developpez-en-HTML-5-pour-Windows-8#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=f7c47018-3ed0-4e49-9ea7-8da4b9736a10</guid>
      <pubDate>Mon, 29 Apr 2013 14:53:00 +0000</pubDate>
      <category>Windows 8</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=f7c47018-3ed0-4e49-9ea7-8da4b9736a10</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=f7c47018-3ed0-4e49-9ea7-8da4b9736a10</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/04/29/Windows-8-Developpez-en-HTML-5-pour-Windows-8#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=f7c47018-3ed0-4e49-9ea7-8da4b9736a10</wfw:commentRss>
    </item>
    <item>
      <title>[Windows 8] Créer un timer rond en XAML</title>
      <description>&lt;p&gt;Pour le &lt;strong&gt;d&amp;eacute;veloppement du jeu &lt;a href="http://apps.microsoft.com/webpdp/app/9d641878-1e9c-477b-86c7-ba186ab90c76" target="_blank"&gt;WordDefy pour Windows 8&lt;/a&gt;&lt;/strong&gt;, &lt;a href="http://www.devillu.com" target="_blank"&gt;Matthieu&lt;/a&gt;&amp;nbsp;(&lt;a href="http://www.twitter.com/MatthieuVdh" target="_blank"&gt;@MatthieuVdh&lt;/a&gt;)&amp;nbsp;et moi avons demand&amp;eacute; l'aide d'une amie graphiste. Et comme elle nous a rapidement pondu un super truc, la moindre des choses c'&amp;eacute;tait de tenter de le reproduire &amp;agrave; l'identique ! Il y a plusieurs bons c&amp;ocirc;t&amp;eacute;s &amp;agrave; cela : premi&amp;egrave;rement on a une app avec un look plut&amp;ocirc;t sympa, et deuxi&amp;egrave;mement j'ai pu jouer avec Blend et m'amuser avec le XAML, ce qui fait que j'ai appris pas mal de choses!&lt;/p&gt;
&lt;p&gt;Une des parties consistait &amp;agrave; reproduire un &lt;em&gt;Timer&lt;/em&gt; en forme de cercle. Pour que vous y voyez plus clair, voici le compteur original tel que &lt;em&gt;design&amp;eacute;&lt;/em&gt; et le r&amp;eacute;sultat final (qui est assez ressemblant :)) en XAML :&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;Design original&lt;br /&gt;&lt;/em&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fworddefy-timer-original.png" alt="Design original" /&gt;&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;em&gt;R&amp;eacute;sultat en XAML&lt;br /&gt;&lt;/em&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fworddefy-timer-xaml.png" alt="XAML" /&gt;&lt;/p&gt;
&lt;h1&gt;Conception d'un RoundedTimer&lt;/h1&gt;
&lt;p&gt;Il existe plein d'exemples de timer sur le web, mais aucun fonctionnant sous WinRT. Et &amp;eacute;videmment, le XAML sur Windows 8 a quelques particularit&amp;eacute;s qui font que l'exemple ne sont pas toujours utilisables. J'en ai donc recr&amp;eacute;&amp;eacute; un avec Blend !&lt;/p&gt;
&lt;h2&gt;G&amp;eacute;n&amp;eacute;rer un Path&lt;/h2&gt;
&lt;p&gt;La premi&amp;egrave;re &amp;eacute;tape consiste &amp;agrave; cr&amp;eacute;er le cercle du compteur. Ce cercle doit &amp;ecirc;tre transparent au milieu. Pour faire cela, on va utiliser deux &lt;strong&gt;Ellipses&lt;/strong&gt; et les &lt;strong&gt;combiner&lt;/strong&gt; (ou plus pr&amp;eacute;cis&amp;eacute;ment les soustraire). Placez donc deux Ellipses de mani&amp;egrave;re &amp;agrave; ce qu'elles soient centr&amp;eacute;es sur le m&amp;ecirc;me point, et avec l'une d'elle l&amp;eacute;g&amp;egrave;rement plus petite que l'autre.&lt;/p&gt;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fworddefy-timer-concept1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Le code jusqu'&amp;agrave; pr&amp;eacute;sent:&lt;/p&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: [2,3]; tab-size: 4; toolbar: false; "&gt;    &amp;lt;Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"&amp;gt;
    	&amp;lt;Ellipse Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="200" Margin="160,240,0,0" Stroke="Black" VerticalAlignment="Top" Width="200"/&amp;gt;
    	&amp;lt;Ellipse Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="140" Margin="190,270,0,0" Stroke="Black" VerticalAlignment="Top" Width="140"/&amp;gt;
    &amp;lt;/Grid&amp;gt;&lt;/pre&gt;
&lt;p&gt;Pour obtenir le r&amp;eacute;sultat voulu, on peut donc &lt;strong&gt;soustraire&lt;/strong&gt; la deuxi&amp;egrave;me Ellipse &amp;agrave; la premi&amp;egrave;re ou&lt;strong&gt; exclure les zones de chevauchement&lt;/strong&gt; (lisez aussi &lt;a href="http://msdn.microsoft.com/fr-fr/library/windows/apps/jj155053.aspx" target="_blank"&gt;Combiner des formes et des trac&amp;eacute;s (Blend pour Visual Studio)&lt;/a&gt;). Faites un clique droit sur l'arbre visuel et les Ellipses s&amp;eacute;lectionn&amp;eacute;es et choisissez l'op&amp;eacute;ration qui vous convient dans le menu &lt;strong&gt;Combiner&lt;/strong&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fworddefy-timer-concept2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Le r&amp;eacute;sultat de cette op&amp;eacute;ration est &lt;strong&gt;un Path g&amp;eacute;n&amp;eacute;r&amp;eacute;&lt;/strong&gt; en remplacement des deux &lt;strong&gt;Ellipses&lt;/strong&gt; pr&amp;eacute;c&amp;eacute;demment cr&amp;eacute;&amp;eacute;es. Le r&amp;eacute;sultat devrait ressembler &amp;agrave; ceci:&lt;/p&gt;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fworddefy-timer-concept3.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Et le code correspondant :&amp;nbsp;&lt;/p&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: 2; tab-size: 4; toolbar: false; "&gt;    &amp;lt;Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"&amp;gt;
    	&amp;lt;Path Data="M100,30.5 C61.6162,30.5 30.5,61.6162 30.5,100 C30.5,138.384 61.6162,169.5 100,169.5 C138.384,169.5 169.5,138.384 169.5,100 C169.5,61.6162 138.384,30.5 100,30.5 z M100,0.5 C154.952,0.5 199.5,45.0477 199.5,100 C199.5,154.952 154.952,199.5 100,199.5 C45.0477,199.5 0.5,154.952 0.5,100 C0.5,45.0477 45.0477,0.5 100,0.5 z" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="200" Margin="160,240,0,0" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" VerticalAlignment="Top" Width="200"/&amp;gt;
    &amp;lt;/Grid&amp;gt;&lt;/pre&gt;
&lt;p&gt;Ce cercle est la base de notre RoundedTimer... Passons &amp;agrave; l'&amp;eacute;tape suivante: le clipping ! :)&lt;/p&gt;
&lt;h2&gt;Clipping Path&lt;/h2&gt;
&lt;p&gt;Le principe du &lt;em&gt;clipping path&lt;/em&gt; est d'utiliser un &amp;eacute;l&amp;eacute;ment pour d&amp;eacute;limiter la zone visible d'un autre &amp;eacute;l&amp;eacute;ment. Malheureusement dans les apps Windows Store on ne peut pas utiliser un Path pour "masquer" un autre &amp;eacute;l&amp;eacute;ment. Par contre on peut utiliser des Ellipse et des Rectangle pour d&amp;eacute;limiter une zone.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ajoutons par exemple un Rectangle dans sur un coin de notre cercle :&amp;nbsp;&lt;/p&gt;
&lt;pre class="brush: xml; first-line: 1; highlight: 2; tab-size: 4; toolbar: false; "&gt;&amp;lt;Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"&amp;gt;
    &amp;lt;Rectangle Margin="160,240,1106,428" Width="100" Height="100"/&amp;gt;
    &amp;lt;Path Data="M100,30.5 C61.6162,30.5 30.5,61.6162 30.5,100 C30.5,138.384 61.6162,169.5 100,169.5 C138.384,169.5 169.5,138.384 169.5,100 C169.5,61.6162 138.384,30.5 100,30.5 z M100,0.5 C154.952,0.5 199.5,45.0477 199.5,100 C199.5,154.952 154.952,199.5 100,199.5 C45.0477,199.5 0.5,154.952 0.5,100 C0.5,45.0477 45.0477,0.5 100,0.5 z" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="200" Margin="160,240,0,0" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" VerticalAlignment="Top" Width="200"/&amp;gt;
&amp;lt;/Grid&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fworddefy-timer-concept4-2.png" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Le r&amp;eacute;sultat obtenu est le suivant :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fworddefy-timer-concept5.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;On se retrouve avec un quart de cercle, ce qui va en fait repr&amp;eacute;senter un quart de notre RoundedTimer ! Ce qu'il reste &amp;agrave; faire est d'animer ce quart de Timer pour repr&amp;eacute;senter le temps qui s'&amp;eacute;coule.&lt;/p&gt;
&lt;h2&gt;Animer le Timer&lt;/h2&gt;
&lt;p&gt;Pour cela on va utiliser une Transformation sur l'&amp;eacute;l&amp;eacute;ment RectangleGeometry. A vrai dire il y a sans doute plusieurs fa&amp;ccedil;on d'arriver au m&amp;ecirc;me r&amp;eacute;sultat ! Pour ma part j'y suis arriv&amp;eacute; en utilisant un SkewTransform.&lt;/p&gt;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fskew-transform-msdn.gif" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Si l'on reprend le quart de cercle pr&amp;eacute;c&amp;eacute;dent, on peut l'animer en utilisant la transformation correcte :&amp;nbsp;&lt;/p&gt;
&lt;pre class="brush: xml; first-line: 1; highlight: [4,5,6,7]; tab-size: 4; toolbar: false; "&gt;&amp;lt;Path Data="M100,30.5 C61.6162,30.5 30.5,61.6162 30.5,100 C30.5,138.384 61.6162,169.5 100,169.5 C138.384,169.5 169.5,138.384 169.5,100 C169.5,61.6162 138.384,30.5 100,30.5 z M100,0.5 C154.952,0.5 199.5,45.0477 199.5,100 C199.5,154.952 154.952,199.5 100,199.5 C45.0477,199.5 0.5,154.952 0.5,100 C0.5,45.0477 45.0477,0.5 100,0.5 z" Fill="White" HorizontalAlignment="Left" Height="200" Margin="160,240,0,0" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" VerticalAlignment="Top" Width="200"&amp;gt;
	&amp;lt;Path.Clip&amp;gt;
		&amp;lt;RectangleGeometry Rect="0,0,100,100"&amp;gt;
			&amp;lt;RectangleGeometry.Transform&amp;gt;
                &amp;lt;!-- AngleY : De 0 &amp;agrave; 90 --&amp;gt;
                &amp;lt;SkewTransform CenterX="100" CenterY="100" AngleY="0"/&amp;gt;
            &amp;lt;/RectangleGeometry.Transform&amp;gt;
		&amp;lt;/RectangleGeometry&amp;gt;
	&amp;lt;/Path.Clip&amp;gt;
&amp;lt;/Path&amp;gt;&lt;br /&gt;&lt;br /&gt;En modifiant la valeur de la propri&amp;eacute;t&amp;eacute; &lt;strong&gt;AngleY&lt;/strong&gt;, on peut animer joliment le timer ! Ainsi, avec un angle de 40&amp;deg;, on retrouve la forme suivante :&lt;/pre&gt;
&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.renauddumont.be/image.axd?picture=%2f2013%2f04%2fworddefy-timer-concept6.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Il ne reste donc plus qu'&amp;agrave; cr&amp;eacute;er trois autres quarts du timer, et &amp;agrave; les animer en changeant la valeur d'un des angles toutes les secondes gr&amp;acirc;ce &amp;agrave; un DispatcherTimer. L'important &amp;eacute;tant de voir comment appliquer la SkewTransformation, en jouant sur les propri&amp;eacute;t&amp;eacute;s Center et Angle !&lt;/p&gt;
&lt;h1&gt;T&amp;eacute;l&amp;eacute;chargement / Sources&lt;/h1&gt;
&lt;p&gt;Vous pouvez&lt;a href="https://github.com/MrRenaud/RoundedTimer" target="_blank"&gt; t&amp;eacute;l&amp;eacute;charger le r&amp;eacute;sultat final sous la forme d'une contr&amp;ocirc;le sur GitHub&lt;/a&gt; ! &amp;Agrave; vous de le customiser ! :)&lt;/p&gt;
&lt;p&gt;Pour l'int&amp;eacute;grer dans votre app, rien de plus simple :&lt;/p&gt;
&lt;pre class="brush: xml; first-line: 1; highlight: [7,10]; tab-size: 4; toolbar: false; "&gt;&amp;lt;Page
    x:Class="TestApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:roundedTimer="using:RoundedTimer"
    mc:Ignorable="d"&amp;gt;
    &amp;lt;Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"&amp;gt;
        &amp;lt;roundedTimer:RoundedTimer x:Name="MyTimer" Width="200" Height="200" Duration="00:01:00" /&amp;gt;
    &amp;lt;/Grid&amp;gt;
&amp;lt;/Page&amp;gt;
&lt;/pre&gt;
&lt;p&gt;On instancie le timer dans le XAML, et on d&amp;eacute;marre le d&amp;eacute;compte avec un appel &amp;agrave; la m&amp;eacute;thode &lt;em&gt;Start()&lt;/em&gt; dans le code-behind :&lt;/p&gt;
&lt;pre class="brush: c-sharp; first-line: 1; highlight: 3; tab-size: 4; toolbar: false; "&gt;        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            MyTimer.Start();
        }&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>http://www.renauddumont.be/post/2013/04/15/Windows-8-Creer-un-timer-rond-en-XAML</link>
      <comments>http://www.renauddumont.be/post/2013/04/15/Windows-8-Creer-un-timer-rond-en-XAML#comment</comments>
      <guid>http://www.renauddumont.be/post.aspx?id=fcd21aca-0c93-4235-9754-40259f412805</guid>
      <pubDate>Mon, 15 Apr 2013 21:27:00 +0000</pubDate>
      <category>Expression Blend</category>
      <category>Windows 8</category>
      <category>XAML</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://www.renauddumont.be/pingback.axd</pingback:server>
      <pingback:target>http://www.renauddumont.be/post.aspx?id=fcd21aca-0c93-4235-9754-40259f412805</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.renauddumont.be/trackback.axd?id=fcd21aca-0c93-4235-9754-40259f412805</trackback:ping>
      <wfw:comment>http://www.renauddumont.be/post/2013/04/15/Windows-8-Creer-un-timer-rond-en-XAML#comment</wfw:comment>
      <wfw:commentRss>http://www.renauddumont.be/syndication.axd?post=fcd21aca-0c93-4235-9754-40259f412805</wfw:commentRss>
    </item>
  </channel>
</rss>