<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
         xmlns:err="http://jelix.org/ns/xmlerror/1.0">
 <channel>

    <title><![CDATA[Commentaires du blog: Ka u f&egrave; dotnet]]></title>
    <link>http://dotnet.over-blog.com/</link>
    <description>Les 25 derniers commentaires publiés sur le blog &quot;Ka u f&amp;egrave; dotnet&quot;</description>

        <language>fr</language>
    
    
    <pubDate>Wed, 08 Apr 2009 14:57:07 +0200</pubDate>    <lastBuildDate>Wed, 08 Apr 2009 14:57:07 +0200</lastBuildDate>    <generator>Over-blog.com RSS 2.0 Engine</generator>    <copyright>Copyright 2009, Rakoun Opadmassana</copyright>            <category>Hi Tech</category>    <docs>http://www.rssboard.org/rss-specification/</docs>                        
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-7202044-6.html#comment12633841</link>        <description><![CDATA[<p>Je te remercie pour tes encouragements et tes propositions, je les &eacute;tudierai de plus pr&ecirc;t.</p><br />
<p>&nbsp;</p><br />
<p>Bonne journ&eacute;e.</p>]]></description>
        <pubDate>Tue, 23 Oct 2007 14:11:06 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-7202044-6.html#comment12633841</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Nicodemus]]></title>
        <link>http://dotnet.over-blog.com/article-7202044-6.html#comment12633137</link>        <description><![CDATA[Rakoun, ton boulot est formidable. C\\\'est vraiment utile pour revoir d\\\'un coup le programme, mais aussi lorsqu\\\'on est en d&eacute;placement pour pouvoir bosser malgr&egrave; tout.<br /><br />Tu devrais faire un peu plus de pub pour ton site, cr&eacute;er une communaut&eacute; qui r&eacute;digerait les r&eacute;sum&eacute; de chaque exam.<br />Ca serait mille fois mieux que les tricheurs de testking.<br /><br />Merci encore]]></description>
        <pubDate>Tue, 23 Oct 2007 11:15:49 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-7202044-6.html#comment12633137</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-3034994-6.html#comment4991595</link>        <description><![CDATA[1. Une application de service peut pr&eacute;senter l'un des &eacute;tats suivants: en cours d'ex&eacute;cution, suspendu, arr&ecirc;t&eacute; ou en attente.<br /><br />2. Il existe deux types de services Windows: Win32OwnProcess et Win32ShareProcess. Chaque service Win32OwnProcess s'ex&eacute;cute dans son propre espace de traitement, tandis qu'un service Win32ShareProcess partage un espace de traitement avec d'autres services.<br /><br />3. Les t&acirc;ches suivantes permettent de cr&eacute;er un service Windows:<br />- Cr&eacute;er un service Windows vide &agrave; l'aide du mod&egrave;le Service Windows de Visual Studio .NET.<br />- Modifier les propri&eacute;t&eacute;s par d&eacute;faut du mod&egrave;le Service Windows en fonction de vos besoins.<br />- Ecrivez le code n&eacute;cessaire dans le projet d'application de service pour g&eacute;rer les divers &eacute;v&egrave;nements.<br />- Ajouter les programmes d'installation &agrave; votre application de service.<br />- Installer l'application de service &agrave; l'aide des outils d'installation.<br /><br />4. Pour ajouter des fonctionnalit&eacute;s &agrave; une application de service, red&eacute;finissez les m&eacute;thodes OnStart et OnStop de la classe ServiceBase. Vous pouvez aussi red&eacute;finir les m&eacute;thodes OnPause, OnContinue et OnCustomCommand de cette classe pour accro&icirc;tre les fonctionnalit&eacute;s d'une application de service.<br /><br />5. <br />protected override void OnStart(string[] args)<br />{<br />&nbsp;FileStream fs = new FileStream(@&quot;C:\temp\ServiceStartStatus.log&quot;,<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; FileMode.OpenOrCreate, FileAccess.Write);<br />&nbsp;StreamWriter SR = new StreamWriter(fs);<br />&nbsp;SR.WriteLine(&quot;Service d&eacute;marr&eacute;&quot;);<br />&nbsp;SR.Flush();<br />}<br /><br />6. Pour permettre &agrave; votre application de serice d'acc&eacute;der aux journaux d'&eacute;v&egrave;nements par d&eacute;faut et y &eacute;crire des informations, d&eacute;finissez la propri&eacute;t&eacute; AutoLog avec la valeur False. Puis, utilisez la m&eacute;thode WriteEntry de la classe EventLog pour &eacute;crire des informations dans les journaux d'&eacute;v&egrave;nements par d&eacute;faut.<br /><br />7. Les programmes d'installation permettent d'installer un service Windows et les ressources, comme les journaux personnalis&eacute;s et les compteurs de performances, qu'une application de service utilise sur un ordinateur. Ces programmes installent automatiquement ces ressources quand vous installez une application de service &agrave; l'aide de l'outil Installutil.<br /><br />8. Une application de service peut comporter plusieurs services. Les m&eacute;thodes de la classe ServiceProcessInstaller effectuent les t&acirc;ches communes &agrave; tous les services d'une application de service, comme l'&eacute;criture d'entr&eacute;e dans le Registre syst&egrave;me. La classe ServiceInstaller ex&eacute;cute des t&acirc;ches propres &agrave; un service, comme la cr&eacute;ation d'une entr&eacute;e pour un service dans le Registre d'un ordinateur.<br /><br />9. Vous utilisez la propri&eacute;t&eacute; Account de la classe ServiceProcessInstaller pour sp&eacute;cifier le contexte de s&eacute;curit&eacute; de votre application de service. Pour d&eacute;finir le contexte de s&eacute;curit&eacute; d'un compte utilisateur, attribuez la valeur User &agrave; la propri&eacute;t&eacute; Account. Sp&eacute;cifiez ensuite le nom d'utilisateur et le mot de passe du compte utilisateur quand vous installez l'application de service.<br /><br />10. Le Gestionnaire de contr&ocirc;le des services permet d'accomplir les t&acirc;ches d'administration suivantes:<br />- Modifier l'&eacute;tat du service,<br />- Sp&eacute;cifier le mode de d&eacute;marrage d'un service,<br />- Indiquer les actions de r&eacute;cup&eacute;ration en cas de d&eacute;faillance d'un service,<br />- Associer un compte d'utilisateur &agrave; un service,<br />- Afficher les d&eacute;pendances du service.<br /><br />11. La proc&eacute;dure est la suivante:<br />1. Cr&eacute;er une application Windows que vous utilisez pour contr&ocirc;ler votre application de service.<br />2. Cr&eacute;er une m&eacute;thode appelant la m&eacute;thode ServiceController.ExecuteCommand de l'application Windows.<br />3. Ref&eacute;finir la m&eacute;thode OnCustomCommand dans l'applicaiton de service pour sp&eacute;cifier les t&acirc;ches que l'application doit ex&eacute;cuter.<br /><br />12. La proc&eacute;dure est la suivante:<br />1. D&eacute;marrer l'application &agrave; l'aide du Gestionnaire de contr&ocirc;le des services.<br />2. Dans le menu D&eacute;boguer, choisir Processus.<br />3. Activer la case Afficher les processus syst&egrave;mes.<br />4. S&eacute;lectionner le processus de l'application de service et cliquer sur Attacher. La bo&icirc;te de dialogue Attacher au processus s'affiche.<br />5. S&eacute;lectionner Common Language Runtime, cliquer sur OK pour sp&eacute;cifier un d&eacute;bogueur et fermer la bo&icirc;te de dialogue Attacher au processus.]]></description>
        <pubDate>Sat, 17 Jun 2006 12:56:36 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-3034994-6.html#comment4991595</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-3034481-6.html#comment4990772</link>        <description><![CDATA[1. Le .NET fournit les outils et syst&egrave;mes suivants:<br />- Le logiciel Smart Client,<br />- L'infrastructure .NET Server,<br />- Les services Web XML,<br />- Microsoft Visual Studio .NET et le .NET Framework<br /><br />2. Les composants du CLR fournissent l'environnement et les services d'ex&eacute;cution aux applications .NET. Ils chargent &eacute;galement le code IL d'une application .NET dans le runtime, compilent le code natif en code IL, ex&eacute;cutent le code et mettent en oeuvre la s&eacute;curit&eacute;. De plus, ils impl&eacute;mentent la s&eacute;curit&eacute; des types et fournissent une gestion automatis&eacute;e de la m&eacute;moire.<br /><br />3. Les diff&eacute;rents types d'assemblages comprennent:<br />- les assemblages statiques et dynamiques,<br />- les assemblages priv&eacute;s et partag&eacute;s,<br />- les assemblages monofichier et multifichier.<br /><br />4. Fichier de configuration de l'ordinateur. Ce fichier est situ&eacute; dans le r&eacute;pertoire %chemin d'installation du runtime%\Config. Il contient des param&egrave;tres affectant toutes les applications s'ex&eacute;cutant sur l'ordinateur.<br /><br />Fichier de configuration de l'application. Ce fichier contient les param&egrave;tres pour configurer une application. Les fichiers de configuration ASP.NET sont intitul&eacute;s Web.config et les fichiers de configuration de l'application App.exe.config ou App.exe d&eacute;signe le nom du fichier ex&eacute;cutable.<br /><br />Fichier de configuration de la s&eacute;curit&eacute;. Ce fichier contient les autorisations de s&eacute;curit&eacute; d'une hi&eacute;rarchie de groupes de codes. Il d&eacute;finit les strat&eacute;gies de s&eacute;curit&eacute; aux niveaux entreprise, ordinateur et utilisateur: Le fichier Enterprisesec.config d&eacute;finit la strat&eacute;gie de s&eacute;curit&eacute; de l'entreprise, le fichier Security.config du niveau ordinateur celle de l'ordinateur et le fichier Security.config du niveau utilisateur celle de l'utilisateur.<br /><br />5. Les domaines d'application repr&eacute;sentent les limites entre lesquelles les applications s'ex&eacute;cutent. Un processus peut comporter plusieurs domaines d'application. Ceux-ci fournissent un environnement isol&eacute; aux applications, semblable &agrave; l'isolation assur&eacute;e par les processus. Une application s'ex&eacute;cutant &agrave; l'int&eacute;rieur d'un domaine d'application ne peut pas acc&eacute;der directement au code s'ex&eacute;cutant dans un autre domaine d'application. Pour acc&eacute;der &agrave; ce code, l'application doit utiliser un proxy.]]></description>
        <pubDate>Sat, 17 Jun 2006 11:58:06 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-3034481-6.html#comment4990772</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de xav]]></title>
        <link>http://dotnet.over-blog.com/article-3517756-6.html#comment7054159</link>        <description><![CDATA[<p class="MsoNormal">Bonjour, </p><br />
<p class="MsoNormal">F&eacute;licitations pour votre site qui est vraiment bien con&ccedil;u! J'ai cr&eacute;&eacute; un annuaire de blogs et si vous souhaitez vous y inscrire voici l'adresse: <a href="http://netblog.site.cx/">http://netblog.site.cx</a><span style="">&nbsp; </span>!</p><br />
<p class="MsoNormal">Bonne continuation</p>]]></description>
        <pubDate>Sun, 22 Oct 2006 12:58:13 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-3517756-6.html#comment7054159</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-3034700-6.html#comment5618533</link>        <description><![CDATA[Bonjour,<br /><br />Sans aller chercher trop loin, car je ne connais pas SQL Server, je pense qu'il faudrait aller dans le gestionnaire de contr&ocirc;les des services (Panneau de configuration-&gt;double clic sur Outils d'administration, puis Services), puis de double cliquer sur le ou les services associ&eacute;s &agrave; SQL Server. Dans la fen&ecirc;tre qui s'ouvre, v&eacute;rifier s'il n'y a pas une action personnalis&eacute;e qui arr&ecirc;te SQL Server &agrave; 23h sur votre machine. De plus il est aussi possible qu'un autre service soit configurer pour arr&ecirc;ter SQL Server lorsqu'il est d&eacute;faillant.<br />A mon avis il y a une action qui arr&ecirc;te SQL Server tous les jours &agrave; 23h et qui le red&eacute;marre plus tard.<br /><br />Cdt,<br /><br />R.]]></description>
        <pubDate>Fri, 28 Jul 2006 19:21:44 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-3034700-6.html#comment5618533</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Jibril]]></title>
        <link>http://dotnet.over-blog.com/article-3034700-6.html#comment5605010</link>        <description><![CDATA[<p>Bonjour et merci pour cet article,</p><br />
<p>J'ai un pbm avec SQL Server, peux-tu m'aider stp <br /><br />J'ai programm&eacute; mes sauvegardes &agrave; minuit ts les jrs, seulement elles ne se font pas parce ke SQL Server s'arr&ecirc;te ts les jours &agrave; 23h, je ne sais pas prkoi... J'ai ce message dans le journal :</p><br />
<div id="post_message_1209527"><br />
<div style="MARGIN: 5px 20px 20px"><br />
<table cellspacing="0" cellpadding="6" width="100%" border="0"><br />
    <tbody><br />
        <tr><br />
            <td class="alt2" style="BORDER-RIGHT: 1px inset; BORDER-TOP: 1px inset; BORDER-LEFT: 1px inset; BORDER-BOTTOM: 1px inset">SQL Server s'est arr&ecirc;t&eacute; suite &agrave; la demande &quot;arr&ecirc;ter&quot; du gestionnaire de contr&ocirc;le </td><br />
        </tr><br />
    </tbody><br />
</table><br />
<!-- END TEMPLATE: bbcode_quote --><br />Ceci peut &ecirc;tre d&ucirc; &agrave; koi ?<br /><br />Merci !</div><br />
</div>]]></description>
        <pubDate>Thu, 27 Jul 2006 20:28:55 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-3034700-6.html#comment5605010</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-1798208-6.html#comment2446358</link>        <description><![CDATA[<p>1. Le d&eacute;ploiement XCOPY est une m&eacute;thode simple de d&eacute;ploiement dans laquelle la commande DOS XCOPY est ex&eacute;cut&eacute;e pour copier le r&eacute;pertoire de l'application et tous les sous-r&eacute;pertoires sur la machine cible. Vous pouvez utiliser cette solution lorsque votre application ne d&eacute;pend pas de fichiers partag&eacute;s et qu'aucune action particuli&egrave;re n'est requise au cours du d&eacute;ploiement. Si l'application exige un d&eacute;ploiement plus complexe ou qu'elle fait r&eacute;f&eacute;rence &agrave; des assemblages partag&eacute;s, vous ne pouvez pas utiliser XCOPY.</p><br />
<p>2. Cr&eacute;er un projet d'installation pour l'application. A l'aide de l'&eacute;diteur d'interface utilisateur, fournissez une bo&icirc;te de dialogue permettant au r&eacute;pertoire du fichier d'&ecirc;tre d&eacute;fini pendant l'installation administrative, mais supprimez cette posibilit&eacute; dans une installation normale. Ex&eacute;cutez l'installation administrative pour installer l'application sur le partage r&eacute;seau.</p><br />
<p>3. Vous pouvez associer des fichiers HTML &agrave; votre application soit en les ajoutant lorsque vous cr&eacute;er le projet d'installation avec l'Assistant Installation, soit en les ajoutant au projet apr&egrave;s la cr&eacute;ation avec l'&eacute;diteur du syst&egrave;me de fichiers.</p><br />
<p>4. Une image native est une version pr&eacute;compil&eacute;e d'un assemblage .NET. Vous cr&eacute;ez une image native de votre application en ex&eacute;cutant l'utilitaire Ngen.exe.</p><br />
<p>5. Un programme d'amor&ccedil;age d&eacute;tecte automatiquement si Windows Installer est install&eacute; sur la machine cible. Si cet utilitaire n'est pas pr&eacute;sent, elle l'installe avant de poursuivre l'installation. Vous devriez cr&eacute;er un programme d'amor&ccedil;age sauf si toutes les machines cibles s'ex&eacute;cutent sous Windows XP (puique ce syst&egrave;me d'exploitation comporte en standard Microsoft Windows Installer 1.5) ou que Microsoft Installer est d&eacute;j&agrave; install&eacute; partout.</p>]]></description>
        <pubDate>Fri, 10 Feb 2006 11:40:17 +0100</pubDate>        <guid >http://dotnet.over-blog.com/article-1798208-6.html#comment2446358</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-1798071-6.html#comment2399792</link>        <description><![CDATA[<p>1. Pour signer votre assemblage avec un nom fort, vous devez avoir acc&egrave;s &agrave; un fichier de cl&eacute;s ou le cr&eacute;er avec l'utilitaire sn.exe. Vous sp&eacute;cifiez ensuite le fichier de cl&eacute;s dans le fichier AssemblyInfo et vous v&eacute;rifier la validit&eacute; du num&eacute;ro de version. L'assemblage sera sign&eacute; avec un nom fort au moment de la g&eacute;n&eacute;ration. Le nom fort ne permet pas seulement d'identifier votre assemblage et d'en garantir la version, il est n&eacute;cessaire si vous d&eacute;sirez installer l'assemblage dans le GAC (<em>Global Assembly Cache</em>).&nbsp;</p><br />
<p>2. Vous devez tout d'abord cr&eacute;er une instance de la classe <em>ResourceManager</em> associ&eacute; &agrave; l'assemblage contenant la ressource d&eacute;sir&eacute;e. Vous pouvez alors utiliser la m&eacute;thode <em>GetString</em> pour r&eacute;cup&eacute;rer des ressources cha&icirc;ne ou la m&eacute;thode <em>GetObject</em> pour r&eacute;cup&eacute;rer des ressources objet.</p><br />
<p>3. Vous devez d'abord cr&eacute;er une instance de <em>AppSettingsReader</em> afin de lire le fichier de configuration. Vous pouvez ensuite appeler la m&eacute;thode <em>GetValue</em> pour lire les valeurs repr&eacute;sent&eacute;es dans ce fichier. Pour ajouter des entr&eacute;es au fichier de configuration, cr&eacute;ez des &eacute;l&eacute;ments <em>&lt;add&gt;</em> dans le noeud <em>&lt;appSettings&gt;</em> de ce fichier. Dans l'&eacute;l&eacute;ment <em>&lt;add&gt;</em>, vous sp&eacute;cifiez une valeur pour une entr&eacute;e et une clef qui permettra de r&eacute;cup&eacute;rer la valeur. Celle-ci peut &ecirc;tre modifi&eacute;e d'une ex&eacute;cution &agrave; l'autre de l'application.</p><br />
<p>4. Cr&eacute;er une <em>PrincipalPermission</em> repr&eacute;sentant le groupe des d&eacute;veloppeurs et une autre <em>PrincipalPermission</em> repr&eacute;sentant le groupe <em>BUILTIN\Administrators</em>. Vous cr&eacute;er ensuite une troisi&egrave;me permission repr&eacute;sentant l'union des deux en appelant la m&eacute;thode Union et en demandant cette permission.</p><br />
<p>5. La s&eacute;curit&eacute; imp&eacute;rative est impl&eacute;ment&eacute;e en appelant les m&eacute;thodes des objets Permission dans le code au moment de l'ex&eacute;cution. La s&eacute;curit&eacute; d&eacute;clarative est configur&eacute;e en associant des attributs repr&eacute;sentant les permissions aux classes et m&eacute;thodes. La s&eacute;curit&eacute; imp&eacute;rative permet de mieux contr&ocirc;ler le moment o&ugrave; les permissions sont demand&eacute;es en cours d'ex&eacute;cution, mais la s&eacute;curit&eacute; d&eacute;clarative est &eacute;mise dans les m&eacute;tadonn&eacute;es et les permissions demand&eacute;es peuvent &ecirc;tre d&eacute;couvertes via les classes de l'espace de noms <em>System.Reflection</em>. Vous pouvez aussi demander des permissions au niveau assemblage &agrave; l'aide de la directive <em>Assembly (assembly)</em> avec la s&eacute;curit&eacute; d&eacute;clarative.</p>]]></description>
        <pubDate>Tue, 07 Feb 2006 12:00:42 +0100</pubDate>        <guid >http://dotnet.over-blog.com/article-1798071-6.html#comment2399792</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-1798001-6.html#comment2383977</link>        <description><![CDATA[1. La classe <span style="font-style: italic;">PrintDocument</span> expose la m&eacute;thode <span style="font-style: italic;">Print</span>, qui d&eacute;clenche l'&eacute;v&egrave;nement <span style="font-style: italic;">PrintPage</span>. Le code destin&eacute; &agrave; transmettre les &eacute;lements &agrave; imprimer &agrave; l'imprimante devrait &ecirc;tre plac&eacute; dans le gestionnaire de l'&eacute;v&egrave;nement <span style="font-style: italic;">PrintPage</span>. Celui-ci fournit les objets n&eacute;cessaires pour le rendu sur l'imprimantee dans une instance de la classe <span style="font-style: italic;">PagePrintEventArgs</span>. Ce rendu s'obtient &agrave; l'aide de l'objet Graphics fourni par <span style="font-style: italic;">PagePrintEventArgs</span>. Vous pouvez calculer l'espacement correct entre les lignes en divisant la hauteur de la propri&eacute;t&eacute; <span style="font-style: italic;">MarginBoungs</span> par celle de la police utilis&eacute;e pour l'impression. Si votre document comporte plusieurs pages, vous devez d&eacute;finir la propri&eacute;t&eacute; <span style="font-style: italic;">PagePrintEventArgs.HasMorePages</span> &agrave; true, ce qui d&eacute;clenche de nouveau &eacute;v&egrave;nement <span style="font-style: italic;">PrintPage</span>. Le gestionnaire cet &eacute;v&egrave;nement n'enregistre pas le nombre de pages qui ont d&eacute;j&agrave; &eacute;t&eacute; imprim&eacute;es, vous devez donc pr&eacute;voir toute la logique n&eacute;cessaire &agrave; l'impression de plusieurs pages dans votre gestionnaire.<br /><br />2. Toute m&eacute;thode Web publique sur un service Web peut &ecirc;tre appel&eacute;e de fa&ccedil;on synchrone ou asynchrone. Pour effectuer un appel de m&eacute;thode asynchrone, vous appelez la m&eacute;thode nomm&eacute;e <span style="font-style: italic;">Begin&lt;webmethod&gt;</span>, o&ugrave; <span style="font-style: italic;">&lt;webmethod&gt;</span> est le nom de la m&eacute;thode. Cette m&eacute;thode exige un d&eacute;l&eacute;gu&eacute; pour la m&eacute;thode de rappel appropri&eacute;e et elle renvoie une valeur de type <span style="font-style: italic;">IAsyncResult</span>. Cette valeur est obtenue sous forme de param&egrave;tre de la m&eacute;thode de rappel. Pour r&eacute;cup&eacute;rer les donn&eacute;es renvoy&eacute;es par la m&eacute;thode Web, appelez <span style="font-style: italic;">End&lt;webmethod&gt;</span>. Vous pouvez ainsi extraire les donn&eacute;es effectivement renvoy&eacute;es par la m&eacute;thode Web.<br /><br />3. Les cinqs conditions n&eacute;cessaire sont:<br /><br />- Supporter les param&egrave;tres syst&egrave;mes standard. Cette condition exige que votre application soit conforme aux param&egrave;tres syst&egrave;me pour ce qui concerne les couleurs, les polices et tout autre &eacute;l&eacute;ment de l'interface utilisateur.<br /><br />- Etre compatible avec le mode contraste &eacute;lev&eacute;. Cette condition peut &ecirc;tre obtenue en utilisant uniquement la palette syst&egrave;me pour les couleurs de l'interface utilisateur.<br /><br />- Fournir un acc&egrave;s clavier document&eacute; pour toutes les fonctions de l'interface utilisateur. Les points cl&eacute;s de cette condition sont les touches de raccourci et la documentation disponible.<br /><br />- Indiquer clairement l'emplacement du focus. Cette condition est principalement g&eacute;r&eacute;e par le .Net Framework.<br /><br />- Ne pas fournir d'information uniquement par voie audio. Cette condition peut &ecirc;tre obtenue en transmettant les informations par plusieurs moyens.<br /><br />4. Vous pouvez fournir un <span style="font-style: italic;">HelpString</span> ou une rubrique d'aide pour les &eacute;l&eacute;ments de l'interface utilisateur &agrave; l'aide du <span style="font-style: italic;">HelpProvider</span>. Celui-ci fournit les propri&eacute;t&eacute;s <span style="font-style: italic;">HelpString</span>, <span style="font-style: italic;">HelpKeyWord</span>, et <span style="font-style: italic;">HelpNavigator</span> pour chaque contr&ocirc;le du formulaire. Si aucune valeur n'est d&eacute;finie pour <span style="font-style: italic;">HelpProvider</span>.<span style="font-style: italic;">HelpNameSpace</span>, la <span style="font-style: italic;">HelpString</span> sera fournie sous forme d'aide. Si cette propri&eacute;t&eacute; est d&eacute;finie, le <span style="font-style: italic;">HelpProvider</span> affichera la rubrique d'aide appropri&eacute;e en fonction de la configuration des propri&eacute;t&eacute;s <span style="font-style: italic;">HelpKeyWord</span> et <span style="font-style: italic;">HelpNavigator</span>. L'aide d'un &eacute;l&eacute;ment particulier sera affich&eacute; lorque cet &eacute;l&eacute;ment recevra le focus et que la touche F1 sera enfonc&eacute;e.<br /><br />5. Pour cr&eacute;er la version localis&eacute;e d'un formulaire, d&eacute;finissez la propri&eacute;t&eacute; Localizable &agrave; true. D&eacute;finissez ensuite la propri&eacute;t&eacute; Language avec la langue/r&eacute;gion pour laquelle vous voulez cr&eacute;er le formulaire. R&eacute;alisez toutes les modifications li&eacute;es &agrave; la localisation dans l'interface utilisateur. Les valeurs de propri&eacute;t&eacute; modifi&eacute;es seront automatiquement stock&eacute;es dans les fichiers ressources et charg&eacute;es au moment de la d&eacute;finition de <span style="font-style: italic;">CurrentUICulture</span> avec le <span style="font-style: italic;">CultureInfo</span> appropri&eacute;.<br /><br />6. La m&eacute;thode <span style="font-style: italic;">Encoding.Convert</span> permet de convertir des donn&eacute;es d'un type de codage dans un autre. Elle doit recevoir une instance de chaque type de codage et-un tableau d'octets repr&eacute;sentant les donn&eacute;es &agrave; convertir. Elle renvoie un tableau d'octets au format cible. Vous pouvez convertir une cha&icirc;ne ou un tableau de caract&egrave;res en un tableau d'octets avec la m&eacute;thode <span style="font-style: italic;">Encoding.GetBytes</span> et vous pouvez reconvertir un tableau d'octets en tableau de caract&egrave;res avec la m&eacute;thdoe <span style="font-style: italic;">Encoding.GetChars</span>.<br /><br />7. La globalisation concerne l'application d'un format sp&eacute;cifique &agrave; la culture &agrave; des donn&eacute;s existantes. La localisation consiste &agrave; fournir de nouvelles ressources sp&eacute;cifiques &agrave; la culture et obtenir les ressources appropri&eacute;es en fonction du param&egrave;tre de culture.]]></description>
        <pubDate>Mon, 06 Feb 2006 11:47:16 +0100</pubDate>        <guid >http://dotnet.over-blog.com/article-1798001-6.html#comment2383977</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-1509440-6.html#comment1896091</link>        <description><![CDATA[1. Les trois types de contr&ocirc;les d&eacute;velopp&eacute;s par l'utilisateur sont les contr&ocirc;les h&eacute;rit&eacute;s, les contr&ocirc;les utilisateur et les contr&ocirc;les personnalis&eacute;s. Un contr&ocirc;le h&eacute;rit&eacute; d&eacute;rive d'un contr&ocirc;le Windows Forms standard et h&eacute;rite de l'aspect et du comportement de ce contr&ocirc;le. Avec les contr&ocirc;les utilisateur, vous pouvez combiner des contr&ocirc;les Windows Form standard et les regrouper avec un fonctionnalit&eacute; commune. Les contr&ocirc;les personnalis&eacute;s h&eacute;ritent de Control et exige davantage d'efforts au niveau du d&eacute;veloppement. Les contr&ocirc;les personnalis&eacute;s doivent impl&eacute;menter leur propre code pour l'affichage et ils h&eacute;ritent uniquement d'une fonctionnalit&eacute; de contr&ocirc;le g&eacute;n&eacute;rique. Toute fonctionnalit&eacute; sp&eacute;cifique doit &ecirc;tre impl&eacute;ment&eacute;e par le d&eacute;veloppeur.<br /><br />2. L'objet Graphics repr&eacute;sentent une surface d'affichage et il encapsule les m&eacute;thodes n&eacute;cessaires pour afficher des graphiques sur cette surface. Un objet Brush est utilis&eacute; pour remplir des formes pleines et un Pen est utilis&eacute; pour afficher des lignes. Un objet GraphicsPath repr&eacute;sente une forme complexe qui peut &ecirc;tre affich&eacute;e par un objet Graphics.<br /><br />3. Vous devez tout d'abord obtenir une r&eacute;f&eacute;rence de l'objet Graphics. Vous devez cr&eacute;er une instance d'objet GraphicsPath. Ex&eacute;cutez la m&eacute;thode GraphicsPath.AddString pour ajouter du texte au GraphicsPath. Appelez ensuite Graphics.DrawPath ou Graphics.FillPath pour afficher le texte.<br /><br />4. Le LicenseProvider contr&ocirc;le la validation des licences et accorde des licences d'utilisation &agrave; l'ex&eacute;cution pour les composants dont la licence d'utilisation est valide. La m&eacute;thode LicenseManager.Validate recherche un fichier de licence et le contr&ocirc;le en fonction de la logique de validation fournie par l'impl&eacute;menation sp&eacute;cifique du LicenseProvider. Vous sp&eacute;cifiez le LicenseProvider &agrave; utiliser en appliquant le LicenseProviderAttribute.<br /><br />5. D&eacute;finissez la propri&eacute;t&eacute; Region du formulaire ou du contr&ocirc;le avec un objet Region contenant la forme irreguli&egrave;re.&nbsp; Vous pouvez cr&eacute;er un objet Region &agrave; partir d'un objet GraphicsPath.]]></description>
        <pubDate>Mon, 02 Jan 2006 17:57:33 +0100</pubDate>        <guid >http://dotnet.over-blog.com/article-1509440-6.html#comment1896091</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-1252750-6.html#comment1406115</link>        <description><![CDATA[1. Un fournisseur de données ADO.Net est une suite de composants conçue pour simplifier l'accès aux données. Un fournisseur de données comporte au minimum un objet Connection fournissant la connexion réelle avec la source de données, un objet Command représentant une commande directe sur la source de données, un objet DataReader fournissant l'accès connnecté, en avance seule, en lecture seulement à la base de données, et un DataAdapter facilitant l'accès aux données déconnectées.<br />
<br />
2. Dans ADO.Net, l'accès aux données connectées est disponible via le DataReader, une classe simplifiée conçue pour fournir un accès aux données rapide et efficace. Cet accès est cependant sévèrement limité puisqu'il s'agit uniquement d'un accès en avance seule, sans possibilité de modification, et qu'il esige l'utilisation exclusive d'un objet Connection. L'accès aux données déconnectées est obtenu au contraire par l'intermédiaire du DataAdapter, qui gère les commandes requises pour sélectionner et mettre à jour les données. Ce DataAdapter exécute une commande SELECT sur la base de données, en ouvrant la connexion uniquement le temps nécessaire pour résupérer les données, puis il charge ces dernières dans un DataSet, une copie en mémoire de ces données. Quant les données sont prêtes à être mises à jour, le fournisseur de données gère cette opération de la même façon. Il génère les commandes appropriées pour mettre à jour la base de données en conservant la connexion ouvert juste le temps nécessaire pour les exécuter.<br />
<br />
3.La propriété CommandType d'un objet Command peut prendre les valeurs Text, StoredProcedure ou TableDirect. Avec la valeur Text, la commande exécute la chaîne SQL stockée dans la propriété CommandText de l'objet Command. Avec la valeur StoredProcedure, la commande accède à une procédure stockée sur la base de données en renvoie les résultats. Lorsque CommandText est définie en TableDirect, la commande doit renvoyer le cotnenu complet de la table désignée par la propriété CommandText.<br />
<br />
4. Pour exécuter des commandes DDL, vous devez faire appel à un objet Command. Vous pouvez définir la propriété CommandType en Text et saisir la commande DDL appropriée dans la propriété CommandText. Vous appelz ensuite Command.ExecuteNonQuery pour exécuter la commande.<br />
<br />
5. Les objets DataSet typés vous permettent de travailler avec des données disponibles sous la forme de membres du système de types commun .Net. De cette façon, les applications connaissent les types de données qu'un DataSet va renvoyer; vous évitez les erreurs de conversion de type invalides puisque les erreurs de types dont détectées dès la compilation. Les objets DataSet non typés sont intéressants lorsque vous ne connaissez pas la structure de vos données et vous pouvez les utiliser avec toute source de données.<br />
<br />
6. Toute source de données d'un formulaire possède un objet CurrencyManager associé qui pointe sur l'enregistrement courant en liaison avec les contrôles liés. Pour des raisons pratiques, tous les objets CurrencyManager représentés sur un formulaire sont exposés par l'intermédiaire de la propriété BindingContext du formulaire. La position du CurrencyManager peut être modifiée afin de parcourir les enregistrements.<br />
<br />
7. Vous pouvez appliquer un critère de tri à un DataView en définissant la propriété Sort avec le nom d'une ou de plusieurs colonnes sur lesquelles appliquer le tri. Les données représentées dans un objet DataView peuvent aussi être filtrées en définissant la propriété RowFilter avec une expression de filtre valide.<br />
<br />
8. Un XmlDataDocument est une représentation en mémoire de données dans un format XML hiérarchique. Chaque XmlDataDocument est synchronisé avec un DataSet. Dès qu'un des objets est modifié, l'autre est aussitôt mis à jour. Vous pouvez donc utiliser le XmlDataDocument pour effectuer des manipulations XML sur DataSet.]]></description>
        <pubDate>Tue, 22 Nov 2005 18:58:02 +0100</pubDate>        <guid >http://dotnet.over-blog.com/article-1252750-6.html#comment1406115</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-1024050-6.html#comment1082985</link>        <description><![CDATA[1. Le mode Arrêt permet d'interrompre l'exécution du programme et d'exécuter le code ligne par ligne. Vous contrôlez ensuite l'exécution du programme avec les instructions Pas à pas détaillé, Pas à pas principal, Pas à pas sortant, Exécuter jusqu'au curseur, et Définir l'instruction suivante.<br />
<br />
2. La fenêtre Espion permet d'observer la valeur des variables de l'application en mode Arrêt.<br />
<br />
3. Vous allez introduire en différents points stratégiques de votre application des instructions Trace qui renseignent sur les données significatives. Créez un TextWriterTraceListener et ajoutez-le à la collection Listeners. Créez des communtateurs de trace pour contrôler à quel moment les instructions Trace sont exécutées. Configurez le TextWriterTraceListener de sorte qu'il écrive en sortie dans un fichier texte. Compilez et déployez ensuite l'application avec la trace définie, et activez les commutateurs de trace dans le ficheir .config de l'application.<br />
<br />
4. Oui. Pour compléter les tests de fonctionnement avec des données valides, vous devez tester l'application avec des valeurs invalides prévisibles de sorte qu'elle puisse traiter les erreurs d'entrée sans provoquer d'interruption brutale catastrophique du fonctionnement.<br />
<br />
5. Le bloc Try(try) contient le code qui doit être exécuté. Si une exception est levée, elle peut alors être traitée dans le bloc Catch(catch) approprié. Celui-ci contient le code qui permettra à l'application de gérer l'exception. Le bloc Finally(finally) contient le code qui devra être exécuté que l'exception soit gérée ou pas.<br />
]]></description>
        <pubDate>Mon, 17 Oct 2005 12:14:48 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-1024050-6.html#comment1082985</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-900313-6.html#comment1082921</link>        <description><![CDATA[1. L'encapsulation est le principe selon lequel la totalité des données et de la fonctionnalité requises par un objet sont contenues dans ce dernier. Les objets peuvent ainsi se comporter comme des unités de fonctionnalité indépendantes, interchangeables, sans maintenir de dépendance envers d'autres unités du code.<br />
<br />
2. Pour surcharger une méthode, vous créer plusieurs méthodes de même nom mais avec des signatures différentes. Cette technique permet de fournir une fonctionnalité identique ou similaire avec différents jeux de paramètres.<br />
<br />
3. Regroupez l'ensemble commun des méthodes dans une interface puis implémentez-là dans chaque classe. Ces classes pourront ainsi être converties implicitement dans cette interface et interagir de façon polymorphe avec les autres classes.<br />
<br />
4. Créer une classe qui implémente l'ensemble de la fonctionnalité commune requise par ces classes. Utilisez ensuite l'héritage pour créer des classes dérivés spécifiques à chaque cas individuel.<br />
<br />
5. Une classe abstraite est une classe qui ne peut être instanciée mais qui doit être héritée. Elle peut contenir à la fois des méthodes abstraites, qui doivent être implémentées à leur tour dans une classe dérivée. Elle peut donc définir une fonctionnalité commune pour ces méthodes, une interface commune pour d'autres méthodes et se décharger sur les classes héritées de l'implémentation de certains détails.<br />
]]></description>
        <pubDate>Mon, 17 Oct 2005 12:03:38 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-900313-6.html#comment1082921</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-779319-6.html#comment1082729</link>        <description><![CDATA[1. Les types sont convertis implicitement dès que la conversion peut s'effectuer dans perte de données. Si une perte de données est possible, il faut appliquer une conversion explicite. L'exécution inappropriée d'une conversion explicite peut donner lieu à une perte dans la précision des données ou déclencher une exception.<br />
<br />
2. Les énumérations et les constantes simplifient la lecture et la maintenance du code en remplaçant les valeurs de constantes fréquemment utilisées par des chaînes de caractères significatives.<br />
<br />
3. Les tableaux et les collections ont pour objectifs la gestion de groupes d'objets. Vous accédez à un objet particulier à partir de son index, qu'il s'agisse de tableaux ou de collections, et vous pouvez appliquer la syntaxe For Each...Next (foreach) pour parcourir les membres des tableaux et de la plupart des collections. Les tableaux sont de longueur fixe et les membres doivent être initialisés avant d'être utilisés. Les membres de collection doivent être déclarés et initialisés en dehors de la collection, avant d'être ajoutés dans cette dernière. Le nombre d'éléments des collections fournies dans l'espace de noms System.Collections peut augmenter ou diminuer dynamiquement, et vous pouvez ajouter ou supprimer des éléments pendant l'exécution.<br />
<br />
4. Avec les propriétés, le code peut être validé au moment de l'accès aux valeurs ou de la modification des valeurs. Cela permet d'effectuer un certain contrôle sur le moment et la façon dont les valeurs sont lues ou modifiées. Les champs n'autorisent aucune opération de validation lorsqu'ils sont lus ou définis.<br />
<br />
5. Un délégué se comporte comme un pointeur de fonction fortement typé. Les délégués peuvent invoquer les méthodes auxquelles ils font référence sans avoir besoin d'effectuer explicitement un appel à ces méthodes.<br />
]]></description>
        <pubDate>Mon, 17 Oct 2005 11:33:13 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-779319-6.html#comment1082729</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-736155-6.html#comment919793</link>        <description><![CDATA[1. Concevez l'interface utilisateur en adoptant l'apparence et le comportement de Microsoft Office XP, de sorte que les utilisateurs de ce logiciel appréhendent facilement la nouvelle application. L'intégration d'un logo de l'entreprise et de tout autre élément visuel associé à cette dernière participera à l'identification du programme comme programme de l'entreprise.<br />
<br />
2. Créez un premier formulaire contenant les contrôles communs, puis utilisez l'héritage visuel pour créer des formulaires dérivés.<br />
<br />
3. Ecrivez un gestionnaire pour l'évènement Activated qui implémente la fonctionnalité requise.<br />
<br />
4. Vous définissez l'ordre de tabulation dans Visual Studio en choisissant Ordre de tabulation dans le menu Affichage et en cliquant sur chaque contrôle dans l'ordre désiré. Vous pouvez aussi définir la propriété TabIndex soit dans le code, soit dans la fenêtre Propriétés.<br />
<br />
5. Les fournisseurs d'extendeur sont des composants qui fournissent des propriétés supplémentaires aux contrôles de formulaires. Les composants ErrorProvider, HelpProvider et ToolTip en font partie. Ils peuvent être utilisés pour fournir des informaitons supplémentaires concernant des contrôles particuliers pour les utilisateurs de l'interface utilisateur.<br />
<br />
6. Si toutes les options disponibles sont exposés dans un menu principal, celui-ci peut devenir complexe et difficile d'utilisstion. Avec les menus contextuels, les options moins fréquemment utilisées sont proposées uniquement lorsque la situation autorise leur emploi.<br />
<br />
7. La validation au niveau du champ est le processus selon lequel chaque champs est validé à mesure qu'il se trouve renseigné dans un formulaire. La validation au niveau du formulaire décrit le processus de validation de l'ensemble des données d'un formulaire avant la soumission de ce dernier.]]></description>
        <pubDate>Sat, 24 Sep 2005 21:04:48 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-736155-6.html#comment919793</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-673065-6.html#comment633456</link>        <description><![CDATA[1. Le .Net Framework est constitué de deux composants principaux: le CLR (Common Language Runtime), qui gère l'exécution de l'application, garantit la validité des types et gère la récupération de la mémoire, et la bibliothèque de classes de base .Net, constituée de milliers de classes prédéveloppées que vous pouvez utiliser pour construire vos applications.<br />
<br />
2. Un type valeur stocke la totalité des données représentées par la variable elle-même. Un type référence stocke une référence de l'adresse mémoire à laquelle la donnée est enregistrée plutôt que la donnée elle-même.<br />
<br />
3. Avec le mot clé Imports (VB.Net) ou using (Visual C#), vous rendez un espace de noms du .Net Framework disponible pour votre application.<br />
<br />
4. Le programme de récupération de mémoire est un thread qui s'exécute en arrière plan des applications .Net managés. Il surveille en permanence l'arborescence des références afin d'identifier les objets qui ne sont plus référencés. Dans ce cas, la mémoire occupée par cet objet est récupérée pour être réutilisée.<br />
<br />
5.Les membres sont des parties de classes ou de structures qui contiennent des données ou implémentent une foncitonnalité. Les types de membres principaux sont les champs, les propriétés, les méthodes et les évènements.<br />
<br />
6. Le constructeur est la méthode qui initialise une classe ou une structure et qui s'exécute au moment de l'instanciation du type. Il permet de définir des valeurs par défaut et de réaliser diverses tâches requises par la classe. Un destructeur est la méthode qui s'exécute lorsque l'objet est pris en charge par la récupération de la mémoire. Il contient le code requis pour libérer les ressources occupées par l'objet.<br />
<br />
7. Avec les types définis par l'utilisateur, des classes Public (public) peuvent être instanciées par tout élément de l'applicaiton. Les classes Friend (internal) peuvent uniquement être instanciées par des membres du même assemblage, et des classes Private (private) peuvent être instanciées uniquement par elles-mêmes ou par des types dans lesquels elles sont imbriquées. De la même façon, un membre Public (public) est accessible pour tout client dans l'application, un membre Friend (internal) est accessible uniquement pour des membres du même assemblage, et des membres Private (private) sont accessibles uniquement depuis le type.<br />
<br />
8. Un membre Shared (static) appartenant au type plutôt qu'à une instance de ce type, vous pouvez accéder à ce membre sans avoir besoin de créer préalablement une instance du type.]]></description>
        <pubDate>Sat, 06 Aug 2005 23:21:07 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-673065-6.html#comment633456</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-2044123-6.html#comment3755257</link>        <description><![CDATA[<p>Va faire un tour sur les sites:</p><br />
<p>- <a href="http://www.whizlabs.com">www.whizlabs.com</a></p><br />
<p>- <a href="http://www.cheat-test.com">www.cheat-test.com</a></p><br />
<p>Une petite recherche sur google du style &quot;certification [num&eacute;ro de certification]&quot; t'en remontera s&ucirc;rement d'autres.</p><br />
<p>R.</p><br />
<p>&nbsp;</p>]]></description>
        <pubDate>Wed, 19 Apr 2006 12:57:11 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-2044123-6.html#comment3755257</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de David]]></title>
        <link>http://dotnet.over-blog.com/article-2044123-6.html#comment3753831</link>        <description><![CDATA[oui, mais comment faire pour d&eacute;nicher un questionnaire type??]]></description>
        <pubDate>Wed, 19 Apr 2006 11:34:12 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-2044123-6.html#comment3753831</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de Rakoun]]></title>
        <link>http://dotnet.over-blog.com/article-2044123-6.html#comment3752333</link>        <description><![CDATA[<p>Merci &agrave; toi.</p><br />
<p>Le niveau des questions de certifdotnet est comparable &agrave; celui de la certification cependant certains points abord&eacute;s dans les questionnaires de cerfifdotnet ne le sont pas dans celui de la certification. Je te conseille donc vivement d'essayer d'obtenir un questionnaire type pour te faire un examen blanc. Par exemple en combinant mes propres r&eacute;visions et les questionnaires de certifdotnet je n'arrivais &agrave; r&eacute;pondre qu'&agrave; 50% des questions du questionnaire type. J'utilisais surtout certifdotnet pour rep&eacute;rer mes lacunes.</p><br />
<p>Bon courage &agrave; toi.</p><br />
<p>R.</p>]]></description>
        <pubDate>Wed, 19 Apr 2006 10:13:43 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-2044123-6.html#comment3752333</guid>
                                            </item>
      <item>
        <title><![CDATA[Commentaire de david]]></title>
        <link>http://dotnet.over-blog.com/article-2044123-6.html#comment3740855</link>        <description><![CDATA[<p>F&eacute;licitation pour ta certif!</p><br />
<p>Je voudrais te posez une question. </p><br />
<p>Est que le niveau des questions sur le site 'Certifdotnet' est comparable au niveau des questions de l'examen ?</p><br />
<p>merci d'avance.</p>]]></description>
        <pubDate>Tue, 18 Apr 2006 18:42:39 +0200</pubDate>        <guid >http://dotnet.over-blog.com/article-2044123-6.html#comment3740855</guid>
                                            </item>
  
 </channel>
</rss>