<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Mathieu Szablowski</title><link>http://blogs.labo-dotnet.com/batswirl/</link><description>Blog de Mathieu Szablowski</description><managingEditor>Mathieu Szablowski</managingEditor><dc:language>fr-FR</dc:language><generator>.Text Version 0.95.2004.101</generator><item><dc:creator>Mathieu Szablowski</dc:creator><title>La photo d'Ingo et ma contribution</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/16/8716.aspx</link><pubDate>Sat, 16 Jul 2005 02:38:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/16/8716.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/8716.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/16/8716.aspx#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/8716.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/8716.aspx</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Lors du TechEd, &lt;A href="http://evain.net/blog/"&gt;Jb Evain &lt;/A&gt;et moi m&amp;#234;me sommes rest&amp;#233;s &amp;#233;bahis de la mani&amp;#232;re dont &lt;A href="http://www.thinktecture.com/staff/ingo/default.html"&gt;Ingo Rammer &lt;/A&gt;&amp;nbsp;pose sur la photo de son blog. Ni une ni deux, nous avions d&amp;#233;cid&amp;#233; de l&amp;#8217;imiter d&amp;#232;s notre retour (y&amp;#8217;a pas de mal &amp;#224; imiter ce genre de personnage&amp;nbsp;;) ).&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;IMG height=400 src="/batswirl/images/alaingo.jpg" width=285 border=0&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://evain.net/blog/index.php/2005/07/10/244-my-very-first-tech-ed"&gt;Jb&lt;/A&gt; ayant &amp;#233;t&amp;#233; plus rapide que moi et d&amp;#8217;apr&amp;#232;s les commentaires que son billet a r&amp;#233;colt&amp;#233;s, il semblerait m&amp;#234;me que ce soit devenu une mode, qu'Ingo &lt;A href="http://benjaminm.net/PermaLink.aspx?guid=6bb643c8-2062-42d7-8f83-24bdd2b7e612"&gt;ne semble pas d&amp;#233;cider &amp;#224; couper court&lt;/A&gt;. Allez tous ensemble, faisons preuve de patriotisme esth&amp;#233;tique et d&amp;#233;montrons que les d&amp;#233;veloppeurs fran&amp;#231;ais savent aussi le faire.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;J'en profite &amp;#233;galement pour saluer Jb qui nous quitte pour de nouvelles aventures. Lors de ce m&amp;#234;me TechEd, un &lt;A href="http://blogs.labo-dotnet.com/joel/archive/2005/07/15/8715.aspx"&gt;s&amp;#233;minaire a &amp;#233;t&amp;#233; consacr&amp;#233; aux &amp;#233;tudiants&lt;/A&gt;. A la fin de celui-ci, un tee shirt nous a &amp;#233;t&amp;#233; offert avec un slogan plut&amp;#244;t accrocheur :&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;IMG height=461 src="/batswirl/images/P1070509.JPG" width=615 border=0&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Tout cela pour en arriver &amp;#224; dire que&amp;nbsp;cette ann&amp;#233;e pass&amp;#233;e&amp;nbsp;&amp;#224; travailler avec Jean-Baptiste (qui ne m'en voudra pas d'utiliser son pr&amp;#233;nom ;) )&amp;nbsp;f&amp;#251;t un r&amp;#233;el plaisir et une nouvelle inspiration pour moi. Ses talents et ses grandes connaissances&amp;nbsp;nous ont, &amp;#224; tous, beaucoup apport&amp;#233; et j'aimerais lui souhaiter bonne chance pour la suite d'une mani&amp;#232;re un peu particuli&amp;#232;re.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Allez Jb, juste pour toi ;) :&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt" align=center&gt;&lt;FONT face=Tahoma color=#800080 size=5&gt;&lt;STRONG&gt;if&amp;nbsp;code is poetry then JbEvain is my muse&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/8716.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>WSCF 0.5 : schema-based contract-first modelling</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/10/8611.aspx</link><pubDate>Sun, 10 Jul 2005 00:03:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/10/8611.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/8611.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/10/8611.aspx#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/8611.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/8611.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://www.thinktecture.com/Resources/Software/WSContractFirst/WSCF0.5Walkthrough.html"&gt;WSCF&lt;/A&gt; est un outil de &lt;A href="http://www.thinktecture.com"&gt;&lt;FONT size=4&gt;ThinkTecture&lt;/FONT&gt;&lt;/A&gt; permettant une autre approche de la conception de services.&lt;/P&gt;
&lt;P&gt;Si Visual Studio se base sur le code que vous avez &amp;#233;crit pour&amp;nbsp;concevoir un contrat, l'approche de WSCF est inverse et permet de g&amp;#233;nr&amp;#233;rer le contrat &amp;#224; partir d'un mod&amp;#232;le (bas&amp;#233; sur un fichier XSD).&lt;/P&gt;
&lt;P&gt;Il suffit donc de d&amp;#233;crire son domaine &amp;#224; l'aide du designer de Visual Studio. WSCF se charge de la cr&amp;#233;ation d'un WSDL.&lt;BR&gt;Un petit exemple:&lt;/P&gt;
&lt;P&gt;&lt;IMG height=403 src="/batswirl/images/ModeleXSD.JPG" width=626 border=0&gt;&lt;/P&gt;
&lt;P&gt;On passe un petit coup d'assistant pour obtenir le WSDL:&lt;/P&gt;
&lt;P&gt;&lt;IMG height=292 src="/batswirl/images/assistant.JPG" width=377 border=0&gt;&lt;/P&gt;
&lt;P&gt;Et on obtient un joli WiiiiizDeul:&lt;BR&gt;&lt;BR&gt;&lt;IMG height=531 src="/batswirl/images/wsdl.JPG" width=570 border=0&gt;&lt;/P&gt;
&lt;P&gt;Mais ce n'est pas tout car maintenant, il nous faut demander &amp;#224; g&amp;#233;n&amp;#233;rer le squelette du code :&lt;/P&gt;
&lt;P&gt;&lt;IMG height=406 src="/batswirl/images/assistant2.JPG" width=635 border=0&gt;&lt;/P&gt;
&lt;P&gt;Le code est ensuite g&amp;#233;n&amp;#233;r&amp;#233;, &amp;#224; la fois les contr&amp;#244;leurs et les types du domaine. Vous pouvez en trouver deux exemples, &lt;A href="http://blogs.labo-dotnet.com/batswirl/IAuthenticationPort.cs.txt" target=_blank&gt;ici&lt;/A&gt; et &lt;A href="http://blogs.labo-dotnet.com/batswirl/User.cs.txt" target=_blank&gt;ici&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Un outil bien sympa en somme, totalement int&amp;#233;gr&amp;#233; &amp;#224; Visual Studio et qui devrait permettre &amp;#224;&amp;nbsp;nos services d'&amp;#234;tre plus accessible &amp;#224; d'autres plate-formes&amp;nbsp;gr&amp;#226;ce &amp;#224;&amp;nbsp;une approche orient&amp;#233;e contrat.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/8611.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>Ingo Rammer : Optimization for Dummies</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/07/8601.aspx</link><pubDate>Thu, 07 Jul 2005 22:52:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/07/8601.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/8601.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/07/8601.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/8601.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/8601.aspx</trackback:ping><description>&lt;P&gt;&lt;FONT size=5&gt;Session Optimizing Scalability, Performance and Availability With Systems Built on the .NET Framework&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Avec un titre aussi long, on &amp;#233;tait en droit de s'attendre &amp;#224; un exhaustif contenu. L'architecte de ThinkTecture a tenu ses promesses et nous a d&amp;#233;velopp&amp;#233; une pr&amp;#233;sentation orient&amp;#233;e vers la pratique. En trois points, bas&amp;#233;s sur des cas concrets, &lt;A href="http://www.thinktecture.com/staff/ingo/default.html"&gt;Ingo&lt;/A&gt; nous a apport&amp;#233; un peu de son exp&amp;#233;rience en mati&amp;#232;re d'analyse, de correction ou d'optimisation. &lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Premier point Analyse R&amp;#233;seau&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Dans cette premi&amp;#232;re partie, il f&amp;#251;t question d'analyse de r&amp;#233;seau, de sniffing &amp;#224; l'aide d'&lt;A href="http://www.ethereal.com/"&gt;EtheReal &lt;/A&gt;nous permettant de cibler une erreur d'impl&amp;#233;mentation dans un BackService.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Deuxieme point SQL&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Apr&amp;#232;s avoir clairement annonc&amp;#233; que l'ensemble de cette d&amp;#233;monstration ne pourrait qu'irriter certains d&amp;#233;veloppeurs de la partie Acc&amp;#232;s aux donn&amp;#233;es du Framework .net, Ingo a clairement mit en &amp;#233;vidence&amp;nbsp;les faiblesses du DataSet tel qu'il est pr&amp;#233;sent&amp;#233; dans de nombreux supports et l'importance d'un outil comme le SQL Profiler de SQL Server 2000.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Troisi&amp;#232;me point M&amp;#233;moire&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;S'en est suivit une pr&amp;#233;sentation de CLR Profiler 2.0 permettant de mettre en &amp;#233;vidence les m&amp;#234;mes faiblesses du DataSet (d&amp;#233;cidement...) par rapport &amp;#224; une impl&amp;#233;mentation personnelle de certaines fonctionnalit&amp;#233;s d'acc&amp;#232;s aux donn&amp;#233;es.&lt;/P&gt;
&lt;P&gt;NB: Ingo a d'ailleurs rappell&amp;#233; que le Dataset &amp;#233;tait une excellente fonctionnalit&amp;#233; du Framework, dans le cadre d'une application n&amp;#233;cessitant un acc&amp;#232;s en mode d&amp;#233;connect&amp;#233; aux donn&amp;#233;es.&lt;/P&gt;
&lt;P&gt;En conclusion, en 1h15, la facilit&amp;#233; dont Ingo a analys&amp;#233; et optimis&amp;#233; son application donne envie de revoir, compar&amp;#233;, test&amp;#233; diff&amp;#233;rentes impl&amp;#233;mentations. Surtout au vue des r&amp;#233;sultats obtenus ;)&lt;/P&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/8601.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>TechEd 2005 les conférences SOA du mercredi</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/07/8598.aspx</link><pubDate>Thu, 07 Jul 2005 13:04:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/07/8598.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/8598.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2005/07/07/8598.aspx#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/8598.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/8598.aspx</trackback:ping><description>&lt;P&gt;Je suis depuis dimanche &amp;#224; Amsterdam pour le TechEd 2005.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;J'ai pu assist&amp;#233; hier &amp;#224; trois conf&amp;#233;rences concernant les architectures orient&amp;#233;es services. La programmation de ce TechEd et la fr&amp;#233;quentation des sessions sur le sujet ne peuvent que confirmer le fait que l'on ne pourra&amp;nbsp;bient&amp;#244;t plus&amp;nbsp;passer &amp;#224; cot&amp;#233; de ce type de conception.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT size=4&gt;8h30 Dealing with Data in Service Oriented Architecture&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;D&amp;#232;s 8h30, &lt;A href="http://blogs.msdn.com/RJacobs/"&gt;Ron Jacobs&lt;/A&gt; qui fait partie de l'&amp;#233;quipe Patterns&amp;amp;pratices de Microsoft a abord&amp;#233; la gestion des donn&amp;#233;es dans les syst&amp;#232;mes connect&amp;#233;s.&lt;/P&gt;
&lt;P&gt;&lt;IMG height=263 src="/batswirl/images/P1070426.jpg" width=350 border=0&gt;&lt;/P&gt;
&lt;P&gt;Ron a d&amp;#233;montr&amp;#233; que la mise en place d'un syst&amp;#232;me interconnect&amp;#233; mettait en branle tous les reflexes que nous pouvons avoir concernant l'acc&amp;#232;s, le stockage ou la transmission des donn&amp;#233;es.&lt;/P&gt;
&lt;P&gt;Cela passe par la d&amp;#233;finition des diff&amp;#233;rents types de donn&amp;#233;es (internes au service ou int&amp;#233;gr&amp;#233;s au message), du ciblage de donn&amp;#233;es immuables, de la necessit&amp;#233; de mettre en place une solution de versionning et enfin et pas des moindres de l'obligation de d&amp;#233;finir clairement le propri&amp;#233;taires des donn&amp;#233;es ainsi que ses responsabilit&amp;#233;s (notification et transmission des donn&amp;#233;es actualis&amp;#233;es).&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;14h45 The gray area of implementing Services using Object Oriented Technologies&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Un peu plus cibl&amp;#233; impl&amp;#233;mentation, cette session de l'&amp;#233;tonnant &lt;A href="http://blogs.msdn.com/beatsch/"&gt;Beat Schwegler&lt;/A&gt; (qui vous illustre ses propos en vous racontant ses vacances) f&amp;#251;t l'occasion de bien prendre conscience en quoi la programmation orient&amp;#233;e services se distingue d'une approche POO classique (la "Grey Area" pr&amp;#233;sente entre le mod&amp;#232;le SOA et son impl&amp;#233;mentation).&lt;/P&gt;
&lt;P&gt;&lt;IMG height=263 src="/batswirl/images/P1070439.jpg" width=350 border=0&gt;&lt;/P&gt;
&lt;P&gt;Dans un premier temps, Beat nous a pr&amp;#233;sent&amp;#233; la distinction entre un appel de m&amp;#233;thode o&amp;#249; l'on utilise un objet, d'un certain type connu (dans ce qui nous est accessible) et la consommation d'une WebMethod dont on ne connait que la description qui nous en est faite dans le WSDL.&lt;/P&gt;
&lt;P&gt;La suite concernait l'encodage des messages SOAP. Beat en arrive &amp;#224; la conclusion que RPC ne doit &amp;#234;tre utilis&amp;#233; qu'en dernier ressors et a mis l'accent sur l'importance&amp;nbsp;de &lt;A href="http://www.w3.org/TR/2005/WD-ws-addr-core-20050331/"&gt;WSA&lt;/A&gt; (Web Services Addressing) &amp;#224; court et moyen terme.&lt;/P&gt;
&lt;P&gt;Cette session s'est conclue sur l'importance de respecter les contrats ou de la mise en place d'un syst&amp;#232;me adaptable afin de garantir le service aux applications clientes.&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;17h45 Patterns for Service - Oriented Architecture&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;j'ai retrouv&amp;#233; Ron Jacobs dans une salle comble pour une conf&amp;#233;rence beaucoup plus g&amp;#233;n&amp;#233;raliste sur SOA. Je dois dire que j'ai &amp;#233;t&amp;#233; un peu d&amp;#233;&amp;#231;u du contenu de la session m&amp;#234;me si les comp&amp;#233;tences techniques et la qualit&amp;#233; de pr&amp;#233;sentation &amp;#233;taient au rendez-vous. &lt;BR&gt;Il faut dire que sur 1h15 de session, une bonne heure a &amp;#233;t&amp;#233; consacr&amp;#233;e &amp;#224; la pr&amp;#233;sentation de diff&amp;#233;rents anti-patterns. Si l'objectif est bien entendu le m&amp;#234;me (&amp;#233;vitez des erreurs de conceptions dans les services connect&amp;#233;s), j'aurais pour ma part pr&amp;#233;f&amp;#233;r&amp;#233; d'avantages de pr&amp;#233;sentation de Best Pratices.&lt;/P&gt;
&lt;P&gt;Les cas pr&amp;#233;sent&amp;#233;s ont tout de m&amp;#234;me permis de conclure qu'il ne faut pas faire confiance au client pour quoi que ce soit ou de l'importance de restreindre la g&amp;#233;n&amp;#233;ricit&amp;#233; de ces services afin de mieux r&amp;#233;pondre aux attentes des clients. La sp&amp;#233;cialisation des services ou des interfaces facilite &amp;#233;galement la compr&amp;#233;hension du service par un contrat beaucoup plus explicite.&lt;/P&gt;
&lt;P&gt;La d&amp;#233;monstration du &lt;A href="http://msdn.microsoft.com/practices/narrator/narratorstart.html"&gt;Global Account Integration&lt;/A&gt; sur le site de l'&amp;#233;quipe Patterns&amp;amp;Pratices a achev&amp;#233; cette session afin de permettre de rencontrer d'avantages de ces Best Pratices.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/8598.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>La mauvaise réputation</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2005/05/09/5541.aspx</link><pubDate>Mon, 09 May 2005 22:38:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2005/05/09/5541.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/5541.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2005/05/09/5541.aspx#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/5541.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/5541.aspx</trackback:ping><description>&lt;P&gt;En pleine lecture de ce merveilleux ouvrage qu'est &lt;A href="http://www.amazon.fr/exec/obidos/ASIN/2744070904/qid=1115670971/sr=1-1/ref=sr_1_8_1/171-3948978-3369005"&gt;UML 2 et les Designs Patterns &lt;/A&gt;de &lt;A href="http://www.craiglarman.com/"&gt;Craig Larman&lt;/A&gt;, j'ai eu le souffle coup&amp;#233;.&lt;/P&gt;
&lt;P&gt;En effet, en pleine pr&amp;#233;sentation du Pattern GRASP contr&amp;#244;leur, celui-ci prend &amp;#224; parti, vous, moi et tout d&amp;#233;veloppeur asp.net digne de ce nom : &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"Il est &amp;#233;galement possible d'appliquer une m&amp;#233;thode de d&amp;#233;l&amp;#233;gation similaire avec .NET et WebForms : le fichier de code behind qui contient le gestionnaire d'&amp;#233;v&amp;#232;nements pour les clics sur les boutons du navigatuer Web obtiendra une r&amp;#233;f&amp;#233;rence &amp;#224; un objet contr&amp;#244;leur du domaine, puis lui d&amp;#233;l&amp;#233;guera la requ&amp;#234;te. &lt;FONT color=#ff0000 size=4&gt;Cette technique contraste avec le style fragile habituel de la programmation ASP.NET&lt;/FONT&gt; dans lequel les d&amp;#233;veloppeurs ins&amp;#232;rent la logique applicative dans le fichier de code-behind, m&amp;#233;langeant ainsi la logique applicative et la couche pr&amp;#233;sentation."&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Mais bien s&amp;#251;r, on code aussi les requ&amp;#234;tes dans les &amp;#233;v&amp;#232;nements, on n'a qu'une seule classe et la cha&amp;#238;ne de connexion de notre base de donn&amp;#233;es est dans un string. Et la marmotte...&lt;/P&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/5541.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>Exceptions...</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2005/03/16/exceptions.aspx</link><pubDate>Wed, 16 Mar 2005 12:04:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2005/03/16/exceptions.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/5215.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2005/03/16/exceptions.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/5215.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/5215.aspx</trackback:ping><description>Lors d&amp;#8217;une conversation, nous sommes rentr&amp;#233;s en conflit mon interlocuteur et moi au sujet du traitement des exceptions. &lt;BR&gt;&lt;BR&gt;Celui-ci recourait syst&amp;#233;matiquement &amp;#224; un &lt;SPAN&gt;MessageBox.Show()&lt;/SPAN&gt; afin d&amp;#8217;informer l&amp;#8217;utilisateur que son action avait &amp;#233;chou&amp;#233;e et de la raison de cet &amp;#233;chec. Me demandant, pourquoi il ne fallait pas recourir &amp;#224; ce genre de reflexe, je lui ai cit&amp;#233; un premier exemple.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;EM&gt;&lt;SPAN&gt;Durant le d&amp;#233;veloppement d&amp;#8217;un intranet de gestion de production, l&amp;#8217;ensemble de l&amp;#8217;&amp;#233;quipe de d&amp;#233;veloppement avait jug&amp;#233; bon d&amp;#8217;informer l&amp;#8217;utilisateur des erreurs qui surgissaient lors des diff&amp;#233;rents acc&amp;#232;s aux donn&amp;#233;es.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;15 jours de mise en pr&amp;#233;-production plus tard, l&amp;#8217;&amp;#233;tude des logs de l&amp;#8217;application pr&amp;#233;senta une situation pour le moins surprenante : "Une seule personne s&amp;#8217;&amp;#233;tait connect&amp;#233;e &amp;#224; l&amp;#8217;application, mais celle-ci s&amp;#8217;&amp;#233;tait connect&amp;#233;e une quarantaine de fois".&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/EM&gt;&lt;SPAN&gt;&lt;EM&gt;En fait, lors d&amp;#8217;un d&amp;#233;pannage, nous avions demand&amp;#233; &amp;#224; l&amp;#8217;utilisatrice de se connecter &amp;#224; l&amp;#8217;aide d&amp;#8217;un autre compte. Le probl&amp;#232;me en question &amp;#233;tait une erreur dans la gestion des droits et le probl&amp;#232;me fut rapidement r&amp;#233;solu. Cependant, face aux erreurs semblables (m&amp;#234;me message d&amp;#8217;erreur) que rencontraient certaines de ses coll&amp;#232;gues, cette personne leur a recommand&amp;#233; de se connecter avec un couple login/mot de passe qui fonctionnait beaucoup mieux&lt;/EM&gt; &lt;/SPAN&gt;:D&lt;SPAN&gt;&lt;EM&gt; .&lt;/EM&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;En cas d&amp;#8217;exceptions donc, il ne faut pas pr&amp;#233;venir l&amp;#8217;utilisateur de la cause de l&amp;#8217;exception, juste des cons&amp;#233;quences que cela entra&amp;#238;ne.&lt;BR&gt;&lt;BR&gt;Cette anecdote n&amp;#8217;a vraiment suffit &amp;#224; convaincre mon interlocuteur et celui-ci me posa implicitement des questions essentielles auxquelles, il est vrai, j&amp;#8217;ai eu du mal &amp;#224; r&amp;#233;pondre de fa&amp;#231;on claire et concise.&lt;BR&gt;&lt;BR&gt;Profitant du week-end, je me suis plong&amp;#233; dans mes bouquins et notamment "Conception et Programmation Orient&amp;#233;es Objet" de Bertrand Meyer. Ce dernier pr&amp;#233;sente tout un chapitre &amp;#224; la d&amp;#233;finition et au traitement des exceptions.&lt;BR&gt;&lt;BR&gt;Voici donc les questions et ce que je peux en retenir :&lt;BR&gt;&lt;BR&gt;&lt;FONT size=5&gt;&lt;FONT size=3&gt;&lt;U&gt;Qu&amp;#8217;est-ce qu&amp;#8217;une exception ?&lt;BR&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;SPAN&gt;&amp;nbsp;Il faut d&amp;#8217;abord d&amp;#233;finir ce qu&amp;#8217;est un &amp;#233;chec. Il s&amp;#8217;ag&amp;#238;t tout simplement du cas o&amp;#249; une partie de l&amp;#8217;application ne sait pas ou ne peut pas remplir son r&amp;#244;le. Cette &amp;#233;chec intervient &amp;#224; l&amp;#8217;ex&amp;#233;cution et est caus&amp;#233; par une exception. Une exception est donc un &amp;#233;v&amp;#232;nement provoquant l&amp;#8217;&amp;#233;chec de la m&amp;#233;thode due &amp;#224; un &amp;#233;tat anormal du syst&amp;#232;me.&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=4&gt;&lt;FONT size=3&gt;&lt;U&gt;Que signifie traiter l&amp;#8217;exception ?&lt;/U&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;SPAN&gt;Traiter l&amp;#8217;exception consiste dans un premier temps &amp;#224; identifier l&amp;#8217;exception, sa nature, en soit, ce qui a chang&amp;#233; dans le syst&amp;#232;me pour provoquer un &amp;#233;chec.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN&gt;Dans un second temps, il faut adapter la m&amp;#233;thode (B Meyer parle de routine) afin que celle-ci tente de remplir son r&amp;#244;le.&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Alors mon interlocuteur a-t-il r&amp;#233;ellement trait&amp;#233; l&amp;#8217;exception en informant l&amp;#8217;utilisateur qu&amp;#8217;une exception a eu lieu et que l&amp;#8217;action a &amp;#233;chou&amp;#233; ?&lt;BR&gt;&lt;BR&gt;Oui, en partie, il a identifi&amp;#233; l&amp;#8217;exception et assure ainsi la survie de l&amp;#8217;application (pas de crash) et l&amp;#8217;int&amp;#233;grit&amp;#233; des r&amp;#233;sultats (aucun r&amp;#233;sultat renvoy&amp;#233; donc pas de r&amp;#233;sultat inattendu). &lt;BR&gt;Cependant, le simple fait de renvoyer un message d&amp;#8217;erreur &amp;#224; l&amp;#8217;utilisateur revient &amp;#224; baisser les bras face au probl&amp;#232;me&lt;FONT size=4&gt; "tenter de modifier la m&amp;#233;thode pour qu&amp;#8217;elle tente de remplir son r&amp;#244;le"&lt;/FONT&gt;.&lt;BR&gt;&amp;nbsp;Cette mauvaise habitude l&amp;#8217;incite &amp;#224; ne jamais tenter de r&amp;#233;soudre le probl&amp;#232;me. Nous sommes d&amp;#8217;accord qu&amp;#8217;il sera toujours d&amp;#233;licat de modifier une m&amp;#233;thode pour que celle-ci acc&amp;#232;de &amp;#224; un fichier qui n&amp;#8217;existe pas ou bien qu&amp;#8217;elle tente une division par z&amp;#233;ro. Cependant, un certain nombre d&amp;#8217;exception est g&amp;#233;rable et le fait de se poser la question incitera &amp;#224; cr&amp;#233;er des fichiers secondaires ou &amp;#224; s&amp;#8217;assurer que la variable ne contienne jamais 0.&lt;BR&gt;&lt;BR&gt;En conclusion, on peut dire qu&amp;#8217;une exception n&amp;#8217;est pas une erreur et encore moins un simple &amp;#233;v&amp;#232;nement dont il faut avertir l&amp;#8217;utilisateur. Il faut aussi tenter de g&amp;#233;rer cette situation afin que l&amp;#8217;application puisse remplir son r&amp;#244;le dans un maximum de circonstaces.&lt;BR&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/5215.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>Soirée MSDN ASP.NET v2.0</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2005/02/09/5107.aspx</link><pubDate>Wed, 09 Feb 2005 22:34:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2005/02/09/5107.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/5107.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2005/02/09/5107.aspx#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/5107.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/5107.aspx</trackback:ping><description>Aujourd’hui, nous avons eu la chance, Vincent Bourdon, François Michaël Dain et moi-même, d’assister à la soirée des abonnés MSDN. Cette soirée était animée par &lt;B&gt;Scott Guthrie&lt;/B&gt; membre de la &lt;B&gt;Web Platform and Tools Team&lt;/B&gt;, à l’origine d’&lt;u&gt;ASP.NET v2.0&lt;/u&gt;. &lt;br&gt;
&lt;br&gt;
En un peu moins de 4 heures, Scott s’est attaché à nous présenter les nouvelles fonctionnalités d’ASP.NET, un aperçu du développement sous Visual Studio 2005 et pour finir, les effets de la migration de vos applications ASP.NET v1.X vers des applications v2.0. Détaillons rapidement (encore plus rapidement que le conférencier?, si si c’est possible) ces différentes chapitres.&lt;br&gt;
&lt;br&gt;
Les nouvelles fonctionnalités d’ASP.NET 2 ont ici été regroupées à l’aide des ASP.NET 2.0 Application Services API’s.&lt;br&gt;
Ont été présentés, les services &lt;i&gt;Membership&lt;/i&gt; et &lt;i&gt;Role manager&lt;/i&gt; qui vous permettront de rapidement (presque sans code) implémenter un système d’authentification ainsi qu’une gestion des droits d’utilisateurs sur votre site ou encore le service &lt;i&gt;site navigation&lt;/i&gt; vous permettant de définir rapidement une carte de votre site, carte qui permettra la génération automatique des menus par exemple. &lt;br&gt;
Si on ajoute, le service &lt;i&gt;personalization&lt;/i&gt; qui offre à l’utilisateur la possibilité de modifier la présentation du site ou les services &lt;i&gt;Database Caching&lt;/i&gt; et &lt;i&gt;Management&lt;/i&gt;, on se dit que la session était bien remplie.&lt;br&gt; 
Et on n’a pas tort.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Pourtant, ce planning chargé n’a pas empêché notre présentateur d’ajouter une description des fonctionnalités de Visual Studio 2005 propre à ASP.NET 2, à savoir et en vrac :
&lt;ul&gt;
&lt;li&gt;les outils d’aide à la modélisation de la couche d’accès aux données.&lt;/li&gt;
&lt;li&gt;le respect de votre norme et de votre présentation dans le code HTML.&lt;/li&gt;
&lt;li&gt;la complétion présente dans tous les types de fichiers et paramétrable suivant le type de validation ou navigateur ciblé.&lt;/li&gt;
&lt;li&gt; L’absence de fichier de projet ou de solution.&lt;/li&gt;
&lt;li&gt;La facilité de mise en production son projet.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
Et bien d’autres choses…&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Après une courte pause (plus courte pour le présentateur que pour les participants ;) ), Visual Studio 2005 nous a été présenté et plus particulièrement les fonctions d’architectes avec les diagrammes de classes et les fonctions de testeurs avec les tests unitaires et les tests de montée en charge des applications ASP.NET 2.&lt;br&gt;
&lt;br&gt;
Si après ce programme et déjà 3 heures de conférences, on est en droit de s’attendre à un répit,  Scott Guthrie n’était pas de cet avis et a aussitôt enchaîné sur les aspects de la migration.&lt;br&gt;
&lt;br&gt;
Si on peut être sceptique voire effrayé par le travail à fournir, que l’on semble justifié lorsque l’on liste l’ensemble des nouvelles fonctionnalités, nous avons été rapidement été rassurés. Certes, le premier exemple de migration ne concernait que la version du Framework utilisé par l’application déjà compilée, l’&lt;i&gt;Issue Tracker Starter Kit&lt;/i&gt;. Cependant, les exemples suivants traitant de la mise à niveau du code et des fonctionnalités de vos applications ASP.NET v2.0 ont permis de se rendre compte du travail effectué par les équipes de Microsoft. Sans vouloir m’avancer, cette migration ne devrait être une barrière infranchissable.&lt;br&gt;
&lt;br&gt;
Cette soirée abonnés MSDN a donc permis d’avoir un avant-goût des DevDay’s qui auront lieur dans un peu plus d’un mois (sans remettre en cause la qualité de la présentation d’aujourd’hui) et de lancer la campagne pour la version 2.0 du Framework de Microsoft en France.&lt;br&gt;
&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/5107.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>SP2 pas toujours facile!!!</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2004/09/05/3679.aspx</link><pubDate>Sun, 05 Sep 2004 19:00:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2004/09/05/3679.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/3679.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2004/09/05/3679.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/3679.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/3679.aspx</trackback:ping><description>&lt;P&gt;Si l'installation du SP2 s'est tr&amp;#232;s bien pass&amp;#233;e sur mon portable, j'ai eu &amp;#233;norm&amp;#233;ment de mal &amp;#224; l'installer sur mon poste &amp;#224; domicile.&lt;/P&gt;
&lt;P&gt;En effet, lors de la premi&amp;#232;re tentative, l'installation m'a signal&amp;#233; que je n'avais pas assez de place sur la disque. On me demande donc de rectifier cela et de r&amp;#233;essayer. Je fais de la place sur mon disque et je retente : l'installation reste bloqu&amp;#233;e &amp;#224; l'initialisation. Je retente plusieurs fois sans succ&amp;#232;s. &amp;nbsp;Il m'aura fallu recourir &amp;#224; la restauration syst&amp;#232;me pour pouvoir reex&amp;#233;cuter la mise &amp;#224; jour.&lt;/P&gt;
&lt;P&gt;Affaire &amp;#224; suivre &amp;#233;galement, depuis l'installation du SP sur mon portable, celui ci refuse de se connecter au WLAN de mon domicile si le WEP est activ&amp;#233;. G&amp;#233;nant mais peut &amp;#234;tre une simple coincidence.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/3679.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>C# un langage en carton???</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2004/09/02/3671.aspx</link><pubDate>Thu, 02 Sep 2004 15:11:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2004/09/02/3671.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/3671.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2004/09/02/3671.aspx#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/3671.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/3671.aspx</trackback:ping><description>&lt;P&gt;A la recherche de l'ensemble des standardisations qu'avai subit C#, je me suis retrouv&amp;#233; &amp;#224; rechercher le sens de l'acronyme ECMA. &lt;/P&gt;
&lt;P&gt;ECMA signifie donc, pour ceux qui ne le saurait pas, &lt;A href="http://www.ecma.org"&gt;European Carton Makers Association&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Voila qui plaira aux d&amp;#233;tracteurs du C#, et qui prouve par a + b + Google, que celui ci est un langage en carton. &lt;/P&gt;
&lt;P&gt;Je finirais par&amp;nbsp;rappeler &amp;#224; Madame Linda de Souza&amp;nbsp;que nous attendons&amp;nbsp;toujours impatiemment son article sur la portabilit&amp;#233; des&amp;nbsp;applications C#.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/3671.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mathieu Szablowski</dc:creator><title>Serveur applicatif</title><link>http://blogs.labo-dotnet.com/batswirl/archive/2004/06/10/2042.aspx</link><pubDate>Thu, 10 Jun 2004 01:21:00 GMT</pubDate><guid>http://blogs.labo-dotnet.com/batswirl/archive/2004/06/10/2042.aspx</guid><wfw:comment>http://blogs.labo-dotnet.com/batswirl/comments/2042.aspx</wfw:comment><comments>http://blogs.labo-dotnet.com/batswirl/archive/2004/06/10/2042.aspx#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://blogs.labo-dotnet.com/batswirl/comments/commentRss/2042.aspx</wfw:commentRss><trackback:ping>http://blogs.labo-dotnet.com/batswirl/services/trackbacks/2042.aspx</trackback:ping><description>&lt;P&gt;A SUPINFO, nous avons la chance d'avoir un super cours "SERVEUR APPLICATIF" utilisant la plate-forme Websphere d'IBM comme support. Le cours d'aujourd'hui portait sur les Entreprise Java Bean. A la fin de ce cours , ayant reconnu la puissance de ce genre de technologie, je me suis tout de m&amp;#234;me demand&amp;#233; l'int&amp;#233;r&amp;#234;t de l'utilisation de ce genre de composant...&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Sans ouvrir un d&amp;#233;bat et sachant que des lecteurs utilisent AUSSI J2EE ;), j'aimerais que ces personne m'aident &amp;#224; r&amp;#233;pondre &amp;#224; la question:&lt;BR&gt;Pourquoi utiliser un EJB pour int&amp;#233;grer un processus m&amp;#233;tier l&amp;#224; o&amp;#249; un Webservice peut faire la m&amp;#234;me chose?&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Merci de r&amp;#233;pondre en comments si cela int&amp;#233;resse certaines personnes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://blogs.labo-dotnet.com/batswirl/aggbug/2042.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>