<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>c2i.fr - WinRT</title><link>http://www.c2i.fr:80/Tags/WinRT</link><description>c2i.fr - WinRT</description><item><title>Demo du Unreal Engine sur WinRT</title><link>http://www.c2i.fr:80/actualites/demo-du-unreal-engine-sur-winrt</link><description>&lt;p&gt;&lt;iframe width="640" height="360" src="http://www.youtube.com/embed/gHHApNJS3LQ" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/p&gt;</description><pubDate>Wed, 29 Aug 2012 19:30:25 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/demo-du-unreal-engine-sur-winrt</guid></item><item><title>Développez sur Windows 8 sans Windows 8 : Virtual Labs</title><link>http://www.c2i.fr:80/actualites/developpez-sur-windows-8-sans-windows-8-virtual-labs</link><description>&lt;p&gt;Je pense qu'ils existent depuis quelques temps mais je n'en avais jamais entendu parler.&lt;/p&gt;
&lt;p&gt;Microsoft vous propose de tester le d&amp;eacute;veloppement d'applications Windows 8&amp;nbsp;WinRT&amp;nbsp;sans avoir install&amp;eacute; Windows 8 gr&amp;acirc;ce &amp;agrave; des serveurs virtuels.&lt;/p&gt;
&lt;p&gt;Pr&amp;egrave;s de 17 labs vous sont propos&amp;eacute;s en C#et en javascript. Cela va d'un simple Hello World &amp;agrave; la gestion des roaming settings en passant par l'utilisation du semantic zoom et le Windows Store.&lt;/p&gt;
&lt;p&gt;Apr&amp;egrave;s installation d'un ActiveX (oui, ca existe toujours ces b&amp;ecirc;tes l&amp;agrave; ;-)), vous aurez acc&amp;egrave;s &amp;agrave; une machine virtuelle vous permettant de tester la b&amp;ecirc;te.&lt;/p&gt;
&lt;p&gt;Tr&amp;egrave;s int&amp;eacute;ressante comme initiative, cela permet de d&amp;eacute;marrer simplement sous Windows 8.&lt;/p&gt;
&lt;p&gt;NB : c'est la version Release Preview qui est propos&amp;eacute;e et pas la RTM. Donc je pense que ces labs risquent de disparaitre prochainement et/ou d'&amp;ecirc;tre mis &amp;agrave; jour avec la version RTM.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/jj206431.aspx"&gt;http://msdn.microsoft.com/en-us/jj206431.aspx&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 09 Aug 2012 08:26:16 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/developpez-sur-windows-8-sans-windows-8-virtual-labs</guid></item><item><title>Comment “cuisiner” une application Windows 8 avec XAML et C# en une semaine–Jour 4</title><link>http://www.c2i.fr:80/actualites/comment-%E2%80%9Ccuisiner%E2%80%9D-une-application-windows-8-avec-xaml-et-c-en-une-semaine%E2%80%93jour-4</link><description>&lt;p&gt;Eric Verni&amp;eacute; de Microsoft France continue l'adaptation de l'application de David Catuhe en Hmlt5/javascript pour Windows 8.&lt;/p&gt;
&lt;p&gt;Il nous d&amp;eacute;crit entre autres la connection &amp;agrave; Skydrive via le Live SDK.&lt;/p&gt;
&lt;p&gt;Une s&amp;eacute;rie d'articles &amp;agrave; lire quand vous d&amp;eacute;butez dans la programmation pour WinRT/Windows 8.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/devosaure/archive/2012/07/31/comment-cuisiner-une-application-windows-8-avec-xaml-et-c-en-une-semaine-jour-4.aspx"&gt;http://blogs.msdn.com/b/devosaure/archive/2012/07/31/comment-cuisiner-une-application-windows-8-avec-xaml-et-c-en-une-semaine-jour-4.aspx&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 01 Aug 2012 15:21:03 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/comment-%E2%80%9Ccuisiner%E2%80%9D-une-application-windows-8-avec-xaml-et-c-en-une-semaine%E2%80%93jour-4</guid></item><item><title>Les API Win32 supportés par Metro</title><link>http://www.c2i.fr:80/articles/les-api-win32-supportes-par-metro</link><description>&lt;p&gt;Suite &amp;agrave; mon pr&amp;eacute;c&amp;eacute;dent article, certaines personnes se demandaient qu'elles &amp;eacute;taient ces fameuses API Win32 support&amp;eacute;es par Metro.&lt;/p&gt;
&lt;p&gt;La liste compl&amp;egrave;te est disponible ici : &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br205757.aspx"&gt;http://msdn.microsoft.com/en-us/library/windows/apps/br205757.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Elles sont class&amp;eacute;es en 10 cat&amp;eacute;gories :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br205753.aspx"&gt;Data&lt;/a&gt; : File System, Jet (et oui ;-)) et XML,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br205754.aspx"&gt;Devices&lt;/a&gt; : Device access, Game controllers, Windows portable devices,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br205755.aspx"&gt;Diagnostics&lt;/a&gt; : Debugging &amp;amp; error handling, Last Error, Windows Error Reporting, Windows Event,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br205756.aspx"&gt;Graphics&lt;/a&gt; : Direct2D, Direct3D, DirectWrite, DirectMath, Windows Imaging Component,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh452756.aspx"&gt;Multimedia&lt;/a&gt; : Camera, Core Audio, Media Foundation, XAudio2&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br205759.aspx"&gt;Networking&lt;/a&gt; : Dynamic Host Configuration Protocol, Mobile Broadband, Windows Web Services, XML Http Request,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br205760.aspx"&gt;Printing &amp;amp; documents&lt;/a&gt; : Printing, XPS documents,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br205762.aspx"&gt;System&lt;/a&gt; : COM, Compression, DLLs, Info, Integers, Large Integer, Loader, Memory, RDP, Processes, Threads and synchronization, Time,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh452772.aspx"&gt;User interface&lt;/a&gt; : Accessibility, Globalization, Property system, Spell check, Strings, Text services framework, Windows animation,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/hh464945.aspx"&gt;Alternatives to Windows APIs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comme vous pouvez le voir, il y a quand m&amp;ecirc;me pas mal d'APIs qui sont disponilbes nativement dans le framework. Donc &amp;agrave; n'utiliser que si vous n'y arrivez pas avec du simple code C#/VB .NET (non, je ne parlerais pas de javascript ici ;-))).&lt;/p&gt;</description><pubDate>Tue, 31 Jul 2012 09:49:11 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/articles/les-api-win32-supportes-par-metro</guid></item><item><title>Tester l'existence d'un fichier avec les API Win32 pour WinRT</title><link>http://www.c2i.fr:80/articles/tester-l-existence-d-un-fichier-avec-les-api-win32-pour-winrt</link><description>&lt;p&gt;C&amp;rsquo;est un sujet qui revient p&amp;eacute;riodiquement quand vous d&amp;eacute;veloppez une application pour Metro : comment savoir si un fichier existe d&amp;eacute;j&amp;agrave; ?&lt;/p&gt;
&lt;p&gt;Malheureusement, les API de WinRT ne proposent pas par d&amp;eacute;faut de m&amp;eacute;thode comme FileExists du Framework 1.0 de .NET ! Pour l&amp;rsquo;instant, je n&amp;rsquo;ai trouv&amp;eacute; que deux possibilit&amp;eacute;s.&lt;/p&gt;
&lt;h1&gt;Par it&amp;eacute;ration&lt;/h1&gt;
&lt;p&gt;On effectue une it&amp;eacute;ration sur l&amp;rsquo;ensemble des fichiers du StorageFolder et d&amp;egrave;s qu&amp;rsquo;on a trouv&amp;eacute; le fichier recherch&amp;eacute;, on retourne true, sinon on retourne false. Cette m&amp;eacute;thode a &amp;eacute;t&amp;eacute; expos&amp;eacute;e par &lt;a href="http://blogs.msdn.com/b/eternalcoding/archive/2012/07/04/tips-and-tricks-for-c-metro-developers-the-fileexistsasync-method.aspx" target="_blank"&gt;David Catuhe sur son blog&lt;/a&gt; et se r&amp;eacute;sume ainsi :&lt;/p&gt;
&lt;pre class="brush: csharp;"&gt;public static class StorageFolderExtensions
{
    public static async Task&amp;lt;bool&amp;gt; FileExistsAsync(this StorageFolder folder, string name)
    {
        var files = await folder.GetFilesAsync();

        return files.Any(f =&amp;gt; f.Name == name);
    }
}
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;inconv&amp;eacute;nient de cette m&amp;eacute;thode est que si votre dossier contient de nombreux fichiers, elle est &amp;ldquo;lente&amp;rdquo;.&lt;/p&gt;
&lt;h1&gt;La m&amp;eacute;thode brutale&lt;/h1&gt;
&lt;p&gt;Cette derni&amp;egrave;re essaye d&amp;rsquo;obtenir une r&amp;eacute;f&amp;eacute;rence vers le fichier et si il n&amp;rsquo;existe pas, une exception est d&amp;eacute;clench&amp;eacute;e. Il suffit donc de mettre tout cela dans un try/catch :&lt;/p&gt;
&lt;pre class="brush: csharp;"&gt;public static class StorageFolderExtensions
{
    public static async Task&amp;lt;bool&amp;gt; FileExistsAsync(this StorageFolder folder, string name)
    {
        try
        {
            await folder.GetFileAsync(name);
            return true;
        }
        catch
        {
            return false;
        }
    }
}
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;int&amp;eacute;r&amp;ecirc;t est que cette m&amp;eacute;thode est plus rapide mais qu&amp;rsquo;elle est bas&amp;eacute;e sur le d&amp;eacute;clenchement d&amp;rsquo;une exception, ce qui n&amp;rsquo;est pas du meilleur effet !&lt;/p&gt;
&lt;p&gt;Il y a tout de m&amp;ecirc;me une autre solution : l&amp;rsquo;utilisation des API Win32&lt;/p&gt;
&lt;h1&gt;La m&amp;eacute;thode Win32&lt;/h1&gt;
&lt;p&gt;Depuis que je fais du .NET, j&amp;rsquo;avoue que je n&amp;rsquo;ai jamais plus utilis&amp;eacute; les API Win32 comme on le faisait couramment avec Visual Basic 4-6. C&amp;rsquo;est donc avec une larme &amp;agrave; l&amp;rsquo;oeil (souvenir, souvenir) que je me suis replong&amp;eacute; dedans. Avec Metro, vous avez acc&amp;egrave;s &amp;agrave; une liste d&amp;rsquo;API Win32 tri&amp;eacute;s sur le volet par Microsoft. Parmi celles-&amp;ccedil;i, il y en a une qui nous int&amp;eacute;resse plus particuli&amp;egrave;rement ici : GetFieAttributesEx.&lt;/p&gt;
&lt;p&gt;Nous allons donc cr&amp;eacute;er une classe NativeOperations ou nous allons d&amp;eacute;clarer l&amp;rsquo;API et les structures qui sont n&amp;eacute;cessaires :&lt;/p&gt;
&lt;pre class="brush: csharp;"&gt;internal class NativeOperations
 {
     // ReSharper disable InconsistentNaming
     /// &amp;lt;summary&amp;gt;
     /// La d&amp;eacute;claration de l'API GetFileAttributesEx
     /// &amp;lt;/summary&amp;gt;
     /// &amp;lt;param name="lpFileName"&amp;gt;Le nom du fichier recherch&amp;eacute;&amp;lt;/param&amp;gt;
     /// &amp;lt;param name="fInfoLevelId"&amp;gt;Quelles types d'info on recherche&amp;lt;/param&amp;gt;
     /// &amp;lt;param name="lpFileInformation"&amp;gt;Structure contenant les informations une fois l'API appel&amp;eacute;e&amp;lt;/param&amp;gt;
     /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
     [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
     [return: MarshalAs(UnmanagedType.Bool)]
     public static extern bool GetFileAttributesEx(
         string lpFileName,
         GET_FILEEX_INFO_LEVELS fInfoLevelId,
         out WIN32_FILE_ATTRIBUTE_DATA lpFileInformation);

     /// &amp;lt;summary&amp;gt;
     /// Type d'infos recherch&amp;eacute;es
     /// &amp;lt;/summary&amp;gt;
     public enum GET_FILEEX_INFO_LEVELS
     {
         /// &amp;lt;summary&amp;gt;
         /// C'est la seule valeur autoris&amp;eacute;e avec WinRT
         /// &amp;lt;/summary&amp;gt;
         GetFileExInfoStandard,
         /// &amp;lt;summary&amp;gt;
         /// Ne fonctionne pas sous WinRT =&amp;gt; marqu&amp;eacute; Obsolete
         /// &amp;lt;/summary&amp;gt;
         [Obsolete]
         GetFileExMaxInfoLevel
     }

     /// &amp;lt;summary&amp;gt;
     /// Structure contenant les informations sur le fichier
     /// &amp;lt;/summary&amp;gt;
     [StructLayout(LayoutKind.Sequential)]
     public struct WIN32_FILE_ATTRIBUTE_DATA
     {
         public FileAttributes dwFileAttributes;
         public FILETIME ftCreationTime;
         public FILETIME ftLastAccessTime;
         public FILETIME ftLastWriteTime;
         public uint nFileSizeHigh;
         public uint nFileSizeLow;
     }

     // quelques valeurs d'erreurs succeptibles d'arriver
     private const int ERROR_FILE_NOT_FOUND = 2;
     private const int ERROR_PATH_NOT_FOUND = 3;
     private const int ERROR_ACCESS_DENIED = 5;

&lt;/pre&gt;
&lt;p&gt;Maintenant, il ne nous reste plus qu&amp;rsquo;&amp;agrave; utiliser cette API :&lt;/p&gt;
&lt;pre class="brush: csharp;"&gt;public static bool FileExist(string fileName)
{
WIN32_FILE_ATTRIBUTE_DATA fileData;
if (GetFileAttributesEx(fileName, GET_FILEEX_INFO_LEVELS.GetFileExInfoStandard, out fileData))
    return true;

// r&amp;eacute;cup&amp;eacute;ration de la derni&amp;egrave;re erreur (in the same thread of course ;-))
var lastError = Marshal.GetLastWin32Error();
if (lastError == ERROR_FILE_NOT_FOUND || lastError == ERROR_PATH_NOT_FOUND) return false;
// si c'est pas un fichier non trouv&amp;eacute;, on lance une exception
if (lastError == ERROR_ACCESS_DENIED)
    throw new SecurityAccessDeniedException("Acc&amp;egrave;s interdit");

throw new InvalidOperationException(string.Format("Erreur pendant l'acc&amp;egrave;s au fichier {0}, code {1}", fileName, lastError));
}
&lt;/pre&gt;
&lt;p&gt;Et ca marche, sans exception, sans it&amp;eacute;ration, et c&amp;rsquo;est tr&amp;egrave;s rapide.&lt;/p&gt;
&lt;h1&gt;Limitations de cette d&amp;eacute;marche&lt;/h1&gt;
&lt;p&gt;Il y a une grosse limitation &amp;agrave; cette d&amp;eacute;marche : elle ne fonctionne qu&amp;rsquo;avec le local storage ! M&amp;ecirc;me si vous d&amp;eacute;clarez que vous avez le droit d&amp;rsquo;acc&amp;eacute;der au dossier des Images &amp;amp; co, il refusera d&amp;rsquo;y acc&amp;eacute;der (AccessDeniedException). Donc cela va tr&amp;egrave;s bien si vous recherchez des fichiers dans votre local Storage, mais vous pouvez la mettre &amp;agrave; la poubelle si vous voulez rechercher dans un autre dossier (sniff, sniff).&lt;/p&gt;
&lt;p&gt;En revanche, c&amp;ocirc;t&amp;eacute; performances, il n&amp;rsquo;y a pas photo. J&amp;rsquo;ai effectu&amp;eacute; un test (IMPORTANT : en mode Release) sur un r&amp;eacute;pertoire contenant plus de 600 fichiers. J&amp;rsquo;effectue une recherche d&amp;rsquo;existence de chacun des fichiers puis sur des noms de fichiers dont je sais pertinemment qu&amp;rsquo;ils n&amp;rsquo;existent pas. R&amp;eacute;sultat : je vais entre 5 et 10 fois plus vite avec les API Win32.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Il n&amp;rsquo;y a donc pas photo : si vous devez chercher r&amp;eacute;guli&amp;egrave;rement dans votre local Storage, utilisez cette m&amp;eacute;thode. En revanche, elle ne vous sera d&amp;rsquo;aucunes utilit&amp;eacute;s ailleurs. Dommage !&lt;/p&gt;
&lt;p&gt;En esp&amp;eacute;rant que la version finale des API WinRT comportera une m&amp;eacute;thode optimis&amp;eacute;e&amp;hellip;&lt;/p&gt;</description><pubDate>Tue, 31 Jul 2012 09:50:24 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/articles/tester-l-existence-d-un-fichier-avec-les-api-win32-pour-winrt</guid></item><item><title>De l'évolution du test de l'existence d'un fichier en .NET</title><link>http://www.c2i.fr:80/articles/de-l-evolution-du-test-de-l-existence-d-un-fichier-en-.net</link><description>&lt;p&gt;.NET Framework 1.0, 2002 :&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/Media/Default/BlogPost/actualites/FileExist-2002.jpg" width="800" height="229" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;WINRT&lt;/h1&gt;
&lt;p&gt;Premi&amp;egrave;re solution (&lt;a href="http://blogs.msdn.com/b/eternalcoding/archive/2012/07/04/tips-and-tricks-for-c-metro-developers-the-fileexistsasync-method.aspx"&gt;blog de David Catuhe&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/Media/Default/BlogPost/actualites/FileExist-2012.jpg" width="800" height="457" /&gt;&lt;/p&gt;
&lt;p&gt;2&amp;egrave;me solution (brutale, "&amp;agrave; la Mitsu" ;-))&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/Media/Default/BlogPost/actualites/FileExist-2012-1.jpg" width="800" height="457" /&gt;&lt;/p&gt;
&lt;p&gt;10 ans de progr&amp;egrave;s...&lt;/p&gt;</description><pubDate>Mon, 30 Jul 2012 06:52:14 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/articles/de-l-evolution-du-test-de-l-existence-d-un-fichier-en-.net</guid></item><item><title>Quelques liens sur le développement d'applications pour WinRT</title><link>http://www.c2i.fr:80/actualites/quelques-liens-sur-le-developpement-d-applications-pour-winrt</link><description>&lt;p&gt;Plut&amp;ocirc;t que de faire plusieurs billets courts, j'ai d&amp;eacute;cid&amp;eacute; ce matin de faire une petite compilation d'articles parus sur le d&amp;eacute;veloppement d'applications pour Windows 8, WinRT. Au menu :&lt;/p&gt;
&lt;p&gt;Jerry Nixon, Microsoft Developer Evangelist dans le colorado, nous parle de 8 "bizarreries" que l'on doit connaitre sur Windows 8 XAML avant de commencer &amp;agrave; d&amp;eacute;velopper. Par exemple, l'absence de TileBrush, de StringFormat &amp;amp; co.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.jerrynixon.com/2012/07/8-quirks-windows-8-xaml-developers.html"&gt;http://blog.jerrynixon.com/2012/07/8-quirks-windows-8-xaml-developers.html&lt;/a&gt;&amp;nbsp;(anglais)&lt;/p&gt;
&lt;p&gt;Toujours de Jerry Nixon, un article r&amp;eacute;sumant les diff&amp;eacute;rentes fa&amp;ccedil;ons d'acc&amp;eacute;der aux fichiers avec WinRT. Comment lire et &amp;eacute;crire dans l'Isolated Storage, utiliser le File Picker, etc.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.jerrynixon.com/2012/06/windows-8-how-to-read-files-in-winrt.html"&gt;http://blog.jerrynixon.com/2012/06/windows-8-how-to-read-files-in-winrt.html&lt;/a&gt;&amp;nbsp;(anglais)&lt;/p&gt;
&lt;p&gt;Le blog officiel des d&amp;eacute;veloppeurs d'applications Windows 8 vient de publier en fran&amp;ccedil;ais son article sur les tests &amp;agrave; effectuer sur son application Metro avant toute soumission.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/windowsappdev_fr/archive/2012/07/23/windows-8-metro-testing.aspx"&gt;http://blogs.msdn.com/b/windowsappdev_fr/archive/2012/07/23/windows-8-metro-testing.aspx&lt;/a&gt;&amp;nbsp;(fran&amp;ccedil;ais)&lt;/p&gt;
&lt;p&gt;Enfin, notre Eric Verni&amp;eacute; national d&amp;eacute;crit l'itin&amp;eacute;rance des param&amp;egrave;tres d'une application Windows 8 (les Roaming Settings), limit&amp;eacute;s &amp;agrave; 100Ko pour m&amp;eacute;moire.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/devosaure/archive/2012/07/23/itinerance-des-param-232-tres-d-une-application-windows-8-au-style-metro.aspx"&gt;http://blogs.msdn.com/b/devosaure/archive/2012/07/23/itinerance-des-param-232-tres-d-une-application-windows-8-au-style-metro.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Bonne lecture&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Tue, 24 Jul 2012 07:11:37 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/quelques-liens-sur-le-developpement-d-applications-pour-winrt</guid></item><item><title>Tester votre application Metro pour Windows 8</title><link>http://www.c2i.fr:80/actualites/tester-votre-application-metro-pour-windows-8</link><description>&lt;p&gt;Quand vous voulez diffuser une application Metro pour Windows 8, vous &amp;ecirc;tes oblig&amp;eacute; de passer par le Windows Store et donc, comme pour iPhone, Android, Windows Phone 7, passer par une approbation de votre application.&lt;/p&gt;
&lt;p&gt;Ce processus de validation prend plus ou moins du temps (Microsoft annonce 6 jours pour Windows 8) donc il est important de bien valider votre application avant de l'envoyer dans le process. Si vous oubliez une chose, au bout de 6 jours on vous dit : hey, faudrait rajouter ca ! et c'est reparti pour 6 jours d'attente.&lt;/p&gt;
&lt;p&gt;Donc il est important de lire l'article paru ce matin sur le blog des d&amp;eacute;veloppeurs Windows 8 ou&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;J. Kalyana Sundaram, Senior SDET, Windows&lt;/li&gt;
&lt;li&gt;Ashwin Needamangala, Principal Test Lead, Windows&lt;/li&gt;
&lt;li&gt;Mete Goktepe, Principal Test Manager, Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(sont cosmopolites chez MS ;-)) d&amp;eacute;crivent compl&amp;egrave;tement tous lles points importants de la validation (il faut imp&amp;eacute;rativement supporter le mode Snap, tester dans diff&amp;eacute;rentes r&amp;eacute;solutions d'&amp;eacute;cran, etc.)&lt;/p&gt;
&lt;p&gt;Bref, un article &amp;agrave; lire : &lt;a href="http://blogs.msdn.com/b/windowsappdev/archive/2012/07/12/testing-metro-style-apps-in-windows-8.aspx"&gt;http://blogs.msdn.com/b/windowsappdev/archive/2012/07/12/testing-metro-style-apps-in-windows-8.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(moi, je croise les doigts, ca fait 2 jours qeu mon appli est en cours de validation...)&lt;/p&gt;</description><pubDate>Fri, 13 Jul 2012 07:38:36 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/tester-votre-application-metro-pour-windows-8</guid></item><item><title>Tout savoir sur les tuiles de Windows 8 (C#/XAML)</title><link>http://www.c2i.fr:80/actualites/tout-savoir-sur-les-tuiles-de-windows-8-c-xaml</link><description>&lt;p&gt;Un article tr&amp;egrave;s int&amp;eacute;ressant et tr&amp;egrave;s complet de Nathanael Marchand sur Developpez.com sur les tuiles (on dit pas plut&amp;ocirc;t vignettes ?) de Windows 8.&lt;/p&gt;
&lt;p&gt;En voici le menu complet :&lt;/p&gt;
&lt;p&gt;&lt;a class="summaryIndent0" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LI"&gt;I. Avant-propos et introduction&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LI-A"&gt;I-A. Un mot sur l'auteur&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LI-B"&gt;I-B. Introduction&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent0" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII"&gt;II. Premiers pas avec la tuile principale&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-A"&gt;II-A. Configurer sa tuile principale&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B"&gt;II-B. Faire vivre sa tuile&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-1"&gt;II-B-1. Premier contact&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-2"&gt;II-B-2. Choisir son mod&amp;egrave;le&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-3"&gt;II-B-3. Annuler la notification&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-4"&gt;II-B-4. Expiration de l'information&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-5"&gt;II-B-5. File de notifications&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-6"&gt;II-B-6. Le Tag d'une notification&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-7"&gt;II-B-7. Le calendrier de notification&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-8"&gt;II-B-8. Les notifications distantes&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent2" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-B-9"&gt;II-B-9. G&amp;eacute;rer les pr&amp;eacute;f&amp;eacute;rences de l'utilisateur&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LII-C"&gt;II-C. Du point de vue des &amp;laquo; guidelines &amp;raquo;&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent0" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIII"&gt;III. Aller plus loin avec les tuiles secondaires&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIII-A"&gt;III-A. Qu'est ce qu'une tuile secondaire ?&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIII-B"&gt;III-B. Comment cr&amp;eacute;er une tuile secondaire ?&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIII-C"&gt;III-C. Animer les tuiles secondaires&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIII-D"&gt;III-D. Du point de vue des &amp;laquo; guidelines &amp;raquo;&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent0" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIV"&gt;IV. Les badges&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIV-A"&gt;IV-A. K&amp;eacute;zako ?&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIV-B"&gt;IV-B. Cr&amp;eacute;er un badge&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIV-C"&gt;IV-C. Les diff&amp;eacute;rents badges disponibles&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LIV-D"&gt;IV-D. Du point de vue des &amp;laquo; guidelines &amp;raquo;&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent0" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LV"&gt;V. L'&amp;eacute;cran de verrouillage&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LV-A"&gt;V-A. Les applications et l'&amp;eacute;cran de verrouillage&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent1" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LV-B"&gt;V-B. Appara&amp;icirc;tre sur l'&amp;eacute;cran de verrouillage&lt;/a&gt;&lt;br /&gt;&lt;a class="summaryIndent0" href="http://nathanaelmarchand.developpez.com/tutoriels/dotnet/tout-savoir-tuiles-windows8/#LVI"&gt;VI. Conclusion&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bref, un article &amp;agrave; lire (&amp;lt;mode lourd&amp;gt;m&amp;ecirc;me si on dit vignette et pas tuile&amp;lt;/mode lourd&amp;gt;).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Wed, 11 Jul 2012 09:32:45 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/tout-savoir-sur-les-tuiles-de-windows-8-c-xaml</guid></item><item><title>Comment utiliser DirectX avec C#/XAML pour Windows 8 Metro</title><link>http://www.c2i.fr:80/actualites/comment-utiliser-directx-avec</link><description>&lt;p&gt;On le sait, Microsoft a d&amp;eacute;cid&amp;eacute; d'arr&amp;ecirc;ter XNA. Il y a cependant des moyens de contourner le probl&amp;egrave;me en utilisant SharpDX comme je l'&amp;eacute;voquait il y a quelques mois.&lt;/p&gt;
&lt;p&gt;Notre David Catuhe national en a fait la d&amp;eacute;monstration lors du lancement de la communaut&amp;eacute; Windows 8.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/eternalcoding/archive/2012/07/04/slides-et-d-233-mos-de-ma-session-sur-utiliser-directx-avec-c-xaml-pour-windows-8-metro.aspx"&gt;Vous pouvez retrouver ses slides ici.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Reste maintenant &amp;agrave; savoir si une appli utilisant une telle technologie passera le test du market...&lt;/p&gt;</description><pubDate>Wed, 04 Jul 2012 15:00:23 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/comment-utiliser-directx-avec</guid></item><item><title>6 choses à savoir sur le dev Windows 8</title><link>http://www.c2i.fr:80/actualites/6-choses-savoir-sur-le-dev-Windows-8</link><description>&lt;p&gt;Julien Dollon (futur Microsoftee), vient de publier &lt;a href="http://julien.dollon.net/post/WinRT-6-choses-a-savoir-sur-le-dev-Windows-8.aspx"&gt;un billet&lt;/a&gt; sur le d&amp;eacute;veloppement pour Windows 8 (bient&amp;ocirc;t, faudra qu'il fasse attention &amp;agrave; ce qu'il publie s'il veut pas finir comme Chuck "Norris" Chan).&lt;/p&gt;
&lt;p&gt;Il r&amp;eacute;pond aux questions :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le Xaml c'est du WPF like ? Comment C++ peut-il y acc&amp;eacute;der ?&lt;/li&gt;
&lt;li&gt;Les langages se valent-ils ?&lt;/li&gt;
&lt;li&gt;Avons-nous un full support de HTML5/CSS3/JS ?&lt;/li&gt;
&lt;li&gt;.NET est-il mort ?&lt;/li&gt;
&lt;li&gt;Win32 est-il mort ?&lt;/li&gt;
&lt;li&gt;Puis-je utiliser Blend pour cr&amp;eacute;er un site web HTML5/CSS3 ?&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Thu, 31 May 2012 06:31:21 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/6-choses-savoir-sur-le-dev-Windows-8</guid></item><item><title>Windows 8 : Préparer la publication sur le Store</title><link>http://www.c2i.fr:80/actualites/windows-8-preparer-la-publication-sur-le-store</link><description>&lt;p&gt;St&amp;eacute;phanie Hertrich de Microsoft France nous montre quels sont les points importants &amp;agrave; v&amp;eacute;rifier avant de publier une application sur le Store de Windows 8 (ca devrait &amp;ecirc;tre possible que les jours qui viennent).&lt;/p&gt;
&lt;p&gt;Un m&amp;eacute;mo important &amp;agrave; lire pour &amp;eacute;viter de passer du temps pour rien et de r&amp;acirc;ler plus tard contre Microsoft (ca, c'est pour moi ;-)))&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/stephe/archive/2012/05/29/m-233-mo-win8-pr-233-parer-la-publication-sur-le-store.aspx"&gt;http://blogs.msdn.com/b/stephe/archive/2012/05/29/m-233-mo-win8-pr-233-parer-la-publication-sur-le-store.aspx&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 29 May 2012 12:53:21 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/windows-8-preparer-la-publication-sur-le-store</guid></item><item><title>Quelques astuces pour améliorer les permorfances de vos applications Metro Xaml</title><link>http://www.c2i.fr:80/actualites/quelques-astuces-pour-ameliorer-les-permorfances-de-vos-applications-metro-xaml</link><description>&lt;p&gt;Microsoft a publi&amp;eacute; la semaine derni&amp;egrave;re un livre blanc d'une trentaine de page sur l'am&amp;eacute;lioration des performances de vos applications Metro Xaml.&lt;/p&gt;
&lt;p&gt;J'ai parcourru le document et il est vraiment tr&amp;egrave;s bien. On apprend plein de choses et je pense que tout d&amp;eacute;veloppeur Windows 8 devrait avoir lu (ou au moins parcourru) ce document. Au menu :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Remaining responsive&lt;/li&gt;
&lt;li&gt;Ensuring fluid animations&lt;/li&gt;
&lt;li&gt;Instantaneous activation&lt;/li&gt;
&lt;li&gt;Optimizing app process lifetime&lt;/li&gt;
&lt;li&gt;Gracefully loading, storing, and displaying data&lt;/li&gt;
&lt;li&gt;Resource-friendly media&lt;/li&gt;
&lt;li&gt;DirectX interop&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29886"&gt;T&amp;eacute;l&amp;eacute;chargement du document Word ici.&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 29 May 2012 05:58:47 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/quelques-astuces-pour-ameliorer-les-permorfances-de-vos-applications-metro-xaml</guid></item><item><title>Rester productif lorsque votre application n'est pas à l'écran : suite</title><link>http://www.c2i.fr:80/actualites/rester-productif-lorsque-votre-application-n-est-pas-a-l-ecran-suite</link><description>&lt;p&gt;Apr&amp;egrave;s &lt;a href="http://www.c2i.fr/actualites/rester-productif-lorsque-votre-application-n-est-pas-a-l-ecran"&gt;Rester productif lorsque votre application n'est pas &amp;agrave; l'&amp;eacute;cran&lt;/a&gt;, le blog des d&amp;eacute;veloppeurs Windows 8 de Microsoft vient de publier un billet y faisant suite.&lt;/p&gt;
&lt;p&gt;Il vous montre cette fois comment d&amp;eacute;velopper une t&amp;acirc;che de fond qui s'ex&amp;eacute;cute toutes les x minutes. Il explique surtout quels sont les limites, les ressources CPU accord&amp;eacute;es &amp;agrave; votre t&amp;acirc;che, le traffic r&amp;eacute;seau autoris&amp;eacute;, etc.&lt;/p&gt;
&lt;p&gt;Bref, &lt;a href="http://blogs.msdn.com/b/windowsappdev/archive/2012/05/24/being-productive-in-the-background-background-tasks.aspx"&gt;un billet &amp;agrave; lire&lt;/a&gt; comme d'habitude sur ce blog.&lt;/p&gt;</description><pubDate>Fri, 25 May 2012 05:59:52 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/rester-productif-lorsque-votre-application-n-est-pas-a-l-ecran-suite</guid></item><item><title>Rester productif lorsque votre application n'est pas à l'écran</title><link>http://www.c2i.fr:80/actualites/rester-productif-lorsque-votre-application-n-est-pas-a-l-ecran</link><description>&lt;p&gt;Toujours dans le cadre de ses efforts de traduction de ses blogs importants, le blog des d&amp;eacute;veloppeurs d'applications Windows 8 vient de publier un billet sur les possibilit&amp;eacute;s qui s'offrent &amp;agrave; vous d'effectuer des t&amp;acirc;ches en arri&amp;egrave;re plan.&lt;/p&gt;
&lt;p&gt;On d&amp;eacute;couvre ainsi cmment t&amp;eacute;l&amp;eacute;charger des fichiers, lire de l'audio, partager des donn&amp;eacute;es, synchroniser des appareils, notifier l'utilisateur, etc.&lt;/p&gt;
&lt;p&gt;Il est important de bien maitriser tout ceci car&amp;nbsp;Windows 8 optimise ses ressources (et donc la batterie de l'appareil). Ne pas en profiter serait une erreur : les applis non consommatrices de ressource seront toujours mieux appr&amp;eacute;ci&amp;eacute;es ;-)&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/windowsappdev_fr/archive/2012/05/22/rester-productif-lorsque-votre-application-n-est-pas-224-l-233-cran.aspx"&gt;http://blogs.msdn.com/b/windowsappdev_fr/archive/2012/05/22/rester-productif-lorsque-votre-application-n-est-pas-224-l-233-cran.aspx&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 23 May 2012 06:12:07 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/rester-productif-lorsque-votre-application-n-est-pas-a-l-ecran</guid></item><item><title>Création d'une application Metro de A à Z en une semaine par David Catuhe : J+4</title><link>http://www.c2i.fr:80/actualites/creation-d-une-application-metro-de-a-a-z-en-une-semaine-par-david-catuhe-j-4</link><description>&lt;p&gt;&lt;img style="padding: 10px; float: right;" alt="" src="/Media/Default/BlogPost/actualites/cuisineWinRT.png" width="143" height="482" /&gt;Pour m&amp;eacute;moire : David Catuhe a commenc&amp;eacute; l'&amp;eacute;criture d'une s&amp;eacute;rie d'article montrant comment cr&amp;eacute;er une application WinRT en Html5/Css3/Javascript de A &amp;agrave; Z en moins d'une semaine.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;J+0 : &lt;a href="http://www.c2i.fr/actualites/creation-d-une-application-metro-de-a-a-z-en-une-semaine-par-david-catuhe"&gt;&lt;span style="color: #5f97af;" color="#5f97af"&gt;Apr&amp;egrave;s la mise en place du projet&lt;/span&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;J+1 : &lt;a href="http://www.c2i.fr/actualites/creation-d-une-application-metro-de-a-a-z-en-une-semaine-par-david-catuhe-j-1"&gt;&lt;span style="color: #5f97af;" color="#5f97af"&gt;comment g&amp;eacute;rer les param&amp;egrave;tres de l'application et le mode d&amp;eacute;connect&amp;eacute;&lt;/span&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;J+2 : &lt;a href="http://www.c2i.fr/actualites/creation-d-une-application-metro-de-a-a-z-en-une-semaine-par-david-catuhe-j-2"&gt;&lt;span style="color: #5f97af;" color="#5f97af"&gt;la gestion des vues, l'internationalisation, la gestion des r&amp;eacute;solutions&lt;/span&gt;&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;J+3 : Les contrats et les vignettes,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cette fois, pour &lt;a href="http://blogs.msdn.com/b/eternalcoding/archive/2012/05/21/comment-cuisiner-une-application-windows-8-avec-html-5-css3-et-javascript-en-une-semaine-jour-4.aspx"&gt;son dernier jour&lt;/a&gt; (oui, ils travaillent que 5 jours/semaine chez Microsoft), il aborde la sauvegarde de ses images sur Skydrive.&lt;/p&gt;</description><pubDate>Wed, 23 May 2012 05:54:32 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/creation-d-une-application-metro-de-a-a-z-en-une-semaine-par-david-catuhe-j-4</guid></item><item><title>SQLite pour WinRT: c'est possible !</title><link>http://www.c2i.fr:80/actualites/sqlite-pour-winrt-c-est-possible</link><description>&lt;p&gt;&lt;img width="220" height="101" style="padding: 10px; float: right;" alt="" src="/Media/Default/BlogPost/actualites/sqlite-pour-winrt-c-est-possible/sqlite.gif" /&gt;A l'heure d'aujourd'hui (21 Mai 2012), il n'y a pas, &amp;agrave; ma connaissance, de version de SQL Server pour WinRT (Metro). Je pense que tout comme pour Windows Phone 7, cela va venir, mais il n'y a rien pour l'instant.&lt;/p&gt;
&lt;p&gt;Sauf que ce 18 Mai dernier, lors de la conf&amp;eacute;rence "Developing Windows 8 Metro style apps with C++", Richard Hipp, fondateur du projet &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt; en 2000, annonce que son moteur de base de donn&amp;eacute;es "light", &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt;, peut &amp;ecirc;tre compil&amp;eacute; pour WinRT.&lt;/p&gt;
&lt;p&gt;Pour savoir comment faire, je vous invite &amp;agrave; suivre &lt;a href="http://timheuer.com/blog/archive/2012/05/20/using-sqlite-in-metro-style-app.aspx"&gt;le billet de Tim Heuer&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Mon, 21 May 2012 06:37:03 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/sqlite-pour-winrt-c-est-possible</guid></item><item><title>Les Labs du Tour de France Windows 8 sont disponibles</title><link>http://www.c2i.fr:80/actualites/les-labs-du-tour-de-france-windows-8-sont-disponibles</link><description>&lt;p&gt;Si vous n'avez pas pu suivre une des sessions du Tour de France Windows 8, les Labs (8 exercices) sont disponibles en t&amp;eacute;l&amp;eacute;chargements.&lt;/p&gt;
&lt;p&gt;Ces Labs, pour Xaml/C# et Html5/js, font un tour complet des fonctionnalit&amp;eacute;s d'une application typique pour WinRT. Donc tr&amp;egrave;s sympa &amp;agrave; suivre ne serait-ce qu'une seule fois.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29854"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=29854&lt;/a&gt;&amp;nbsp;(300Mo quand m&amp;ecirc;me ;-))&lt;/p&gt;</description><pubDate>Sun, 20 May 2012 13:02:54 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/les-labs-du-tour-de-france-windows-8-sont-disponibles</guid></item><item><title>Programming Windows 6ème édition de Charles Petzold en eBook</title><link>http://www.c2i.fr:80/actualites/programming-windows-6eme-edition-de-charles-petzold-en-ebook</link><description>&lt;p&gt;&lt;img width="250" height="305" style="padding: 10px; float: right;" alt="" src="/Media/Default/BlogPost/actualites/ProgrammingWindowsCP.jpg" /&gt;Charles Petzold apr&amp;egrave;s quelques h&amp;eacute;sitations vient de commencer la r&amp;eacute;daction de la 6&amp;egrave;me &amp;eacute;dition de son fameux Programming Windows.&lt;/p&gt;
&lt;p&gt;De fa&amp;ccedil;on originale, il (avec son &amp;eacute;diteur O'Reilly), a d&amp;eacute;cid&amp;eacute; de d&amp;eacute;livrer p&amp;eacute;riodiquement des versions de son livre.&lt;/p&gt;
&lt;p&gt;On a donc droit maintenant &amp;agrave; &lt;a href="http://shop.oreilly.com/product/0790145369079.do#"&gt;la version Consumer Preview&lt;/a&gt;, un eBook de 294 pages. Cette version est &amp;agrave; $10 seulement jusqu'au 31 Mai puis sera&amp;nbsp;&amp;agrave; $20 apr&amp;egrave;s.&lt;/p&gt;
&lt;p&gt;Une version sur la release sera pr&amp;eacute;sent&amp;eacute; ult&amp;eacute;rieurement (dates inconnues) &amp;agrave; $30 puis $40 et enfin, la version finale ) $50 le 15 novembre prochain.&lt;/p&gt;
&lt;p&gt;Donc $10 pendant les 15 prochains&amp;nbsp;jours, c'est une bonne opportunit&amp;eacute;.&lt;/p&gt;</description><pubDate>Fri, 18 May 2012 07:09:28 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/actualites/programming-windows-6eme-edition-de-charles-petzold-en-ebook</guid></item><item><title>Comment redimensionner une image avec WinRT : plusieurs solutions</title><link>http://www.c2i.fr:80/articles/comment-redimensionner-une-image-avec-winrt-plusieurs-solutions</link><description>&lt;p&gt;J'ai particip&amp;eacute; hier &amp;agrave; une session du Tour de France Windows 8 &amp;agrave; Bordeaux. Session tr&amp;egrave;s sympathique avec de charmants co-d&amp;eacute;veloppeurs.&lt;/p&gt;
&lt;p&gt;J'en ai profit&amp;eacute; pour m'avancer sur mon projet d'application WinRT et de me pencher plus avant sur la probl&amp;eacute;matique suivante :&lt;/p&gt;
&lt;p&gt;J'ai des nombreuses images dans mon application qui sont de taille "importante" (sup&amp;eacute;rieure &amp;agrave;&amp;nbsp;1024*768). Or il se trouve que ces images peuvent &amp;ecirc;tre utilis&amp;eacute;es pour la vignette de mon application. J'ai donc soit le choix de cr&amp;eacute;er "&amp;agrave; la main" une version light de mes images, soit ajouter la fonctionnalit&amp;eacute; &amp;agrave; mon application de redimensionnement d'images (pour info, le poids&amp;nbsp;des images affich&amp;eacute;es dans les vignettes est limit&amp;eacute;e, 150Ko je crois de m&amp;eacute;moire).&lt;/p&gt;
&lt;p&gt;La solution que j'ai trouv&amp;eacute;e &amp;eacute;tait la suivante :&lt;/p&gt;
&lt;h2&gt;Une solution "pas simple"&lt;/h2&gt;
&lt;p&gt;La premi&amp;egrave;re &amp;eacute;tape consiste &amp;agrave; r&amp;eacute;cup&amp;eacute;rer la premi&amp;egrave;re frame de l'image &amp;agrave; partir du fichier :&lt;/p&gt;
&lt;pre class="brush: csharp;"&gt;// imageFilename 
//      C'est le nom du fichier. 
//      Ici, c'est un fichier image que l'on a plac&amp;eacute; dans notre projet en tant que Contenu
//      (r&amp;eacute;pertoire Assets dans le projet template de MS) 
//      Il se trouve donc dans le InstalledLocation
//      r&amp;eacute;cup&amp;eacute;ration du fichier, StorageFile
// fileName
//      nom du fichier que l'on veut sauvegarder
// width, height
//      largeur et hauteur de l'image finale d&amp;eacute;sir&amp;eacute;e

var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFilename);
// r&amp;eacute;cup&amp;eacute;ration du flux du fichier
var baseStream = RandomAccessStreamReference.CreateFromFile(file);
// d&amp;eacute;codeur de l'image &amp;agrave; partir du flux ouvert en lecture
var fileDecoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(await baseStream.OpenReadAsync());
// r&amp;eacute;cup&amp;eacute;ration de la premi&amp;egrave;re frame de l'image
var bitmapFrame = await fileDecoder.GetFrameAsync(0);&lt;/pre&gt;
&lt;p&gt;Ensuite, on r&amp;eacute;cup&amp;egrave;re les pixels de notre image en sp&amp;eacute;cifiant la taille de l'image finale :&lt;/p&gt;
&lt;pre class="brush: csharp;"&gt;// on veut une image de la taille width*height
var bitmapTransform = new BitmapTransform { ScaledWidth = width, ScaledHeight = height };
// r&amp;eacute;cup&amp;eacute;ration des pixels
var pixelDatas =
    await bitmapFrame.GetPixelDataAsync(
        bitmapFrame.BitmapPixelFormat,
        bitmapFrame.BitmapAlphaMode,
        bitmapTransform,
        ExifOrientationMode.IgnoreExifOrientation,
        ColorManagementMode.DoNotColorManage);&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enfin, on cr&amp;eacute;e le fichier final et on &amp;eacute;crit les pixels dedans :&lt;/p&gt;
&lt;pre class="brush: csharp;"&gt;// le fichier ou l'on souhaite enregistrer l'image redimensionn&amp;eacute;e.
// On la place dans le LocalFolder de l'application
var targetFile =
    await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync(
        fileName,
        CreationCollisionOption.ReplaceExisting)
        .AsTask&amp;lt;storagefile&amp;gt;();

// ouverture du flux pour &amp;eacute;crire dans le fichier
using (var fileStream = await targetFile.OpenAsync(FileAccessMode.ReadWrite))
{
    // l'encodeur de notre nouveau fichier image
    var newBitmapEncoder = 
        await Windows.Graphics.Imaging.BitmapEncoder.CreateAsync(
            BitmapEncoder.JpegEncoderId, 
            fileStream);
    // on &amp;eacute;crit les pixels dans notre nouveau fichier en respectant les infos d'origine (dpi, alpha, etc.)
    newBitmapEncoder.SetPixelData(
        bitmapFrame.BitmapPixelFormat, 
        bitmapFrame.BitmapAlphaMode, 
        bitmapTransform.ScaledWidth, 
        bitmapTransform.ScaledHeight, 
        bitmapFrame.DpiX, 
        bitmapFrame.DpiY, 
        pixelDatas.DetachPixelData());

    // on s'assure que l'on vide bien tout
    await newBitmapEncoder.FlushAsync();
    await fileStream.FlushAsync();
}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ce n'est pas vraiment simple, mais ca marche.&lt;/p&gt;
&lt;h2&gt;Une solution plus simple&lt;/h2&gt;
&lt;p&gt;Montrant ce code &amp;agrave; notre cher GO, aka Benoit Laut de Bewise, il me dit : "Mais non, esp&amp;egrave;ce d'abruti, y'a beaucoup plus simple :!".&lt;/p&gt;
&lt;p&gt;Bon, OK, il m'a pas dit ca comme ca exactement ;-). Je pr&amp;eacute;cise pour ceux qui comprendrait pas le second degr&amp;eacute;. Il m'a dit tr&amp;egrave;s gentillement qu'il pensait qu'il y avait plus simple, notamment avec les m&amp;eacute;thodes GetThumbnails du framework. Il a donc recherch&amp;eacute; et quelques temps plus tard, il m'a trouv&amp;eacute; le code suivant :&lt;/p&gt;
&lt;pre class="brush:csharp;"&gt;var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFilename);
// on veut une vignette de type image de largeur width et redimensionn&amp;eacute;e
var thumbnail = await file.GetThumbnailAsync(
    Windows.Storage.FileProperties.ThumbnailMode.PicturesView, 
    width, 
    Windows.Storage.FileProperties.ThumbnailOptions.ResizeThumbnail);

// on cr&amp;eacute;e le fichier cible
var storageFile = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
// ATTENTION : Ajoutez System.IO qui comprend ces m&amp;eacute;thodes d'extensions
// le flux ou l'on souhaite &amp;eacute;crire
var writer = await storageFile.OpenStreamForWriteAsync(); 
var outputStream = writer.AsOutputStream();

// sauvegarde dans le flux de la vignette
await RandomAccessStream.CopyAndCloseAsync(thumbnail, outputStream);&lt;/pre&gt;
&lt;p&gt;Il y a quand m&amp;ecirc;me beaucoup moins de ligne de code, et ca &amp;agrave; l'air plus simple.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;MAIS&lt;/h2&gt;
&lt;p&gt;Car souvent avec moi, il y a un MAIS. J'ai donc voulu voir le r&amp;eacute;sultat de ces deux possibilit&amp;eacute;s. Concr&amp;egrave;tement, on obtient bien une vignette avec la taille d&amp;eacute;sir&amp;eacute;e (dans le deuxi&amp;egrave;me cas, on ne peut pas sp&amp;eacute;cifier la largeur ET la hauteur, mais ce n'est pas grave dans notre cas). Les deux images sont bien g&amp;eacute;n&amp;eacute;r&amp;eacute;es :&lt;/p&gt;
&lt;p&gt;&lt;img width="733" height="236" alt="" src="/Media/Default/BlogPost/articles/comment-redimensionner-une-image-avec-winrt-plusieurs-solutions/redimImage.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;J'ai bien mes patates redimensionn&amp;eacute;es et on peut constater que le temps d'ex&amp;eacute;cution est sensiblement le m&amp;ecirc;me.&lt;/p&gt;
&lt;p&gt;Mais concernant le poids des fichiers, ce n'est pas du tout la m&amp;ecirc;me histoire.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le fichier d'origine fait 250Ko.&lt;/li&gt;
&lt;li&gt;Le ficher avec la m&amp;eacute;thode complexe fait 36Ko&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le fichier avec la m&amp;eacute;thode simple fait 250Ko !!!&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C'est bizarre (et si vous avez une explication, je suis preneur). Mais toujours est-il que je vas donc utiliser la m&amp;eacute;thode "complexe" dans mon application.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Tout comme dans le framework .NET "normal", pour faire une m&amp;ecirc;me op&amp;eacute;ration, on a de multiples possibilit&amp;eacute;s. Mais l'avantage avec le framework normal, c'est que gr&amp;acirc;ce &amp;agrave; des d&amp;eacute;compilateurs, on peut savoir pourquoi. Peux &amp;ecirc;tre que sur des images beaucoup plus lourde, la solution complexe est beaucoup plus rapide, peux &amp;ecirc;tre qu'avec la version finale, le poid de l'image finale sera optimis&amp;eacute;e.&lt;/p&gt;
&lt;p&gt;Mais comme on n'a pas acc&amp;egrave;s &amp;agrave; des d&amp;eacute;compilateurs pour voir le code qui est r&amp;eacute;ellement ex&amp;eacute;cut&amp;eacute;, on est encore dans le flou, et seul des tests permettent de savoir ce qu'il faut utiliser.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Fri, 11 May 2012 13:48:33 GMT</pubDate><guid isPermaLink="true">http://www.c2i.fr:80/articles/comment-redimensionner-une-image-avec-winrt-plusieurs-solutions</guid></item></channel></rss>