<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.lelibre.net/index.php?feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>T'as pas tout vu en .NET !!! :-)</title>
  <link>http://www.lelibre.net/index.php?</link>
  <atom:link href="http://www.lelibre.net/index.php?feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Sun, 15 Aug 2010 01:18:08 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Gridview ASP.NET avec en source une collection d'elements &quot;interface'</title>
    <link>http://www.lelibre.net/index.php?post/2009/10/10/Gridview-ASP.NET-avec-en-source-une-collection-d-elements-interface</link>
    <guid isPermaLink="false">urn:md5:573e2100782709072b424ebc481e8cd7</guid>
    <pubDate>Sun, 11 Oct 2009 18:00:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>ASP.NET</category>
            
    <description>&lt;p&gt;J'ai été confronté ce vendredi au travail à une petite question &quot;classique&quot; que les développeurs posent quand ils remarquent un &quot;problème&quot; avec l'utilisation des GridView .... à savoir ... comment afficher dans une GridView une collection d'éléments de types différents ... Voici la réponse dans ce post&amp;nbsp;!&lt;/p&gt;    &lt;p&gt;Prenons par exemple une interface décrivant un profil .. Nous afficherons donc dans la vue une grille avec le nom et le prénom.&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;interface&lt;/span&gt; IMonInterface
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Prenom &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Nous allons implémenter cette interface dans deux classes différentes ... A et B ... Nous aurions pu dire &quot;Homme&quot; / &quot;Femme&quot; ... Ce n'est pas important&amp;nbsp;!&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; A &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; IMonInterface
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Prenom &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; Age &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; B &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; IMonInterface
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Prenom &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;bool&lt;/span&gt; Sexe &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Afin de rendre les données dans la grille ASP.NET 2.0, nous remplissons la liste et nous fournissons cette liste a notre grille.&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;protected&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; Page_Load&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; sender, EventArgs e&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;IMonInterface&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; macollection &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;IMonInterface&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; B&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; Nom&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Alfred&amp;quot;&lt;/span&gt;, Prenom&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Jean&amp;quot;&lt;/span&gt;, Sexe&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;,                
        &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; B&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; Nom&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Alfredo&amp;quot;&lt;/span&gt;, Prenom&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Jeanot&amp;quot;&lt;/span&gt;, Sexe&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;,
        &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; A&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; Nom&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Jean&amp;quot;&lt;/span&gt;, Prenom&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Conrad&amp;quot;&lt;/span&gt;, Age&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;;
    gv.&lt;span style=&quot;color: #0000FF;&quot;&gt;DataSource&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; macollection;
    gv.&lt;span style=&quot;color: #0000FF;&quot;&gt;DataBind&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Que ce soit en AutoGenerateColumns ou en BoundField (ci-dessous), nous aurons une exception de type&amp;nbsp;: &quot;L'accesseur de propriété 'Nom' sur l'objet 'WebApplicationAjax4.A' a levé l'exception suivante :'L'objet ne correspond pas au type cible.'&quot;.... Il faut donc comprendre que le type joue un rôle important dans la reflection pour le remplissage d'une GridView ...&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;BoundField DataField&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Nom&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Mais comment faire pour que cela fonctionne &lt;acronym&gt;&lt;/acronym&gt;? Simple ... Il faut réflechir au comportement du BoundField et au comportement du ItemTemplate ... On se rend vite compte que si on implémente le code ci-dessous .... l'utilisation du &quot;Eval&quot; nous permettra de rendre via un autre mécanisme l'information ... Le type n'étant plus pris en compte de la même façon, le rendu fonctionne parfaitement ... Voici donc une solution au problème&amp;nbsp;! Vous en avez une autre&amp;nbsp;? Un petit commentaire est le bienvenu ...&amp;nbsp;!&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;GridView ID&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;gv&amp;quot;&lt;/span&gt; runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt; AutoGenerateColumns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Columns&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;TemplateField&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ItemTemplate&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Label runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt; ID&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;nomID&amp;quot;&lt;/span&gt; Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;'&amp;lt;%# Eval(&amp;quot;Nom&amp;quot;)%&amp;gt;'&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;ItemTemplate&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;TemplateField&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;TemplateField&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ItemTemplate&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Label runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt; ID&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;prenomID&amp;quot;&lt;/span&gt; Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;'&amp;lt;%# Eval(&amp;quot;Prenom&amp;quot;)%&amp;gt;'&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;ItemTemplate&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;TemplateField&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Columns&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;GridView&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/10/10/Gridview-ASP.NET-avec-en-source-une-collection-d-elements-interface#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/10/10/Gridview-ASP.NET-avec-en-source-une-collection-d-elements-interface#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/143</wfw:commentRss>
      </item>
    
  <item>
    <title>Bing dans vos applications Silverlight</title>
    <link>http://www.lelibre.net/index.php?post/2009/08/09/Bing-dans-vos-applications-Silverlight</link>
    <guid isPermaLink="false">urn:md5:40c2c1ddd347fff05f0223a814d30e40</guid>
    <pubDate>Tue, 11 Aug 2009 20:30:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Silverlight</category>
            
    <description>&lt;p&gt;Bing est arrivé dans les cartons il y a quelques semaines ... Et que dire&amp;nbsp;? Ce nouveau moteur de recherche de Microsoft semble bien plus abouti&amp;nbsp;! Mais ce qui est très intéressant avec Bing ... c'est la possibilité via une API de le questionner dans ses propres applications. Ce petit post explique comment mettre en place la recherche dans Bing sous Silverlight 3.&lt;/p&gt;    &lt;h3&gt;Introduction&lt;/h3&gt;

&lt;p&gt;La première chose à faire est de récupérer les DLL pour l'API de Bing sous Silverlight à cette &lt;a href=&quot;http://silverbing.codeplex.com/&quot;&gt;adresse&lt;/a&gt;. La seconde étape est de demander une clé pour son application sur le site de Bing pour  &lt;a href=&quot;http://www.bing.com/developers/&quot;&gt;les développeurs &lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;Mise en place de la solution de test&lt;/h3&gt;


&lt;p&gt;Nous allons donc réaliser une petite application &quot;conne&quot; permettant d'effectuer une recherche sur Bing. Pour se faire, on crée une textbox avec un bouton. On ajoute également une ListBox standard &quot;wpf&quot; et puis un contrôle fourni dans les DLL de l'API pour .Net.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight_Bing/.image1_m.jpg&quot; alt=&quot;image1.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;image1.png, août 2009&quot; /&gt;&lt;/p&gt;


&lt;h4&gt;Code XAML&lt;/h4&gt;
&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;UserControl x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;Class&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;SilverlightWithBing.MainPage&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;x&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;d&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;mc&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;bing&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Views.Toolkit&amp;quot;&lt;/span&gt; 
    mc&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Ignorable&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;d&amp;quot;&lt;/span&gt; d&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;DesignWidth&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;640&amp;quot;&lt;/span&gt; d&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;DesignHeight&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;480&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;25px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;10*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;10*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ColumnDefinition&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ColumnDefinition Width&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;100px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBox Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;query&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Button Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;recherche&amp;quot;&lt;/span&gt; Content&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Recherche&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Click&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Button_Click&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ListBox Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;resultStandard&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnSpan&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;bing&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;StackView Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;resultBing&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnSpan&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;UserControl&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;Code C#&lt;/h4&gt;
&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; partial &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; MainPage &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; UserControl
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; MainPage&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        InitializeComponent&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On initialise la recherche pour Bing&lt;/span&gt;
        InitialiseBing&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On bind les data sources&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;resultBing&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ItemsSource&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; SearchEnvironment.&lt;span style=&quot;color: #0600FF;&quot;&gt;Default&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Results&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;resultStandard&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ItemsSource&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; SearchEnvironment.&lt;span style=&quot;color: #0600FF;&quot;&gt;Default&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Results&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;query&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Text&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;thierry thoua&amp;quot;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; InitialiseBing&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// La clé &amp;quot;privée&amp;quot; obtenue via le site Bing Developer&lt;/span&gt;
        SearchEnvironment.&lt;span style=&quot;color: #0600FF;&quot;&gt;Default&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ApplicationId&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;YOUR KEY&amp;quot;&lt;/span&gt;;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Je ne recherche que les pages WEB&lt;/span&gt;
        SearchEnvironment.&lt;span style=&quot;color: #0600FF;&quot;&gt;Default&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;MediaType&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; SearchMedia.&lt;span style=&quot;color: #0000FF;&quot;&gt;Web&lt;/span&gt;;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Je désactive l'option de filtrage ...&lt;/span&gt;
        SearchEnvironment.&lt;span style=&quot;color: #0600FF;&quot;&gt;Default&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;AdultOption&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; AdultOption.&lt;span style=&quot;color: #0000FF;&quot;&gt;Off&lt;/span&gt;;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// 30 résultats par page&lt;/span&gt;
        SearchEnvironment.&lt;span style=&quot;color: #0600FF;&quot;&gt;Default&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;PageSize&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;30&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; Button_Click&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; sender, RoutedEventArgs e&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;String&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;IsNullOrEmpty&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;query&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
            SearchEnvironment.&lt;span style=&quot;color: #0600FF;&quot;&gt;Default&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;BeginSearch&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;query&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;Customisation des &quot;listes&quot;&lt;/h3&gt;


&lt;p&gt;Après avoir appliqué un peu de &quot;skin&quot; via des template sur les Item ... voici le résultat:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight_Bing/.image2_m.jpg&quot; alt=&quot;image2.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;image2.png, août 2009&quot; /&gt;&lt;/p&gt;


&lt;h4&gt;ListBox standard WPF&lt;/h4&gt;
&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ListBox Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;resultStandard&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnSpan&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ListBox.&lt;span style=&quot;color: #0000FF;&quot;&gt;ItemTemplate&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
          &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;DataTemplate&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
               &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;StackPanel&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
                   &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBlock Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding Title}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
                   &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBlock Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding Snippet}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
               &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;StackPanel&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
           &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;DataTemplate&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;ListBox.&lt;span style=&quot;color: #0000FF;&quot;&gt;ItemTemplate&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;ListBox&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;Listbox fournie par les DLL Silverlight/Bing&lt;/h4&gt;
&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;bing&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;StackView Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;resultBing&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnSpan&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
     &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;bing&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;StackView.&lt;span style=&quot;color: #0000FF;&quot;&gt;ItemTemplate&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
          &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;DataTemplate&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;StackPanel&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;bing&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;LinkLabel Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding Title}&amp;quot;&lt;/span&gt; NavigateUri&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding Url}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBlock Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding Snippet}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;StackPanel&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
          &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;DataTemplate&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;bing&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;StackView.&lt;span style=&quot;color: #0000FF;&quot;&gt;ItemTemplate&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;bing&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;StackView&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Et vous, qu'en pensez-vous de Bing&amp;nbsp;?&lt;/p&gt;</description>
    
          <enclosure url="http://www.lelibre.net/public/Silverlight_Bing/SilverlightWithBing.rar"
      length="2052510" type="application/rar" />
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/08/09/Bing-dans-vos-applications-Silverlight#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/08/09/Bing-dans-vos-applications-Silverlight#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/140</wfw:commentRss>
      </item>
    
  <item>
    <title>Validations de classes business en Silverlight</title>
    <link>http://www.lelibre.net/index.php?post/2009/04/05/Validations-de-classes-business-en-Silverlight</link>
    <guid isPermaLink="false">urn:md5:80a7bcb93f94ca800fcf1c07b5c6d629</guid>
    <pubDate>Sun, 09 Aug 2009 23:00:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Silverlight</category>
            
    <description>&lt;p&gt;De nombreuses applications vont demander des validations d'encodage ... En effet, il est impossible d'envisager la création et l'utilisation d'une application sans validation de format au minimum. Les applications silverlight utiliseront également ces validations&amp;nbsp;! Ce post est donc la pour expliquer en quelques mots exemples à l'appui comment mettre en place la validation en Silverlight 3.&lt;/p&gt;    &lt;h3&gt;Démonstration&lt;/h3&gt;


&lt;p&gt;Pour être le plus clair possible, on va créer une petite application permettant l'encodage du nom d'une personne. Ce nom doit être de minimum 2 caractères. Si ce n'est pas le cas, il faut remonter une erreur.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight_Validation/image1.png&quot; alt=&quot;image1.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;image1.png, août 2009&quot; /&gt;&lt;/p&gt;


&lt;h3&gt;Création de l'application de base&lt;/h3&gt;


&lt;h5&gt;Code XAML&lt;/h5&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;UserControl x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;Class&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;SilverlightBusinessValidation.MainPage&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;x&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;d&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;mc&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/span&gt; 
    mc&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Ignorable&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;d&amp;quot;&lt;/span&gt; d&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;DesignWidth&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;640&amp;quot;&lt;/span&gt; d&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;DesignHeight&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;480&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;25px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;25px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ColumnDefinition Width&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;50px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ColumnDefinition Width&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;300px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBlock Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Nom:&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBox Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;txtNom&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding Path=Nom,Mode=TwoWay}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBlock Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Age:&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBox Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;txtAge&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding Path=Age,Mode=TwoWay}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;UserControl&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h5&gt;Code C# de remplissage de la source de données&lt;/h5&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; partial &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; MainPage &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; UserControl
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; MainPage&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        InitializeComponent&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;DataContext&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Identite&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h5&gt;Classe &quot;business avec une petite regle de validation pour le nom dans le &quot;set&quot;&lt;/h5&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; Identite
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; nom;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; age;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;nom&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        set
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;value.&lt;span style=&quot;color: #0000FF;&quot;&gt;Length&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;throw&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; ValidationException&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Le nom ne peut pas être inférieur à 2 caractères&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;nom&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; value;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; Age
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;age&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;age&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; value; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;Mise en place d'une validation de base&lt;/h3&gt;


&lt;p&gt;Comme vous pouvez le voir en testant le code ci-dessus. Aucune erreur n'est remontée sur l'ui. En effet pour avoir une erreur remontée, il faut activer la gestion des erreurs dans le binding de la propriété en settant &quot;true&quot; la propriété &lt;a href=&quot;http://msdn.microsoft.com/fr-fr/library/system.windows.data.binding.validatesonexceptions%28VS.95%29.aspx&quot;&gt;ValidatesOnExceptions&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight_Validation/.image3_m.jpg&quot; alt=&quot;image3.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;image3.png, août 2009&quot; /&gt;&lt;/p&gt;


&lt;h5&gt;Code XAML&lt;/h5&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;UserControl x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;Class&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;SilverlightBusinessValidation.MainPage&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;x&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;d&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;mc&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;&lt;/span&gt; 
    mc&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Ignorable&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;d&amp;quot;&lt;/span&gt; d&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;DesignWidth&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;640&amp;quot;&lt;/span&gt; d&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;DesignHeight&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;480&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;25px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;25px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ColumnDefinition Width&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;50px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ColumnDefinition Width&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;300px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;ColumnDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBlock Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Nom:&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBox Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;txtNom&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; 
           Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding  Path=Nom,Mode=TwoWay,NotifyOnValidationError=true,ValidatesOnExceptions=true}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBlock Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Age:&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBox Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;txtAge&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; 
           Text&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;{Binding Path=Age,Mode=TwoWay,NotifyOnValidationError=true,ValidatesOnExceptions=true}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;UserControl&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;Customisation de la remontée d'erreurs de validations&lt;/h3&gt;


&lt;p&gt;Afin d'avoir la possibilité d'avoir l'élément levé d'erreur de validation, il faut activer la propriété &lt;a href=&quot;http://msdn.microsoft.com/fr-fr/library/system.windows.data.binding.notifyonvalidationerror%28VS.95%29.aspx&quot;&gt;NotifyOnValidationError&lt;/a&gt; dans le binding. Le code ci-dessous coloriera la textbox en rouge en cas d'erreur.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight_Validation/.image4_m.jpg&quot; alt=&quot;image4.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;image4.png, août 2009&quot; /&gt;&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; partial &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; MainPage &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; UserControl
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; MainPage&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        InitializeComponent&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;DataContext&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Identite&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;txtNom&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;BindingValidationError&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;+=&lt;/span&gt; 
                                &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; EventHandler&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;ValidationErrorEventArgs&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;txtNom_BindingValidationError&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; txtNom_BindingValidationError&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; sender, ValidationErrorEventArgs e&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;Control&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;e.&lt;span style=&quot;color: #0000FF;&quot;&gt;OriginalSource&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Background&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; SolidColorBrush&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;e.&lt;span style=&quot;color: #0000FF;&quot;&gt;Action&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;==&lt;/span&gt; ValidationErrorEventAction.&lt;span style=&quot;color: #0000FF;&quot;&gt;Added&lt;/span&gt; 
                                                                         &lt;span style=&quot;color: #0600FF;&quot;&gt;?&lt;/span&gt; Colors.&lt;span style=&quot;color: #0000FF;&quot;&gt;Red&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; Colors.&lt;span style=&quot;color: #0000FF;&quot;&gt;White&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;Utilisation des &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations%28VS.95%29.aspx&quot;&gt;&quot;data annotations&quot;&lt;/a&gt;&lt;/h3&gt;


&lt;p&gt;L'utilisation des data annotations demande l'ajout de la reference à la DLL.
&lt;img src=&quot;http://www.lelibre.net/public/Silverlight_Validation/.image2_m.jpg&quot; alt=&quot;image2.png&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;image2.png, août 2009&quot; /&gt;&lt;/p&gt;


&lt;h5&gt;Implémentation de la validation via attribut standard fourni dans le framework&lt;/h5&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; Identite
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; nom;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; age;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#91;&lt;/span&gt;StringLength&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;100&lt;/span&gt;, MinimumLength &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2&lt;/span&gt;, ErrorMessage &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Le nom ne peut pas être inférieur à 2 caractères&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;nom&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        set
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            Validator.&lt;span style=&quot;color: #0000FF;&quot;&gt;ValidateProperty&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;value, &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; ValidationContext&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;, &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;, &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; MemberName &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Nom&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;nom&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; value;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; Age
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;age&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;age&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; value; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h5&gt;Implémentation de la validation via attribut &quot;custom&quot;. Cette méthode offre la possibilité de créer une véritable validation fonctionnelle.&lt;/h5&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; CustomClassValidationAttribute &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; ValidationAttribute
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; MinimumLength &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;protected&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;override&lt;/span&gt; ValidationResult IsValid&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; value, ValidationContext validationContext&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; chaine &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;value;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;chaine.&lt;span style=&quot;color: #0000FF;&quot;&gt;Length&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;MinimumLength&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; ValidationResult.&lt;span style=&quot;color: #0000FF;&quot;&gt;Success&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; ValidationResult&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Format&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Le {0} ne peut pas être inférieur à {1} caractère(s)&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Nom&lt;/span&gt;, &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;MinimumLength&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; Identite
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; nom;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; age;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#91;&lt;/span&gt;CustomClassValidationAttribute&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;MinimumLength &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2&lt;/span&gt;, Nom&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;nom&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;nom&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        set
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            Validator.&lt;span style=&quot;color: #0000FF;&quot;&gt;ValidateProperty&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;value, &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; ValidationContext&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;, &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;, &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; MemberName &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Nom&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;nom&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; value;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; Age
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;age&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;age&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; value; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h5&gt;Implémentation d'une validation non pas d'une &quot;classe&quot; de validation mais d'une méthode dans une classe&lt;/h5&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; CustomClassAvecMethode
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// public &amp;amp; static !&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; ValidationResult MethodeMinLength&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;value.&lt;span style=&quot;color: #0000FF;&quot;&gt;Length&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; ValidationResult.&lt;span style=&quot;color: #0000FF;&quot;&gt;Success&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; ValidationResult&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Le nom ne peut pas être inférieur à 2 caractères&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; Identite
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; nom;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; age;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#91;&lt;/span&gt;CustomValidation&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;typeof&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;CustomClassAvecMethode&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;MethodeMinLength&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;nom&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        set
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            Validator.&lt;span style=&quot;color: #0000FF;&quot;&gt;ValidateProperty&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;value, &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; ValidationContext&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;, &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;, &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; MemberName &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Nom&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;nom&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; value;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; Age
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;age&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        set &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;age&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; value; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Voici donc en quelques lignes comment implémenter vos validations sous Silverlight 3. Vous avez d'autres techniques&amp;nbsp;? Laissez un commentaire &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
          <enclosure url="http://www.lelibre.net/public/Silverlight_Validation/SilverlightBusinessValidation.rar"
      length="57118" type="application/rar" />
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/04/05/Validations-de-classes-business-en-Silverlight#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/04/05/Validations-de-classes-business-en-Silverlight#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/132</wfw:commentRss>
      </item>
    
  <item>
    <title>Balsamiq mockup ! ... le meilleur des wireframes !</title>
    <link>http://www.lelibre.net/index.php?post/2009/08/02/Balsamiq-mockup-%21-...-le-meilleur-des-wireframes-%21</link>
    <guid isPermaLink="false">urn:md5:45ea82d541c46553882daac6ccff0dcc</guid>
    <pubDate>Sun, 02 Aug 2009 21:55:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>General</category>
            
    <description>Je vais vous parler en quelques lignes de balsamiq mockup. Il s'agit d'une solution permettant d'offrir rapidement un &quot;design&quot; comme si on dessinait sur un papier. Il est possible de l'intégrer à des outils comme Jira et confluence ! Que du bonheur ....    Voici un exemple de dessin réalisé en 3 minutes ...&lt;br /&gt;
&lt;img src=&quot;http://www.lelibre.net/public/.mockup_m.jpg&quot; alt=&quot;Balsamiq mockups&quot; style=&quot;margin: 0 auto; display: block;&quot; title=&quot;Balsamiq mockups, août 2009&quot; /&gt;
Comme vous pouvez le voir .... cet outil est simple d'utilisation ! Je vous invite à le tester et cette petite vidéo ci dessous vous convaincra !
&lt;center&gt;
&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/aJTuFRaIi_g&amp;hl=fr&amp;fs=1&amp;&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/aJTuFRaIi_g&amp;hl=fr&amp;fs=1&amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.balsamiq.com/products/mockups/desktop#download&quot; hreflang=&quot;en&quot;&gt;&lt;img src=&quot;http://www.balsamiq.com/images/balsamiq_logo.png&quot; alt=&quot;&quot; height=&quot;30&quot; /&gt;&lt;/a&gt;
&lt;/object&gt;&lt;/center&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/08/02/Balsamiq-mockup-%21-...-le-meilleur-des-wireframes-%21#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/08/02/Balsamiq-mockup-%21-...-le-meilleur-des-wireframes-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/139</wfw:commentRss>
      </item>
    
  <item>
    <title>Silverlight 3 released !</title>
    <link>http://www.lelibre.net/index.php?post/2009/07/09/Silverlight-3-released-%21</link>
    <guid isPermaLink="false">urn:md5:716abce04eafaca63dd15de6b4a7bb2e</guid>
    <pubDate>Thu, 09 Jul 2009 21:59:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Silverlight</category>
            
    <description>    &lt;p&gt;Tout est dans le titre ... A vos &lt;a href=&quot;http://www.microsoft.com/silverlight/resources/install.aspx&quot;&gt;download&lt;/a&gt;&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Les tools pour visual studio 2008 ... C'est par &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&amp;amp;displaylang=en&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/07/09/Silverlight-3-released-%21#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/07/09/Silverlight-3-released-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/138</wfw:commentRss>
      </item>
    
  <item>
    <title>IsolatedStorageFile !</title>
    <link>http://www.lelibre.net/index.php?post/2009/04/05/IsolatedStorageFile-%21</link>
    <guid isPermaLink="false">urn:md5:efb4207104d1c92c447469be6ca1b09b</guid>
    <pubDate>Tue, 07 Jul 2009 23:00:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Silverlight</category>
            
    <description>&lt;p&gt;Vous développez en Silverlight&amp;nbsp;? Vous avez envie de développer mais vous vous demandez comment enregistrer des données pour un utilisateur sur un ordinateur a la &quot;cookie&quot; mode en ASP.NET&amp;nbsp;? L'IsolatedStorageFile est la pour vous&amp;nbsp;! Il vous permet par exemple d'enregistrer des valeurs d'une textbox dans un fichier et de le récupérer après avoir fermé l'application en retournant dessus 10 jours après !.&lt;/p&gt;    &lt;p&gt;La démonstration ici est simple. On enregistre le texte contenu dans une TextBox. A chaque fois que l'on clique sur le bouton &quot;Enregistrer les données&quot;, on efface tout le texte. On vérifie en fermant l'application et en la relancant puis en appuyant sur &quot;Charger les données&quot; que le texte revient&amp;nbsp;! Mais comment cela fonctione-t-il&amp;nbsp;? Chaque application a son &quot;espace&quot; stocké quelques part sur le disque. Il est possible d'y enregistrer plusieurs fichiers... Il est également possble d'augmenter la taille 'Quota' alloué, ...&lt;/p&gt;


&lt;p&gt;Voici le code XAML de la page Silverlight&amp;nbsp;!&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;UserControl x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;Class&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;IsoStorageSilverlight.MainPage&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;x&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; 
    Width&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;400&amp;quot;&lt;/span&gt; Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; Background&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;5*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBox Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;grille&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Button Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;charger&amp;quot;&lt;/span&gt; Click&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Charger_Click&amp;quot;&lt;/span&gt;  Content&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Charger les données&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Button Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt; Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;enregistrer&amp;quot;&lt;/span&gt; Click&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Enregistrer_Click&amp;quot;&lt;/span&gt; Content&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Enregistrer les données&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;UserControl&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Voici le code C# de cette même page&amp;nbsp;!&lt;/p&gt;


&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; partial &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; MainPage &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; UserControl
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;const&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; FILENAME &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;fichier.txt&amp;quot;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; MainPage&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        InitializeComponent&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; Enregistrer_Click&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; sender, RoutedEventArgs e&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On récupère le &amp;quot;store&amp;quot; pour cette application&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;IsolatedStorageFile store &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; IsolatedStorageFile.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetUserStoreForApplication&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On vérifie si le fichier existe&lt;/span&gt;
            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Si oui on l'efface&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;store.&lt;span style=&quot;color: #0000FF;&quot;&gt;FileExists&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;FILENAME&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
                store.&lt;span style=&quot;color: #0000FF;&quot;&gt;DeleteFile&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;FILENAME&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On crée un nouveau fichier et on copie le contenu de la textbox&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;FileStream stream &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; store.&lt;span style=&quot;color: #0000FF;&quot;&gt;CreateFile&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;FILENAME&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
                StreamWriter writer &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; StreamWriter&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;stream&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
                writer.&lt;span style=&quot;color: #0000FF;&quot;&gt;Write&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;grille.&lt;span style=&quot;color: #0000FF;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
                writer.&lt;span style=&quot;color: #0000FF;&quot;&gt;Flush&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On reset la textbox !&lt;/span&gt;
            grille.&lt;span style=&quot;color: #0000FF;&quot;&gt;Text&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Empty&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; Charger_Click&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; sender, RoutedEventArgs e&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On récupère le &amp;quot;store&amp;quot; pour cette application&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;IsolatedStorageFile store &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; IsolatedStorageFile.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetUserStoreForApplication&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Si le fichier existe, on le récupère&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;store.&lt;span style=&quot;color: #0000FF;&quot;&gt;FileExists&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;FILENAME&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;using&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;FileStream stream &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; store.&lt;span style=&quot;color: #0000FF;&quot;&gt;OpenFile&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;FILENAME, FileMode.&lt;span style=&quot;color: #0000FF;&quot;&gt;Open&lt;/span&gt;, FileAccess.&lt;span style=&quot;color: #0000FF;&quot;&gt;Read&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
                    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On va le lire et positionner la propriété Text de la textbox&lt;/span&gt;
                    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// avec le contenu de la grille !&lt;/span&gt;
                    StreamReader reader &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; StreamReader&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;stream&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
                    grille.&lt;span style=&quot;color: #0000FF;&quot;&gt;Text&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; reader.&lt;span style=&quot;color: #0000FF;&quot;&gt;ReadToEnd&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;



&lt;p&gt;Pour plus d'informations, je vous conseille la MSDN en cliquant &lt;a href=&quot;http://msdn.microsoft.com/fr-fr/library/system.io.isolatedstorage.isolatedstoragefile(VS.95).aspx&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;</description>
    
          <enclosure url="http://www.lelibre.net/public/IsoStorageSilverlight.rar"
      length="23658" type="application/rar" />
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/04/05/IsolatedStorageFile-%21#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/04/05/IsolatedStorageFile-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/133</wfw:commentRss>
      </item>
    
  <item>
    <title>Custom engine en ASP.NET MVC 1.0</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/28/Custom-view-engine-en-ASP.NET-MVC-1.0</link>
    <guid isPermaLink="false">urn:md5:d469912cc315071f29fc691a8b520237</guid>
    <pubDate>Mon, 06 Jul 2009 22:00:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>ASP.NET</category>
            
    <description>&lt;p&gt;La force d'asp.net MVC est sa modularité. Il est possible en quelques minutes de modifier les &quot;briques&quot; de base du projet. Je vais expliquer comment le réaliser. Le but de ce post n'est pas de faire un cas &quot;concret&quot; mais d'expliquer comment le faire. Je vais donc montrer comment modifier le module &quot;Controller&quot; et &quot;Vue&quot; du projet.&lt;/p&gt;    &lt;h3&gt;1) Controller&lt;/h3&gt;


&lt;p&gt;Le controlleur est une des brique super importante. Parfois, il faut ajouter des comportements ou des données sous forme de propriétés comme par exemple des collections de &quot;droits&quot;,.... En effet, il faut parfois instancier un autre controller en fonction d'un contexte Y. Ceci se fait très rapidement en ASP.NET MVC. Il suffit d'implémenter une classe héritant par exemple de la classe &quot;standard&quot; utilisée dans le framework. On Ajoutera le comportement dans cette classe. La génération des classes &quot;Controller&quot; passera toujours par cette classe&amp;nbsp;!&lt;/p&gt;
&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; CustomControllerFactory &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; DefaultControllerFactory
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Création d'une classe IController&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;override&lt;/span&gt; IController CreateController&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;RequestContext requestContext, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; controllerName&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;base&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;CreateController&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;requestContext, controllerName&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Fin des traitements&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;override&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; ReleaseController&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;IController controller&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;base&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ReleaseController&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;controller&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Cependant, tout ne fonctionne pas directement. En effet, il faut enregistrer la factory de controller comme étant celle à utiliser dans l'applicatif.&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;ControllerBuilder.&lt;span style=&quot;color: #0000FF;&quot;&gt;Current&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;SetControllerFactory&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;typeof&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;CustomControllerFactory&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;h3&gt;2) View Engine&lt;/h3&gt;


&lt;p&gt;Il est également possible de &quot;modifier&quot; la factory gérant le rendu dans l'application. Cela offre de nouvelles perspectives comme le support de plusieurs vues différentes en fonction du &quot;browser&quot;. Il est donc possible en quelques lignes d'avoir une vue pour IPhone et une autre vue pour IE tout en gardant le même controller etc etc. Pour se faire il faut surcharger la méthode recherchant les bonnes vues&amp;nbsp;!&lt;/p&gt;
&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; CustomViewEngine &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; WebFormViewEngine
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;protected&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;override&lt;/span&gt; IView CreatePartialView&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;ControllerContext controllerContext, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; partialPath&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;base&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;CreatePartialView&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;controllerContext, partialPath&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;protected&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;override&lt;/span&gt; IView CreateView&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;ControllerContext controllerContext, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; viewPath, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; masterPath&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Méthode appelée en second&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;base&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;CreateView&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;controllerContext, viewPath, masterPath&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;override&lt;/span&gt; ViewEngineResult FindView&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;ControllerContext controllerContext, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; viewName, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; masterName, &lt;span style=&quot;color: #FF0000;&quot;&gt;bool&lt;/span&gt; useCache&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Méthode appelée en premier&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;base&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;FindView&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;controllerContext, viewName, masterName, useCache&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;override&lt;/span&gt; ViewEngineResult FindPartialView&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;ControllerContext controllerContext, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; partialViewName, &lt;span style=&quot;color: #FF0000;&quot;&gt;bool&lt;/span&gt; useCache&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;base&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;FindPartialView&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;controllerContext, partialViewName, useCache&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Il faut également toujours comme précisé plus haut modifier le moteur de rendu dans le fichier global.asax pour prendre en compte le nouveau moteur.&lt;/p&gt;

&lt;pre class=&quot;csharp&quot;&gt;ViewEngines.&lt;span style=&quot;color: #0000FF;&quot;&gt;Engines&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Clear&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
ViewEngines.&lt;span style=&quot;color: #0000FF;&quot;&gt;Engines&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; CustomViewEngine&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;h3&gt;3) Conclusion&lt;/h3&gt;


&lt;p&gt;Après lecture de ce post, il vous sera très facile d'ajouter de nouvelles opportunités à votre application ASP.NET MVC&amp;nbsp;! Si vous voulez par exemple ajouter le support des &quot;mobiles&quot;, je vous conseille également le fichier &quot;browser&quot; des mobiles disponible ici.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/28/Custom-view-engine-en-ASP.NET-MVC-1.0#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/28/Custom-view-engine-en-ASP.NET-MVC-1.0#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/130</wfw:commentRss>
      </item>
    
  <item>
    <title>Manipulation du dom de la page Html via Silverlight</title>
    <link>http://www.lelibre.net/index.php?post/2009/04/11/Manipulation-du-dom-de-la-page-Html-via-Silverlight</link>
    <guid isPermaLink="false">urn:md5:cc8870da553fe3c8979c8abac31fe32b</guid>
    <pubDate>Sat, 11 Apr 2009 04:05:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Silverlight</category>
            
    <description>&lt;p&gt;Les RIA c'est top&amp;nbsp;! Mais parfois il faut interagir avec une page HTML qui héberge l'application RIA. Silverlight nous offre tout ce qu'on a besoin pour permettre ce genre d'opération. Ce post est donc la pour expliquer comment ajouter un evenement javascript sur un controle HTML qui sera intercepté dans le silverlight et qui lancera du code C#. Mais ce post est également la pour modifier le DOM de la page HTML depuis l'application silverlight&amp;nbsp;!&lt;/p&gt;    &lt;h3&gt;1°) Modification du DOM de la page HTML depuis une application Silverlight&lt;/h3&gt;


&lt;p&gt;La petite démo que je présente ici montre comment intégrer du contenu HTML dans un div depuis l'application Silverlight. Pour se faire j'ai créé une petite application silverlight dans une page HTML.&lt;/p&gt;


&lt;h4&gt;- Application Silverlight&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;UserControl x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;Class&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;SilverlightApplication3.MainPage&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;x&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; 
    Width&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;400&amp;quot;&lt;/span&gt; Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; Background&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;3*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBox Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Contenu&amp;quot;&lt;/span&gt; AcceptsReturn&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Button x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ClikClak&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; Content&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Insère dans la page&amp;quot;&lt;/span&gt; Click&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ClikClak_Click&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;UserControl&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;- Page HTML&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;div id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;silverlightControlHost&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; data&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;data:application/x-silverlight-2,&amp;quot;&lt;/span&gt; type&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;application/x-silverlight-2&amp;quot;&lt;/span&gt;
       style&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;height: 500px; width: 500px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;source&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ClientBin/SilverlightApplication3.xap&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;onerror&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;onSilverlightError&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;background&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;white&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;minRuntimeVersion&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;3.0.40307.0&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;autoUpgrade&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;iframe style&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;'visibility: hidden; height: 0; width: 0; border: 0px'&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;iframe&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;div id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;contenuExemple&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;Du contenu &lt;span style=&quot;color: #0600FF;&quot;&gt;!&amp;lt;/&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;- Code modifiant le DOM&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; partial &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; MainPage &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; UserControl
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; MainPage&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        InitializeComponent&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; ClikClak_Click&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; sender, RoutedEventArgs e&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        HtmlElement contenu &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; HtmlPage.&lt;span style=&quot;color: #0000FF;&quot;&gt;Document&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetElementById&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;contenuExemple&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        contenu.&lt;span style=&quot;color: #0000FF;&quot;&gt;SetProperty&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;innerHTML&amp;quot;&lt;/span&gt;, Contenu.&lt;span style=&quot;color: #0000FF;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;- Résultat&lt;/h4&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight/Dom_manipulation/.manipule_dom_1_m.jpg&quot; alt=&quot;manipule_dom_1.png&quot; title=&quot;manipule_dom_1.png, avr. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight/Dom_manipulation/manipule_dom_2.png&quot; alt=&quot;manipule_dom_2.png&quot; title=&quot;manipule_dom_2.png, avr. 2009&quot; /&gt;&lt;/p&gt;


&lt;h3&gt;2°) Lancement d'évenement sur un contrôle HTML standard et traitement de l'évènement dans l'application Silverlight 2.&lt;/h3&gt;


&lt;p&gt;La seconde petite démo réalise le chemin inverse de la première. On a un bouton HTML et on souhaite envoyer l'évènement &quot;click&quot; à l'application Silverlight&lt;/p&gt;



&lt;h4&gt;- Application Silverlight&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;UserControl x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;Class&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;SilverlightApplication3.MainPage&amp;quot;&lt;/span&gt;
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; 
    xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;x&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; 
    Width&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;400&amp;quot;&lt;/span&gt; Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;300&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt; Background&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;White&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;3*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;RowDefinition  Height&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0.5*&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBox Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Contenu&amp;quot;&lt;/span&gt; AcceptsReturn&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;TextBlock x&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;Name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;textDepuisHtml&amp;quot;&lt;/span&gt; Grid.&lt;span style=&quot;color: #0000FF;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Grid&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;UserControl&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;- Page HTML&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;div id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;silverlightControlHost&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; data&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;data:application/x-silverlight-2,&amp;quot;&lt;/span&gt; type&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;application/x-silverlight-2&amp;quot;&lt;/span&gt;
       style&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;height: 500px; width: 500px&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;source&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ClientBin/SilverlightApplication3.xap&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;onerror&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;onSilverlightError&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;background&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;white&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;minRuntimeVersion&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;3.0.40307.0&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
         &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;param name&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;autoUpgrade&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;iframe style&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;'visibility: hidden; height: 0; width: 0; border: 0px'&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;iframe&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;input type&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;button&amp;quot;&lt;/span&gt; id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;boutonHtml&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Vers silverlight&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;- Code gérant l'évenement JS&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; partial &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; MainPage &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; UserControl
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; MainPage&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        InitializeComponent&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        HtmlElement button1 &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; HtmlPage.&lt;span style=&quot;color: #0000FF;&quot;&gt;Document&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetElementById&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;boutonHtml&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        button1.&lt;span style=&quot;color: #0000FF;&quot;&gt;AttachEvent&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;onclick&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; EventHandler&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;BoutonHtml_Click&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; BoutonHtml_Click&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; sender, EventArgs e&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        textDepuisHtml.&lt;span style=&quot;color: #0000FF;&quot;&gt;Text&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Paf le chat !&amp;quot;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;- Résultat&lt;/h4&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight/Dom_manipulation/.manipule_dom_3_m.jpg&quot; alt=&quot;manipule_dom_3.png&quot; title=&quot;manipule_dom_3.png, avr. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Silverlight/Dom_manipulation/manipule_dom_4.png&quot; alt=&quot;manipule_dom_4.png&quot; title=&quot;manipule_dom_4.png, avr. 2009&quot; /&gt;&lt;/p&gt;


&lt;h3&gt;3°) Conclusion&lt;/h3&gt;


&lt;p&gt;Il est donc simple de manipuler le DOM d'une page HTML depuis une application Silverlight. Il est possible de faire beaucoup d'autres choses&amp;nbsp;! Comme par exemple la navigation dans les contrôles silverlight depuis le JS client ou appeler du code dans Silverlight depuis du code JS... Mais ce sera pour un prochain article&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Bonne soirée&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/04/11/Manipulation-du-dom-de-la-page-Html-via-Silverlight#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/04/11/Manipulation-du-dom-de-la-page-Html-via-Silverlight#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/135</wfw:commentRss>
      </item>
    
  <item>
    <title>Client Ajax pour ADO.Net data Services (opération SELECT)</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/27/Client-Ajax-pour-ADO.Net-data-Services-%28op%C3%A9ration-SELECT%29</link>
    <guid isPermaLink="false">urn:md5:f56d06445b68a40814c07d230b4c06e8</guid>
    <pubDate>Tue, 07 Apr 2009 23:08:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>ASP.NET</category>
            
    <description>&lt;p&gt;Le but de ce mini post est de montrer qu'il est possible de faire rapidement une page Ajax contenant une dropdown qui se remplit lorsqu'on le souhaite via une requête sur le &quot;service&quot; ADO.Net que l'on a créé dans les précédents posts !. Ce type de développement offre de belles perspectives et va réduire la taille du viewstate &amp;amp; le nombre de ko transféré en POST au serveur ... Que du positif pour l'optimisation du site web&amp;nbsp;!&lt;/p&gt;    &lt;h3&gt;1°) La première étape est de créer une simple page asp.Net avec la dropdown et le code javascript vide d'appel lors du click sur le bouton. C'est lors de ce clic que l'on chargera la dropdown&amp;nbsp;!&lt;/h3&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;%&lt;/span&gt;@ Page Language&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;C#&amp;quot;&lt;/span&gt; AutoEventWireup&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; CodeFile&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Default.aspx.cs&amp;quot;&lt;/span&gt; Inherits&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;_Default&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;%&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;!&lt;/span&gt;DOCTYPE html &lt;span style=&quot;color: #0600FF;&quot;&gt;PUBLIC&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;html xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;head runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;title&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;Page de démo&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;title&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; language&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;javascript&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        function ChargePays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;form id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;form1&amp;quot;&lt;/span&gt; runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;select id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;cbPays&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;select&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;br &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;input id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;fillPays&amp;quot;&lt;/span&gt; type&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;button&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Charge les pays&amp;quot;&lt;/span&gt; onclick&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ChargePays();&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;2°) La seconde étape consiste à remplir le code HTML du body en y ajoutant les références aux fichiers JS&amp;nbsp;!&lt;/h3&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;form id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;form1&amp;quot;&lt;/span&gt; runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptManager ID&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ScriptManager1&amp;quot;&lt;/span&gt; runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Scripts&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptReference Path&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;MicrosoftAjax.js&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptReference Path&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;MicrosoftAjaxTemplates.js&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptReference Path&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;MicrosoftAjaxAdoNet.js&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Scripts&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptManager&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;select id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;cbPays&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;select&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;br &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;input id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;fillPays&amp;quot;&lt;/span&gt; type&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;button&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Charge les pays&amp;quot;&lt;/span&gt; onclick&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ChargePays();&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;3°) La troisième étape consiste à implémenter la logique de réquêtage du service ADO.NET (astoria).&lt;/h3&gt;

&lt;pre class=&quot;javascript&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;script type=&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; language=&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;javascript&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; ChargePays&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; dataService = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Sys.&lt;span style=&quot;color: #006600;&quot;&gt;Data&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;AdoNetServiceProxy&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;WebDataServiceAstoria.svc&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
      dataService.&lt;span style=&quot;color: #006600;&quot;&gt;query&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;Pays&amp;quot;&lt;/span&gt;, ExecutionReussite, ExcutionEchec&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; ExecutionReussite&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;result, context, operation&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; ExcutionEchec&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;error, context, operation&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;4°) La quatrième étape consiste à remplir la dropdown avec les valeurs récupérées via le service&lt;/h3&gt;

&lt;pre class=&quot;javascript&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt;script type=&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; language=&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;javascript&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; ExecutionReussite&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;result, context, operation&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;result &lt;span style=&quot;color: #66cc66;&quot;&gt;!&lt;/span&gt;= &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; select = $get&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;cbPays&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        select.&lt;span style=&quot;color: #006600;&quot;&gt;length&lt;/span&gt; = &lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;;
        &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;i = &lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;; i &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;&lt;/span&gt; result.&lt;span style=&quot;color: #006600;&quot;&gt;length&lt;/span&gt;; i++&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
          select.&lt;span style=&quot;color: #006600;&quot;&gt;options&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Option&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;Nom&lt;/span&gt;, result&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
      &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;h3&gt;5°) Voici le résultat final du code implémenté&amp;nbsp;!&lt;/h3&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;%&lt;/span&gt;@ Page Language&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;C#&amp;quot;&lt;/span&gt; AutoEventWireup&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; CodeFile&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Default.aspx.cs&amp;quot;&lt;/span&gt; Inherits&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;_Default&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;%&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;!&lt;/span&gt;DOCTYPE html &lt;span style=&quot;color: #0600FF;&quot;&gt;PUBLIC&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;html xmlns&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;head runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;title&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;Page de démo&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;title&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; language&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;javascript&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        function ChargePays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            var dataService &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Sys.&lt;span style=&quot;color: #0000FF;&quot;&gt;Data&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;AdoNetServiceProxy&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;WebDataServiceAstoria.svc&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
            dataService.&lt;span style=&quot;color: #0000FF;&quot;&gt;query&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Pays&amp;quot;&lt;/span&gt;, ExecutionReussite, ExcutionEchec&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        function ExecutionReussite&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;result, context, operation&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;result &lt;span style=&quot;color: #0600FF;&quot;&gt;!=&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
                var select &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; $get&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;cbPays&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
                select.&lt;span style=&quot;color: #0000FF;&quot;&gt;length&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;i &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;; i &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt; result.&lt;span style=&quot;color: #0000FF;&quot;&gt;length&lt;/span&gt;; i&lt;span style=&quot;color: #0600FF;&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
                    select.&lt;span style=&quot;color: #0000FF;&quot;&gt;options&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Option&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;Nom&lt;/span&gt;, result&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        function ExcutionEchec&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;error, context, operation&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            alert&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;error&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;form id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;form1&amp;quot;&lt;/span&gt; runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptManager ID&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ScriptManager1&amp;quot;&lt;/span&gt; runat&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Scripts&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptReference Path&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;MicrosoftAjax.js&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptReference Path&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;MicrosoftAjaxTemplates.js&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptReference Path&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;MicrosoftAjaxAdoNet.js&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;Scripts&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;asp&lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt;ScriptManager&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;select id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;cbPays&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;select&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;br &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;input id&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;fillPays&amp;quot;&lt;/span&gt; type&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;button&amp;quot;&lt;/span&gt; value&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Charge les pays&amp;quot;&lt;/span&gt; onclick&lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ChargePays();&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Et en images&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Avant la requête:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/ASP.NET/AJax_Preview_4_-_Astoria/.ajax_avant_m.jpg&quot; alt=&quot;ajax_avant.png&quot; title=&quot;ajax_avant.png, avr. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Après la requête:
&lt;img src=&quot;http://www.lelibre.net/public/ASP.NET/AJax_Preview_4_-_Astoria/.ajax_apres_m.jpg&quot; alt=&quot;ajax_apres.png&quot; title=&quot;ajax_apres.png, avr. 2009&quot; /&gt;&lt;/p&gt;


&lt;h3&gt;6°) Conclusion&lt;/h3&gt;

&lt;p&gt;Ce petit post montre combien il est simple d'implémenter ce type de récupération en quelques minutes. Cette démonstration a été réalisée sous &lt;a href=&quot;http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24645&quot;&gt;ASP.NET Ajax Preview 4&lt;/a&gt;. Elle ne fonctionnera pas avec les preview précédentes. En effet, les noms des classes JS pour requêter Astoria ont un peu changé.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/27/Client-Ajax-pour-ADO.Net-data-Services-%28op%C3%A9ration-SELECT%29#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/27/Client-Ajax-pour-ADO.Net-data-Services-%28op%C3%A9ration-SELECT%29#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/127</wfw:commentRss>
      </item>
    
  <item>
    <title>Custom datacontext sous ADO.Net DataServices (partie 2)</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/27/Custom-datacontext-sous-ADO.Net-DataServices-%28partie-2%29</link>
    <guid isPermaLink="false">urn:md5:438c69377db493f86d33f32d758afe5a</guid>
    <pubDate>Mon, 06 Apr 2009 20:12:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Astoria</category>
            
    <description>&lt;p&gt;Ce post est la pour présenter l'interface permettant de réaliser une &quot;custom&quot; persistence sous ADO.Net Data Services. La classe &quot;contexte&quot; doit hériter de &lt;a href=&quot;http://msdn.microsoft.com/fr-fr/library/system.data.services.iupdatable.aspx&quot;&gt;IUpdatable&lt;/a&gt;.&lt;/p&gt;    &lt;h4&gt;1°) La première étape est de reprendre la classe &quot;contexte&quot; que l'on a utilisé dans le précédent post&amp;nbsp;!&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; CustomDataContext &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; IUpdatable
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; pays &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; CreePays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; IQueryable&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; Pays
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;AsQueryable&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; CreePays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; pays &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Belgique&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;30528&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;France&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;670922&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;3&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Luxembourg&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2586&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;4&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Suisse&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;41290&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; pays;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;2°) La seconde étape est donc d'implémenter chaque méthode. Comme vous pouvez le voir ci-dessous, certaines sont restées vide parce que l'exemple ne gère pas les collections enfants etc etc. Nous restons sur un modèle &quot;simple&quot;.&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; CustomDataContext &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; IUpdatable
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; pays &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; CreePays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; IQueryable&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; Pays
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;AsQueryable&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; CreePays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; pays &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Belgique&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;30528&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;France&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;670922&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;3&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Luxembourg&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2586&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;4&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Suisse&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;41290&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; pays;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #008080;&quot;&gt;#region Implémentation de IUpdatable&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// ContainerName = Pays&lt;/span&gt;
    &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// fullType = fullType de pays&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; CreateResource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; containerName, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; fullTypeName&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        var nouvelleResource &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; Activator.&lt;span style=&quot;color: #0000FF;&quot;&gt;CreateInstance&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;Type.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetType&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;fullTypeName&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;nouvelleResource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; nouvelleResource;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; SetValue&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; targetResource, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; propertyName, &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; propertyValue&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        PropertyInfo property &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; targetResource.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetType&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetProperty&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;propertyName&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        property.&lt;span style=&quot;color: #0000FF;&quot;&gt;SetValue&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;targetResource, propertyValue, &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; ResolveResource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; resource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; resource;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; SaveChanges&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Persiste les modifications&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; DeleteResource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; targetResource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Remove&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;targetResource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; GetValue&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; targetResource, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; propertyName&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        var targetProperty &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; targetResource.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetType&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetProperty&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;propertyName&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; targetProperty.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetValue&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;targetResource, &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; GetResource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;IQueryable query, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; fullTypeName&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        var enumerator &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; query.&lt;span style=&quot;color: #0000FF;&quot;&gt;GetEnumerator&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;while&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;enumerator.&lt;span style=&quot;color: #0000FF;&quot;&gt;MoveNext&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #0600FF;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;enumerator.&lt;span style=&quot;color: #0000FF;&quot;&gt;Current&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;!=&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; enumerator.&lt;span style=&quot;color: #0000FF;&quot;&gt;Current&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;throw&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; DataServiceException&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; ClearChanges&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// Annule les modifications&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; ResetResource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; resource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        Pays pays &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;ID&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;resource&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #0000FF;&quot;&gt;ID&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Superficie&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;0&lt;/span&gt;;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Nom&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;null&lt;/span&gt;;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; pays;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; AddReferenceToCollection&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; targetResource, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; propertyName, &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; resourceToBeAdded&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;throw&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; NotImplementedException&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; RemoveReferenceFromCollection&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; targetResource, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; propertyName, &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; resourceToBeRemoved&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;throw&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; NotImplementedException&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; SetReference&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; targetResource, &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; propertyName, &lt;span style=&quot;color: #FF0000;&quot;&gt;object&lt;/span&gt; propertyValue&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0600FF;&quot;&gt;throw&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; NotImplementedException&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #008080;&quot;&gt;#endregion&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;3°) La troisième étape est de modifier le service ADO.Net data service pour accepter les modifications. On change donc l'enum EntitySetRights de AllRead en All.&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; WebDataServiceAstoria &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; DataService&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;CustomDataContext&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; InitializeService&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;IDataServiceConfiguration config&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        config.&lt;span style=&quot;color: #0000FF;&quot;&gt;SetEntitySetAccessRule&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;, EntitySetRights.&lt;span style=&quot;color: #0000FF;&quot;&gt;All&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;//config.UseVerboseErrors = true;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;4°) Passons au test&amp;nbsp;! Nous allons tester le cas de l'insert / update / delete via une petite application console&amp;nbsp;!&lt;/h4&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; Program
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; Main&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#93;&lt;/span&gt; args&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
        CustomDataContext dataContext &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; CustomDataContext&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Uri&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On ajoute un nouveau pays !&lt;/span&gt;
        Pays pays &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;10&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Canada&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;10&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;;
        dataContext.&lt;span style=&quot;color: #0000FF;&quot;&gt;AddToPays&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        dataContext.&lt;span style=&quot;color: #0000FF;&quot;&gt;SaveChanges&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On modifie son ID et on persiste les modifications&lt;/span&gt;
        pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;ID&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;9&lt;/span&gt;;
        dataContext.&lt;span style=&quot;color: #0000FF;&quot;&gt;UpdateObject&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        dataContext.&lt;span style=&quot;color: #0000FF;&quot;&gt;SaveChanges&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #008080; font-style: italic;&quot;&gt;// On efface le nouvel objet créé&lt;/span&gt;
        dataContext.&lt;span style=&quot;color: #0000FF;&quot;&gt;DeleteObject&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
        dataContext.&lt;span style=&quot;color: #0000FF;&quot;&gt;SaveChanges&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
    &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h4&gt;5°) Et voici comment on fait en quelques minutes la &quot;persistence&quot; des modifications sous ADO.Net Data Services&amp;nbsp;! Rien de plus simple non&amp;nbsp;?&lt;/h4&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/27/Custom-datacontext-sous-ADO.Net-DataServices-%28partie-2%29#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/27/Custom-datacontext-sous-ADO.Net-DataServices-%28partie-2%29#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/126</wfw:commentRss>
      </item>
    
  <item>
    <title>Custom datacontext sous ADO.Net DataServices (partie 1)</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/27/Custom-datacontext-sous-ADO.Net-DataServices-%28partie-1%29</link>
    <guid isPermaLink="false">urn:md5:5f164d319c5ce21bc05929147347f2a4</guid>
    <pubDate>Sat, 04 Apr 2009 23:45:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Astoria</category>
            
    <description>&lt;p&gt;Le but de ce post est de montrer comment il est possible en quelques minutes d'avoir un service ADO.Net qui pourra être interrogé via requête URL (en REST).&lt;/p&gt;    &lt;h2&gt;1°) Commençons par créer une classe décrivant les pays!&lt;/h2&gt;

&lt;pre&gt;&lt;/pre&gt;
&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#91;&lt;/span&gt;DataServiceKey&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;ID&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; Pays
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;int&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;string&lt;/span&gt; Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;double&lt;/span&gt; Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; get; set; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h2&gt;2°) La seconde étape est de créer une classe de &quot;DataContext&quot; permettant le requêtage. Pour ce faire, il faut avoir une (ou des) propriétés renvoyant un IQueryable&amp;lt;T&amp;gt;.&lt;/h2&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; CustomDataContext
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; pays &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; CreePays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; IQueryable&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; Pays 
   &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; 
      get &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;AsQueryable&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;; 
   &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; CreePays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
     List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt; pays &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; List&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
     pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;1&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Belgique&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;30528&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
     pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;France&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;670922&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
     pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;3&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Luxembourg&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;2586&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
     pays.&lt;span style=&quot;color: #0000FF;&quot;&gt;Add&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;new&lt;/span&gt; Pays&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt; ID &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;4&lt;/span&gt;, Nom &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;Suisse&amp;quot;&lt;/span&gt;, Superficie &lt;span style=&quot;color: #0600FF;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;41290&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
     &lt;span style=&quot;color: #0600FF;&quot;&gt;return&lt;/span&gt; pays;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h2&gt;3°) La troisième étape est la mise &quot;en ligne&quot; de notre classe de contexte. Cette mise en ligne permettra le requêtage.&lt;/h2&gt;

&lt;pre class=&quot;csharp&quot;&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;class&lt;/span&gt; WebDataServiceAstoria &lt;span style=&quot;color: #0600FF;&quot;&gt;:&lt;/span&gt; DataService&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;lt;&lt;/span&gt;CustomDataContext&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0600FF;&quot;&gt;void&lt;/span&gt; InitializeService&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;IDataServiceConfiguration config&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#123;&lt;/span&gt;
      config.&lt;span style=&quot;color: #0000FF;&quot;&gt;SetEntitySetAccessRule&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;, EntitySetRights.&lt;span style=&quot;color: #0000FF;&quot;&gt;AllRead&lt;/span&gt;&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#41;&lt;/span&gt;;
   &lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #0600FF;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;


&lt;h2&gt;4°) Après cette étape, nous avons un service ADO.NET Data Services qui fonctionne&amp;nbsp;! Voici quelques exemples de requêtes&amp;nbsp;!&lt;/h2&gt;


&lt;h4&gt;- Liste des entités disponibles&amp;nbsp;!&lt;/h4&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Custom_datacontext_sous_ADO.Net_DataServices/.liste_entites_m.jpg&quot; alt=&quot;liste_entites.png&quot; title=&quot;liste_entites.png, mar. 2009&quot; /&gt;&lt;/p&gt;


&lt;h4&gt;- Get des pays&amp;nbsp;!&lt;/h4&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Custom_datacontext_sous_ADO.Net_DataServices/.liste_pays_m.jpg&quot; alt=&quot;liste_pays.png&quot; title=&quot;liste_pays.png, mar. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;URL&amp;nbsp;: &lt;em&gt;http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays&lt;/em&gt;&lt;/p&gt;


&lt;h4&gt;- Get d'un pays sur base de son ID&amp;nbsp;!&lt;/h4&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Custom_datacontext_sous_ADO.Net_DataServices/.pays_parID_m.jpg&quot; alt=&quot;pays_parID.png&quot; title=&quot;pays_parID.png, mar. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;URL&amp;nbsp;: &lt;em&gt;http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays(1)&lt;/em&gt;&lt;/p&gt;


&lt;h4&gt;- Get des pays avec la gestion de l'order by&amp;nbsp;!&lt;/h4&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Custom_datacontext_sous_ADO.Net_DataServices/.orderby_m.jpg&quot; alt=&quot;orderby.png&quot; title=&quot;orderby.png, mar. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;URL&amp;nbsp;: &lt;em&gt;http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays?$orderby=Superficie%20asc&lt;/em&gt;&lt;/p&gt;


&lt;h4&gt;- Get des pays avec filtre&amp;nbsp;!&lt;/h4&gt;


&lt;p&gt;&lt;img src=&quot;http://www.lelibre.net/public/Custom_datacontext_sous_ADO.Net_DataServices/.filter_m.jpg&quot; alt=&quot;filter.png&quot; title=&quot;filter.png, mar. 2009&quot; /&gt;&lt;/p&gt;


&lt;p&gt;URL&amp;nbsp;: &lt;em&gt;http://localhost:13094/WebSite2/WebDataServiceAstoria.svc/Pays?$filter=Nom%20eq%20'Belgique&lt;/em&gt;'&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/27/Custom-datacontext-sous-ADO.Net-DataServices-%28partie-1%29#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/27/Custom-datacontext-sous-ADO.Net-DataServices-%28partie-1%29#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/125</wfw:commentRss>
      </item>
    
  <item>
    <title>Windows Live Messenger Web Toolkit présenté au Mix 09</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/28/Windows-Live-Messenger-Web-Toolkit-pr%C3%A9sent%C3%A9-au-Mix-09</link>
    <guid isPermaLink="false">urn:md5:18a73bd3736077b95876b1ce14fc7008</guid>
    <pubDate>Sun, 29 Mar 2009 12:00:00 +0200</pubDate>
    <dc:creator>titi</dc:creator>
        <category>.NET</category>
            
    <description>    &lt;p&gt;Microsoft a présenté dernièrement un toolkit permettant d'ajouter a ses sites web le support de MSN ... La démo ressemble à du facebook :-). Le concept est très intéressant ! Les exemples sont disponibles en Ruby, C#, PHP, ...&lt;/p&gt;
&lt;p&gt;Voici une démo &lt;a href=&quot;http://www.lelibre.net/demo/msnLive/&quot;&gt;ici&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/28/Windows-Live-Messenger-Web-Toolkit-pr%C3%A9sent%C3%A9-au-Mix-09#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/28/Windows-Live-Messenger-Web-Toolkit-pr%C3%A9sent%C3%A9-au-Mix-09#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/128</wfw:commentRss>
      </item>
    
  <item>
    <title>I'm on twitter !</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/28/I-m-on-twitter-%21</link>
    <guid isPermaLink="false">urn:md5:11e8f0c3905ba6327f2316d834322d41</guid>
    <pubDate>Sat, 28 Mar 2009 09:48:00 +0100</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Fun</category>
            
    <description>    &lt;p&gt;Yeah !!! I'm on twitter ... Why ? I don't know ! But it's cooooooooooooool. You can find me &lt;a href=&quot;http://twitter.com/tibine&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See you !&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/28/I-m-on-twitter-%21#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/28/I-m-on-twitter-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/129</wfw:commentRss>
      </item>
    
  <item>
    <title>Merge rapide de colonnes d'une GridView en ASP.NET</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/26/Merge-rapide-de-colonnes-en-ASP.NET</link>
    <guid isPermaLink="false">urn:md5:f22aab84f214aa874e73bd0706834743</guid>
    <pubDate>Thu, 26 Mar 2009 22:45:00 +0100</pubDate>
    <dc:creator>titi</dc:creator>
        <category>ASP.NET</category>
            
    <description>&lt;p&gt;Il est si simple d'avoir une petite gridview dans une page ASP.NET pour afficher des résultats... Mais qu'en est il d'un regroupement des mêmes valeurs ... En effet, parfois on ne veut qu'une seule occurence propre dans une colonne ...Par exemple un seul lien externe qui représente le lien qui nous amènera vers l'ensemble des lignes de la grille ayant le &quot;même type&quot;. Il est évidement possible de jouer avec le RowSpan d'une grille en quelques minutes. Bref anyway ! Passons a l'exemple ... Ce sera plus parlant &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;    &lt;h4&gt;Prenons une simple classe &quot;business&quot; que l'on souhaite afficher dans une GridView:&lt;/h4&gt;
&lt;p&gt;public class DocumentAttache&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int TypeDocument { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Nom { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Description { get; set; }&lt;br /&gt;}&lt;/p&gt;
&lt;h4&gt;Créons la grille dans une page ASP.NET&lt;/h4&gt;
&lt;p&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!IsPostBack)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;DocumentAttache&amp;gt; liste = new List&amp;lt;DocumentAttache&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liste.Add(new DocumentAttache() { TypeDocument = 1, Nom = &quot;Doc1&quot;, Description = &quot;Description Doc1&quot; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liste.Add(new DocumentAttache() { TypeDocument = 1, Nom = &quot;Doc2&quot;, Description = &quot;Description Doc2&quot; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liste.Add(new DocumentAttache() { TypeDocument = 1, Nom = &quot;Doc3&quot;, Description = &quot;Description Doc3&quot; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liste.Add(new DocumentAttache() { TypeDocument = 2, Nom = &quot;Doc4&quot;, Description = &quot;Description Doc4&quot; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liste.Add(new DocumentAttache() { TypeDocument = 2, Nom = &quot;Doc5&quot;, Description = &quot;Description Doc5&quot; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liste.Add(new DocumentAttache() { TypeDocument = 3, Nom = &quot;Doc7&quot;, Description = &quot;Description Doc7&quot; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liste.Add(new DocumentAttache() { TypeDocument = 3, Nom = &quot;Doc7&quot;, Description = &quot;Description Doc7&quot; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.GridView1.DataSource = liste;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.GridView1.DataBind();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MergeColumn(this.GridView1, 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;Comme vous avez pu le voir plus haut dans le remplissage de la gridview, il y a la dernière ligne du précédent code qui est &quot;intéressante&quot; pour le &quot;merge des colonnes.&lt;/p&gt;
&lt;p&gt;Mais qu'en est il derrière ?&lt;/p&gt;
&lt;h4&gt;Le merge des colonnes&lt;/h4&gt;
&lt;p&gt;Voici la réponse : &lt;/p&gt;
&lt;p&gt;private static void MergeColumn(GridView gv, int position)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dictionary&amp;lt;string, int&amp;gt; hash = new Dictionary&amp;lt;string, int&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string currentText = string.Empty;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int currentCell = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GridViewRow dataRow = gv.Rows[currentCell++];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dataRow.RowType == DataControlRowType.DataRow)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool sameText = dataRow.Cells[position].Text == currentText;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentCell == gv.Rows.Count)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!sameText)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Fin mais pas meme texte&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (count &amp;gt; 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hash.Add(currentText, count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Fin meme texte&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hash.Add(currentText, count + 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pas meme texte&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!sameText)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (count &amp;gt; 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hash.Add(currentText, count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentText = dataRow.Cells[position].Text;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ++count;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (currentCell &amp;lt; gv.Rows.Count);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentText = string.Empty;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (GridViewRow row in gv.Rows)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (row.RowType == DataControlRowType.DataRow &amp;amp;&amp;amp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hash.ContainsKey(row.Cells[position].Text))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (row.Cells[position].Text == currentText)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.Cells.Remove(row.Cells[position]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentText = row.Cells[position].Text;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.Cells[position].RowSpan = hash[currentText];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.Cells[position].VerticalAlign = VerticalAlign.Middle;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;
&lt;h4&gt;Voici le résultat:&lt;/h4&gt;
&lt;p&gt;&lt;img title=&quot;Merge column GridView ASP.NET, mar. 2009&quot; alt=&quot;&quot; src=&quot;http://www.lelibre.net/index.php?post/2009/03/26/../public/MergeGridView.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Evidement, je suis preneur pour simplifier mon code de merge ;-). Mais ce soir ... la migraine m'empêche d'optimiser =S&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/26/Merge-rapide-de-colonnes-en-ASP.NET#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/26/Merge-rapide-de-colonnes-en-ASP.NET#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/124</wfw:commentRss>
      </item>
    
  <item>
    <title>Premièr point négatif pour Azure !!! ;-)</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/22/Premi%C3%A8r-point-n%C3%A9gatif-pour-Azure-%21%21%21-%3B-%29</link>
    <guid isPermaLink="false">urn:md5:f29f3ac811f8a4d03b197cd4060268a7</guid>
    <pubDate>Mon, 23 Mar 2009 21:01:00 +0100</pubDate>
    <dc:creator>titi</dc:creator>
        <category>.NET</category>
            
    <description>    &lt;p&gt;Je me suis lancé dans Windows Azure ... Première étape ... installation sur mon Vista ... nickel !!! &lt;br /&gt;Deuxième étape ... installation sur mon macbook pour le dev en mode &quot;libre&quot; ... et la c'est la cata ... c'est la catastrophe ... Je n'ai qu'une licence XP sur mon portable ... et pas de licence MSDN &lt;img src=&quot;/themes/default/smilies/sad.png&quot; alt=&quot;:(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Résultat:&lt;/p&gt;
&lt;p&gt;- Windows Azure Tools for Microsoft Visual Studio requires Windows Vista with Service Pack 1 or Windows Server 2008. Previous versions of Microsoft Windows are not supported.&lt;br /&gt;&lt;br /&gt;- The Windows Azure SDK requires Internet Information Services 7.0 with ASP.NET Application Development components installed.&lt;/p&gt;
&lt;p&gt;==&amp;gt; Sans commentaire :(. Je trouve cela dommage d'avoir si vite ce type de limitation avec les produits Microsoft. En effet ... comment mettre en avant cette technologie si ils ferment déjà certaines portes &lt;img src=&quot;/themes/default/smilies/sad.png&quot; alt=&quot;:(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bonne soirée.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/22/Premi%C3%A8r-point-n%C3%A9gatif-pour-Azure-%21%21%21-%3B-%29#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/22/Premi%C3%A8r-point-n%C3%A9gatif-pour-Azure-%21%21%21-%3B-%29#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/123</wfw:commentRss>
      </item>
    
  <item>
    <title>Scott Guthrie avant le keynote MIX 09 ;-)</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/22/Scott-Guthrie-avant-le-keynote-MIX-09-%3B-%29</link>
    <guid isPermaLink="false">urn:md5:f0517208c344bcb5bc57950dd5fdac77</guid>
    <pubDate>Sun, 22 Mar 2009 18:42:00 +0100</pubDate>
    <dc:creator>titi</dc:creator>
        <category>Fun</category>
            
    <description>    &lt;p&gt;Voici ce que Scott fait avant le keynote pour se préparer !!!!&lt;/p&gt;
&lt;p&gt;A voir &lt;a href=&quot;http://channel9.msdn.com/posts/Dan/Behind-the-scenes-How-Scott-Guthrie-prepares-for-his-MIX09-keynote/&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/22/Scott-Guthrie-avant-le-keynote-MIX-09-%3B-%29#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/22/Scott-Guthrie-avant-le-keynote-MIX-09-%3B-%29#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/122</wfw:commentRss>
      </item>
    
  <item>
    <title>Webcasts des TechDays France 2009 dispo</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/22/Webcasts-des-TechDays-France-2009-dispo</link>
    <guid isPermaLink="false">urn:md5:53d63d186301d43a220f77256ea08388</guid>
    <pubDate>Sun, 22 Mar 2009 14:55:00 +0100</pubDate>
    <dc:creator>titi</dc:creator>
        <category>.NET</category>
            
    <description>    &lt;p&gt;Les videos sont disponible depuis quelques jours en mode &quot;en ligne&quot; sous silverlight mais également en mode &quot;hors-ligne&quot;. Je vous invite à les regarder &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;C'est par &lt;a href=&quot;http://www.microsoft.com/france/vision/mstechdays09/&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bonne fin de we !&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/22/Webcasts-des-TechDays-France-2009-dispo#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/22/Webcasts-des-TechDays-France-2009-dispo#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/121</wfw:commentRss>
      </item>
    
  <item>
    <title>Génération du schéma en C# sur base d'un XML</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/22/G%C3%A9n%C3%A9ration-du-sch%C3%A9ma-en-C-sur-base-d-un-XML</link>
    <guid isPermaLink="false">urn:md5:0c808d44863e78c954c0bca0f9cd5744</guid>
    <pubDate>Sun, 22 Mar 2009 12:18:00 +0100</pubDate>
    <dc:creator>titi</dc:creator>
        <category>.NET</category>
            
    <description>&lt;p&gt;J'ai été confronté dernièrement à un petit problème en XML / Schéma !.
Je vous replace le contexte. J'ai un objet que je souhaite sérialiser
... non pas pour le désérialiser ultérieurement mais pour passer la
chaîne XML à un module externe qui effectuera des recherches XPATH pour
récupérer les valeurs et les traiter. Mon module n'a aucune
connaissance des classes de l'application !. La seule connaissance
qu'il doit avoir est le type de chaque champ. La sérialisation de base ne crée pas de schéma et évidement ... chaque champ est considéré comme une chaîne .. Problème ! ... Le module externe doit formatter la valeur &quot;double&quot; ... etc ;-). Dès lors ! Comment faire ??? Voici la solution dans ce post ! Et un grand merci a Martin Honnen (MVP Xml) pour sa réponse. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Première étape !&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;J'ai une classe business :&lt;/p&gt;
&lt;p&gt;public class ClassCoucou&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [XmlElement(ElementName = &quot;Amount&quot;)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public double AA { get; set; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [XmlElement(ElementName = &quot;Name&quot;)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Name { get; set; }&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deuxième étape !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Je veux la séraliser ! Rien de plus simple!&lt;/p&gt;
&lt;p&gt;MemoryStream stream = new MemoryStream();&lt;br /&gt;XmlSerializer serializer = new XmlSerializer(typeof(ClassCoucou));&lt;br /&gt;serializer.Serialize(stream, new ClassCoucou() { AA = 4000.45, Name = &quot;coucou&quot; });&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Troisième étape !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Je veux créer le schéma associé (et c'est la ou c'est moins simple). Je reviens dans mon flux au début!. Je vais créer une classe de Schéma Inference ... Et je vais reprendre le schéma du fichier XML !&lt;/p&gt;
&lt;p&gt;stream.Flush();&lt;br /&gt;stream.Position = 0;&lt;br /&gt;&lt;br /&gt;XmlReader reader = XmlReader.Create(stream);&lt;br /&gt;XmlSchemaInference schema = new XmlSchemaInference();&lt;br /&gt;XmlSchemaSet schemaSet = new XmlSchemaSet();&lt;br /&gt;schemaSet = schema.InferSchema(reader);&lt;br /&gt;foreach (XmlSchema s in schemaSet.Schemas())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; s.Write(Console.Out);&lt;/p&gt;
&lt;p&gt;Et c'est déjà la fin ! J'ai mon schéma ! A noter que par exemple je pourrais avoir ma propriété AA en double. Si je passe en paramètre une valeur 1 ... Il va créer un schéma avec le type en unsignedByte et non pas en double. &lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/22/G%C3%A9n%C3%A9ration-du-sch%C3%A9ma-en-C-sur-base-d-un-XML#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/22/G%C3%A9n%C3%A9ration-du-sch%C3%A9ma-en-C-sur-base-d-un-XML#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/120</wfw:commentRss>
      </item>
    
  <item>
    <title>Sortie d'Internet Explorer 8</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/19/Sortie-d-Internet-Explorer-8</link>
    <guid isPermaLink="false">urn:md5:07191ac8265fef156f89b56f6d5983d0</guid>
    <pubDate>Thu, 19 Mar 2009 23:07:00 +0100</pubDate>
    <dc:creator>titi</dc:creator>
        <category>General</category>
            
    <description>    &lt;p&gt;Tout est dans le titre ... &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;-)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pour le télécharger en français, c'est par &lt;a href=&quot;http://www.microsoft.com/windows/internet-explorer/worldwide-sites.aspx&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/19/Sortie-d-Internet-Explorer-8#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/19/Sortie-d-Internet-Explorer-8#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/119</wfw:commentRss>
      </item>
    
  <item>
    <title>News from the MIX 09 ! day 1 !</title>
    <link>http://www.lelibre.net/index.php?post/2009/03/18/News-from-the-MIX-09-%21-day-1-%21</link>
    <guid isPermaLink="false">urn:md5:c53c8546b45ec37caa6e582a9f83299b</guid>
    <pubDate>Wed, 18 Mar 2009 23:03:00 +0100</pubDate>
    <dc:creator>titi</dc:creator>
        <category>General</category>
            
    <description>    &lt;p&gt;Voici quelques petites news du côté de Las Vegas !!! En effet, aujourd'hui était le premier jour du MIX 09 !&lt;br /&gt;&lt;br /&gt;Que dire ? Déjà quelques annonces !&lt;/p&gt;
&lt;h2 style=&quot;text-decoration: underline;&quot;&gt;&lt;a href=&quot;http://www.asp.net/&quot;&gt;ASP.NET&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;- &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&amp;amp;displaylang=en&quot;&gt;Sortie d'ASP.NET MVC 1.0&lt;/a&gt;.&lt;br /&gt;- JQuery sera livré dans ASP.NET 4 Ajax. Il y aura également un support plus aisé des services basés sur REST.&lt;/p&gt;
&lt;h2 style=&quot;text-decoration: underline;&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=D09B6ECF-9A45-4D99-B752-2A330A937BC4&amp;amp;displaylang=en&quot;&gt;Silverlight 3&lt;/a&gt; (&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=11dc7151-dbd6-4e39-878f-5081863cbb5d&quot;&gt;+ outils pour VS&lt;/a&gt;)&lt;/h2&gt;
&lt;p&gt;- Amélioration du databinding&lt;br /&gt;- Support du XML binaire&lt;br /&gt;- Support du multi touch&lt;br /&gt;- + de 100 contrôles (certains via le Control Toolkit)&lt;br /&gt;- Nouvelle navigation / framework de page&lt;br /&gt;- Accélération graphique hardware sous Mac &amp;amp; Windows&lt;br /&gt;- Support de nouveaux média : véritable HD, H.264, AAC audio, MPEG-4&lt;br /&gt;- Taille du download de Silverlight 40kb inférieur a la taille du délivrable de Silverlight 2&lt;br /&gt;- Support d'Eclipse pour le développement d'application Silverlight sous Mac&lt;/p&gt;
&lt;h2 style=&quot;text-decoration: underline;&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6ac106-525d-45d0-84db-dccff3fae677&amp;amp;displaylang=en&quot;&gt;SuperPreview&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;- Outil permettant de faciliter le passage d'un site de IE6 =&amp;gt; IE7 ou IE8&lt;/p&gt;
&lt;h2 style=&quot;text-decoration: underline;&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/azure/windowsazure.mspx&quot;&gt;Azure&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;- Nouveaux outils de hosting d'application dans le CLOUUUUUD ;-). Il sera possible de hoster des applications FastCGI, .NET ou PHP.&lt;br /&gt;- Les applications full trust pourront être hostées.&lt;/p&gt;
&lt;h2 style=&quot;text-decoration: underline;&quot;&gt;D'autres liens !&lt;/h2&gt;
- &lt;a href=&quot;http://www.microsoft.com/web/&quot;&gt;Web Server Extensions&lt;/a&gt;&lt;br /&gt;- &lt;a href=&quot;http://www.microsoft.com/commerceserver/en/us/default.aspx&quot;&gt;Commerce Server 2009&lt;/a&gt;&lt;br /&gt;</description>
    
    
    
          <comments>http://www.lelibre.net/index.php?post/2009/03/18/News-from-the-MIX-09-%21-day-1-%21#comment-form</comments>
      <wfw:comment>http://www.lelibre.net/index.php?post/2009/03/18/News-from-the-MIX-09-%21-day-1-%21#comment-form</wfw:comment>
      <wfw:commentRss>http://www.lelibre.net/index.php?feed/atom/comments/118</wfw:commentRss>
      </item>
    
</channel>
</rss>