<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de Jean-Alain Baeyens (Jab)</title>
	<atom:link href="https://blog.developpez.com/jab/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/jab</link>
	<description></description>
	<lastBuildDate>Wed, 04 Apr 2012 10:27:04 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>SharePoint 2007: Créer des interactions dans les écrans de saisie en utilisant des colonnes personnalisées</title>
		<link>https://blog.developpez.com/jab/p10914/sharepoint/creer_des_interactions_dans_les_ecrans_d</link>
		<comments>https://blog.developpez.com/jab/p10914/sharepoint/creer_des_interactions_dans_les_ecrans_d#comments</comments>
		<pubDate>Tue, 03 Apr 2012 15:50:50 +0000</pubDate>
		<dc:creator><![CDATA[jab]]></dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vous êtes encore confronté à du SharePoint 2007 existant qui doit évoluer ou simplement vous n&#8217;avez pas migré vers SharePoint 2010. Si c&#8217;est le cas, ce blog peut vous être utile. Attention, la démarche décrite ci-dessous n&#8217;est pas portable vers SharePoint 2010. Il ne s’agit pas ici d’expliquer comment faire une colonne personnalisée mais uniquement de discuter des interactions entres champs dans les écrans de saisie SharePoint.. Le cas le plus typique et le plus [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Vous êtes encore confronté à du SharePoint 2007 existant qui doit évoluer ou simplement vous n&rsquo;avez pas migré vers SharePoint 2010. Si c&rsquo;est le cas, ce blog peut vous être utile. Attention, la démarche décrite ci-dessous n&rsquo;est pas portable vers SharePoint 2010.
</p>
<p>Il ne s’agit pas ici d’expliquer comment faire une colonne personnalisée  mais uniquement de discuter des interactions entres champs dans les écrans de saisie SharePoint..</p>
<p>Le cas le plus typique et le plus souvent demandé est la cascading dropdown. Il existe sur internet une solution gratuite  que nous avons-nous même utilisé jusqu’au jour où il m’a été demandé de lui ajouter des caractéristiques plus avancées (parents multiples, choix multiples)</p>
<p>J’avais alors le choix soit de partir de cette classe, soit de partir sur une nouvelle conception. Vous l’aurez compris, c’est cette deuxième solution que j’ai choisi. Pourquoi, d’une part il n’était pas aisé d’inclure les nouvelles caractéristiques dans le concept existant. D’autre part, je n’ai jamais aimé le principe d’avoir une colonne parent également personnalisée. Toutefois, pour partie, les deux solutions sont basées sur le même concept. L’idée de base est d’abonner le contrôle de la colonne personnnalisée  à un événement du contrôle de rendu d’une autre colonne, personnalisée ou non. Pour mon cas concret, je suis parti sur l’élément « SelectedIndexChange » mais le principe fonctionne sur n’importe quel événement. Evidemment l’événement choisi va déterminer les types de contrôles qui pourront être connectés.</p>
<p><span id="more-8"></span></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">private void subscriptToParentsEvent() <br />
{ <br />
&nbsp; &nbsp;string fieldNames = Field.GetCustomProperty(&quot;JoinFieldNames&quot;).ToString(); <br />
&nbsp;<br />
&nbsp; &nbsp;foreach (string fieldName in fieldNames.Split(';')) <br />
&nbsp; &nbsp;{ <br />
&nbsp; &nbsp; &nbsp; DropDownList control = getParentControl(fieldName); <br />
&nbsp; &nbsp; &nbsp; if (control != null) <br />
&nbsp; &nbsp; &nbsp; { <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;control.AutoPostBack = true; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;control.SelectedIndexChanged += parentChanged; <br />
&nbsp; &nbsp; &nbsp; } <br />
&nbsp; &nbsp;} <br />
}</div></div>
<p>Comme vous le voyez dans le code ci-dessus, il est nécessaire d’activer l’AutoPostBack pour permettre une interaction immédiate. L’élément intéressant dans ce code est l’appel à getParentControl. Cette méthode permet de retrouver un parent sur base du nom du champ et de son type de rendu. Dans mon cas, je cherche spécifiquement une dropdown.</p>
<p>Détaillons maintenant ce code:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">private DropDownList getParentControl(string fieldName) <br />
{ <br />
&nbsp; &nbsp;Control parentField = findField(this.Page, fieldName); <br />
&nbsp; &nbsp;DropDownList parentControl = null; <br />
&nbsp; &nbsp;if (parentField != null) <br />
&nbsp; &nbsp;{ <br />
&nbsp; &nbsp; &nbsp; parentControl = findControl(parentField); <br />
&nbsp;<br />
&nbsp; &nbsp;} <br />
&nbsp; &nbsp;return parentControl; <br />
}</div></div>
<p>La recherche du control de rendu se fait en deux phases, la recherche du champ, ensuite la recherche du control proprement dit. Cette double recherche est nécessaire car aucun élément objectif ne permet de retrouver directement le contrôle au sein de la page. Par contre SharePoint génère non pas uniquement le contrôle de rendu mais toute une hiérarchie de contrôles pour effectuer le rendu des champs et un des niveaux identifie la colonne. La méthode « findField » recherche  ce niveau.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">private Control findField(Control root, string fieldName) <br />
{ <br />
&nbsp; &nbsp; &nbsp;Control result = null; <br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp;if (root is BaseFieldControl) <br />
&nbsp; &nbsp; &nbsp;{ <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (((BaseFieldControl)root).FieldName == fieldName) <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result = root; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} <br />
&nbsp; &nbsp; &nbsp;} <br />
&nbsp; &nbsp; &nbsp;else <br />
&nbsp; &nbsp; &nbsp;{ <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;foreach (Control ctrl in root.Controls) <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{ <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result = findField(ctrl, fieldName); <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (result != null) <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} <br />
&nbsp; &nbsp; } <br />
&nbsp; &nbsp; return result; <br />
&nbsp;}</div></div>
<p>Il s’agit d’une méthode récursive qui va parcourir  l’arborescence à la recherche d’un élément qui hérite de « BaseFieldControl »  et dont le nom correspond à la colonne recherchée. Une fois cet élément trouvé, il devient alors possible de rechercher l’élément de rendu souhaité. N’oubliez pas que le rendu peut être assuré par plusieurs contrôles. La recherche ne peut donc se faire que sur le type.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">private DropDownList findControl(Control root) <br />
{ <br />
&nbsp; &nbsp;DropDownList result = null; <br />
&nbsp;<br />
&nbsp; &nbsp;if (root is DropDownList) <br />
&nbsp; &nbsp;{ <br />
&nbsp; &nbsp; &nbsp; result = (DropDownList)root; <br />
&nbsp; &nbsp;} <br />
&nbsp; &nbsp;else <br />
&nbsp; &nbsp;{ <br />
&nbsp; &nbsp; &nbsp; foreach (Control ctrl in root.Controls) <br />
&nbsp; &nbsp; &nbsp; { <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;result = findControl(ctrl); <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (result != null) <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break; <br />
&nbsp; &nbsp; &nbsp; } <br />
&nbsp; &nbsp;} <br />
&nbsp; &nbsp;return result; <br />
}</div></div>
<p>« findControl » fonctionne de manière identique à « findField ». La seule différence réside dans le type recherché. Il serait d’ailleurs possible de n’utiliser qu’une seule méthode qui prendrait le type en paramètre.</p>
<p>Maintenant, que vous êtes capable de vous connecter à n’importe quel événement de n’importe quelle colonne, il est possible de réaliser une colonne personnalisée capable de réaliser pratiquement n’importe quelle action dynamique telle que cascading drop down, validation dynamique complexe (la colonne personnalisée devenant un gestionnaire d’erreur), un provider pour lire des données externes en relation avec la valeur d’un champ,…</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>SharePoint: Dispose or not dispose</title>
		<link>https://blog.developpez.com/jab/p9997/sharepoint/sharepoint_dispose_or_not_dispose</link>
		<comments>https://blog.developpez.com/jab/p9997/sharepoint/sharepoint_dispose_or_not_dispose#comments</comments>
		<pubDate>Sat, 21 May 2011 13:57:41 +0000</pubDate>
		<dc:creator><![CDATA[jab]]></dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Les problèmes liés au code non managé qui entrainent des problèmes de fuites mémoires dans les développement SharePoint ont déjà fait l&#8217;objet de nombreux articles sur le web et je n&#8217;ajouterai rien de neuf mais il est parfois utile de revenir sur des sujets théoriquement connus. Tout les développeurs SharePoint même débutants connaissent l&#8217;obligation de faire un dispose après avoir instancié un objet de type SPSite ou SPWeb. ou la syntaxe plus commune Dans de [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Les problèmes liés au code non managé qui entrainent des problèmes de fuites mémoires dans les développement SharePoint ont déjà fait l&rsquo;objet de nombreux articles sur le web et je n&rsquo;ajouterai rien de neuf mais il est parfois utile de revenir sur des sujets théoriquement connus.</p>
<p><span id="more-7"></span></p>
<p>Tout les développeurs SharePoint même débutants connaissent l&rsquo;obligation de faire un dispose après avoir instancié un objet de type SPSite ou SPWeb.</p>
<p><img src="http://blog.developpez.com/media/dispose1.JPG" width="320" height="76" alt="" /></p>
<p>ou la syntaxe plus commune</p>
<p><img src="http://blog.developpez.com/media/dispose2.JPG" width="370" height="103" alt="" /> </p>
<p>Dans de nombreux cas, vous ne devrez pas instancier votre objet mais vous le récupérez dans le contexte.</p>
<p><img src="http://blog.developpez.com/media/dispose3.JPG" width="261" height="36" alt="" /></p>
<p>Dans ce cas, et fort logiquement, il <strong>ne faut pas</strong> faire de Dispose de l&rsquo;objet.</p>
<p><img src="http://blog.developpez.com/media/dispose4.JPG" width="258" height="69" alt="" /></p>
<p>Quand est-il si vous récupérez l&rsquo;objet depuis une collection de type SPWebCollection ? Par exemple la propriété Webs d&rsquo;un objet SPWeb ou AllWebs d&rsquo;un objet SPSite.</p>
<p><img src="http://blog.developpez.com/media/dispose5.JPG" width="313" height="38" alt="" /></p>
<p>Malgré le fait qu&rsquo;il s&rsquo;agisse d&rsquo;une référence, la référence porte vers une collection dont les membres ne sont instanciés qu&rsquo;à la demande. Ce qui est facile à comprendre si on imagine le nombre d&rsquo;objets de type SPWeb qui serait potentiellement nécessaire d&rsquo;instancier en même temps. Un dispose s&rsquo;impose donc.</p>
<p><img src="http://blog.developpez.com/media/dispose6.JPG" width="325" height="66" alt="" /></p>
<p>Ce qui est d&rsquo;autant plus valable pour un parcours d&rsquo;une collection</p>
<p><img src="http://blog.developpez.com/media/dispose7.JPG" width="277" height="99" alt="" /><br />
En espérant que ce petit résumé vous aura été utile.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comment assigner une propriété SharePoint depuis l&#8217;API de Word.</title>
		<link>https://blog.developpez.com/jab/p8803/sharepoint/setsharepointproperty</link>
		<comments>https://blog.developpez.com/jab/p8803/sharepoint/setsharepointproperty#comments</comments>
		<pubDate>Thu, 08 Apr 2010 09:51:31 +0000</pubDate>
		<dc:creator><![CDATA[jab]]></dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Assigner une propriété SharePoint dans un projet VBA ou un addin VSTO est vraiment facile mais pas nécessairement bien documenté pour celui qui connait peu les classes de Word. Comme j&#8217;ai emprunté une mauvaise direction en me focalisant sur les Custom properties, j&#8217;ai cherché un long moment avant de trouver la bonne information. En fait, les objets de type &#171;&#160;Document&#160;&#187; contiennent une collection nommée ContentTypeProperties. Cette collection contient les propriétés SharePoint. En C#, le code [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Assigner une propriété SharePoint dans un projet <strong>VBA</strong> ou un addin <strong>VSTO</strong> est vraiment facile mais pas nécessairement bien documenté pour celui qui connait peu les classes de Word. Comme j&rsquo;ai emprunté une mauvaise direction en me focalisant sur les Custom properties, j&rsquo;ai cherché un long moment avant de trouver la bonne information.</p>
<p>En fait, les objets de type &laquo;&nbsp;Document&nbsp;&raquo; contiennent une collection nommée <strong><span style="color:blue">ContentTypeProperties</span></strong>. Cette collection contient les propriétés SharePoint.</p>
<p>En C#, le code pour assigner la propriété est alors:</p>
<p><em><span style="color:blue">MetaProperty</span> prop = doc.ContentTypeProperties.GetItemByInternalName(<span style="color:red">&laquo;&nbsp;myInternalFieldName&nbsp;&raquo;</span>);<br />
<span style="color:blue">if</span> (prop != null) prop.value = <span style="color:red">&laquo;&nbsp;new value&nbsp;&raquo;</span>;</em></p>
<p>Et c&rsquo;est tout.</p>
<p>doc est un objet de type Word Document .<br />
MetaProperty fait partie de Microsoft.Office.Core </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Content Control Word et propriétés SharePoint</title>
		<link>https://blog.developpez.com/jab/p8614/sharepoint/content_control_word_et_proprietes_share</link>
		<comments>https://blog.developpez.com/jab/p8614/sharepoint/content_control_word_et_proprietes_share#comments</comments>
		<pubDate>Wed, 10 Feb 2010 10:33:16 +0000</pubDate>
		<dc:creator><![CDATA[jab]]></dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Le problème exposé ci-dessous concerne des champs SharePoint définis par feature (xml definition). Connecter une propriété SharePoint avec un content control dans un document Word est simple à réaliser, il suffit juste d&#8217;ajouter la propriété depuis le menu champ de Quick Part. Dans certains scénari, le lien peut être brisé. Par exemple, si vous déplacez ou copiez le document d&#8217;un site vers un aute, le lien entre la colonne et le champ dans Word est [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Le problème exposé ci-dessous concerne des champs SharePoint définis par feature (xml definition).</p>
<p>Connecter une propriété SharePoint avec un content control dans un document Word est simple à réaliser, il suffit juste d&rsquo;ajouter la propriété depuis le menu champ de Quick Part. Dans certains scénari, le lien peut être brisé.<br />
<span id="more-5"></span><br />
Par exemple, si vous déplacez ou copiez le document d&rsquo;un site vers un aute, le lien entre la colonne et le champ dans Word est généralement cassé. Dans ce cas, changer la valeur dans l&rsquo;info panel de Word ne change plus la valeur dans le document même. Pourquoi ?</p>
<p>En interne, dans un fichier xml de votre document (docx), vous pourez trouver une ligne similaire à l&rsquo;exemple ci-dessous.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;monNomDeChamp xmlns=&quot;58E7EE3F-EFF6-4043-A166-94AA3F93DB71&quot;&gt; <br />
&nbsp; &nbsp;La valeur <br />
&lt;/monNomDeChamp&gt;</div></div>
<p>L&rsquo;espace de nom defini est un guid qui référence un object spécific de SharePoint ou le document a été créé.</p>
<p>La solution pour résoudre ce problème est de choisir vous même un espace de nom. Pour ce faire, ajoutez la propriété SourceId dans la définition de votre colonne.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;&lt;Field <br />
&nbsp; &nbsp;Type=&quot;Text&quot; <br />
&nbsp; &nbsp;DisplayName=&quot;Document Office&quot; <br />
&nbsp; &nbsp;Group=&quot;Custom Document Properties&quot; <br />
&nbsp; &nbsp;ID=&quot;{126832c6-7b36-4cda-9046-0f0ff97c1c5d}&quot; <br />
&nbsp; &nbsp;SourceID=&quot;http://schemas.microsoft.com/sharepoint/v3&quot; <br />
&nbsp; &nbsp;StaticName=&quot;fdDocumentProvince&quot; <br />
&nbsp; &nbsp;Name=&quot;fdDocumentProvince&quot;&gt; <br />
&nbsp;<br />
&nbsp;<br />
Quand votre champ a été défini de cette manière, le document word contient <br />
&nbsp;<br />
&lt;code&gt; <br />
&lt;monNomDeChamp xmlns=http://schemas.microsoft.com/sharepoint/v3&gt; <br />
&nbsp; La valeur <br />
&lt;/monNomDeChamp&gt;</div></div>
<p>Maintenant, le document peut être déplaçé ou copié sans que le lien ne soit perdu.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 après 3 mois</title>
		<link>https://blog.developpez.com/jab/p7483/windows-7/windows_7_apres_3_mois</link>
		<comments>https://blog.developpez.com/jab/p7483/windows-7/windows_7_apres_3_mois#comments</comments>
		<pubDate>Sun, 12 Apr 2009 07:27:16 +0000</pubDate>
		<dc:creator><![CDATA[jab]]></dc:creator>
				<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Cela fait maintenant 3 mois que j&#8217;utilise Windows 7 avec bonheur. Certes, j&#8217;ai remonté quelques bugs dans l&#8217;utilisation de certaines applications mais tous relativement mineurs. En 3 mois, un seul plantage du système. J&#8217;ai maintenant pu installer mon antivirus gratuit préféré qui est dans sa nouvelle version complètement compatible. Le nombre d&#8217;applications testées augmentent régulièrement avec toujours le même succès. En voici une liste non exhaustive: Google Chrome, Safari, Firefox, 7-zip, TourtoiseSVN, Open Office, Les [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Cela fait maintenant 3 mois que j&rsquo;utilise Windows 7 avec bonheur. Certes, j&rsquo;ai remonté quelques bugs dans l&rsquo;utilisation de certaines applications mais tous relativement mineurs. En 3 mois, un seul plantage du système. J&rsquo;ai maintenant pu installer mon antivirus gratuit préféré qui est dans sa nouvelle version complètement compatible. Le nombre d&rsquo;applications testées augmentent régulièrement avec toujours le même succès.<br />
En voici une liste non exhaustive: Google Chrome, Safari, Firefox, 7-zip, TourtoiseSVN, Open Office, Les outils pour le Canon 350D, Vodaphone mobile connect, Microsoft Virtual PC, WebExpert 6, Visual Exprexx C# et SQL 2005, Skype, iTunes, Goolge Earth, Quick Time, FileZila, Belgium eId, AVG free 8.5, Active Perl,&#8230;</p>
<p>Au niveau reconnaissance matériel, de tout les périphériques que j&rsquo;ai eu l&rsquo;occasion de tester, seul mon téléphone mobile n&rsquo;a pu être reconnu ainsi qu&rsquo;une vieille webcam Philips Toucam mais qui ne fonctionnait déjà pas sous Vista.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Déboguer les dévelopements SharePoint depuis votre P.C. local.</title>
		<link>https://blog.developpez.com/jab/p7255/sharepoint/debuger_les_developements_sharepoint_dep</link>
		<comments>https://blog.developpez.com/jab/p7255/sharepoint/debuger_les_developements_sharepoint_dep#comments</comments>
		<pubDate>Thu, 19 Feb 2009 16:07:54 +0000</pubDate>
		<dc:creator><![CDATA[jab]]></dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[La première chose à faire est de copier sur le serveur les fichiers pdb avec les assemblies que vous souhaitez déboguer. Quand les assemblies sont dans la GAC, vous pouvez créer un disque virtuel pour mapper le répertoire de la GAC (c:\Windows\Assembly). Il est préférable de copier à la fois la dll et le pdb sinon vous risquez d&#8217;avoir un problème de concordance. Vous serez probablement amené à faire un IISReset avant cette copie pour [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>La première chose à faire est de copier sur le serveur les fichiers pdb avec les assemblies que vous souhaitez déboguer. Quand les assemblies sont dans la GAC, vous pouvez créer un disque virtuel pour mapper le répertoire de la GAC (c:\Windows\Assembly). Il est préférable de copier à la fois la dll et le pdb sinon vous risquez d&rsquo;avoir un problème de concordance. Vous serez probablement amené à faire un IISReset avant cette copie pour libérer les assemblies. Malheureusement, il n&rsquo;est pas possible d&rsquo;utiliser les pdb sur votre machine locale mais en les chargeant manuellement depuis la fenêtre &laquo;&nbsp;module&nbsp;&raquo;.</p>
<p>subst g: c:\windows\assembly\gac_msil</p>
<p>Une fois les pdb copiés, vous devez, toujours sur le serveur, démarrer le “Visual Studio 2005 remote debugging monitor”.</p>
<p><img src="http://blog.developpez.com/media/spss4.jpg" width="336" height="112" alt="" /><br />
<span id="more-4"></span><br />
Dans l&rsquo;option “Tools” du menu, vous devez donner les permissions à l&rsquo;utilisateur que exécute Visual Studio sur la machine locale.</p>
<p><img src="http://blog.developpez.com/media/spss3.jpg" width="205" height="249" alt="" /></p>
<p>Pour retrouver le nom du serveur à utiliser dans Visual Studio, cliquez sur “Options”</p>
<p><img src="http://blog.developpez.com/media/spss2.jpg" width="231" height="168" alt="" /></p>
<p>Maintenant, vous pouvez aller dans Visual Studio sur votre machine locale.<br />
Ouvrez le fichier ou le projet que vous voulez déboguer.<br />
Cliquez sur “Attach to process”, utilisez le nom du serveur précédemment trouvé dans le champ &laquo;&nbsp;qualifier&nbsp;&raquo;.<br />
Attachez le processus w3wp.exe. Si vous avez plus d&rsquo;un processus, attachez les tous pour être sur d&rsquo;avoir le bon ou recherchez le pid de votre processus en utilisant la commande IISApp sur le serveur.</p>
<p><img src="http://blog.developpez.com/media/spss1.jpg" width="522" height="373" alt="" /></p>
<p>Maintenant, vous pouvez déboguer.</p>
<p>PS: Je tiens à remercier Wilke Jansoone pour les informations fournies.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Focus sur les accessoires dans Windows 7</title>
		<link>https://blog.developpez.com/jab/p7148/windows-7/focus_sur_les_accessoires_dans_windows_7</link>
		<comments>https://blog.developpez.com/jab/p7148/windows-7/focus_sur_les_accessoires_dans_windows_7#comments</comments>
		<pubDate>Sun, 01 Feb 2009 10:01:10 +0000</pubDate>
		<dc:creator><![CDATA[jab]]></dc:creator>
				<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Windows 7 a reçu quelques nouveaux accessoires mais ceux existants précédemment ont aussi souvent été largement améliorés. Rayon nouveautés, le &#171;&#160;Sticky Notes&#160;&#187; remplace le gadget qui permettait de mettre des post-it sur votre bureau. Le &#171;&#160;Snipping Tool&#160;&#187; fait lui aussi son apparition. Bien pratique pour faire des captures de morceaux d&#8217;écran. C&#8217;est avec lui que j&#8217;ai capturé les images présentes dans ce blog. Il dispose en plus de la possibilité de surligner et d&#8217;ajouter des [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Windows 7 a reçu quelques nouveaux accessoires mais ceux existants précédemment ont aussi souvent été largement améliorés.</p>
<p><img src="http://blog.developpez.com/media/accessoires.jpg" width="206" height="259" alt="Le menu accesssoires" /><br />
<span id="more-2"></span><br />
Rayon nouveautés, le &laquo;&nbsp;Sticky Notes&nbsp;&raquo; remplace le gadget qui permettait de mettre des post-it sur votre bureau.</p>
<p><img src="http://blog.developpez.com/media/Capture.JPG" width="205" height="198" alt="Sticky Notes" /></p>
<p>Le &laquo;&nbsp;Snipping Tool&nbsp;&raquo; fait lui aussi son apparition. Bien pratique pour faire des captures de morceaux d&rsquo;écran. C&rsquo;est avec lui que j&rsquo;ai capturé les images présentes dans ce blog.</p>
<p><img src="http://blog.developpez.com/media/Capture_01.JPG" width="315" height="350" alt="Snipping Tool" /></p>
<p>Il dispose en plus de la possibilité de surligner et d&rsquo;ajouter des traits de crayon de différentes couleur ou encore d&rsquo;utiliser une gomme. Il devient inutile d&rsquo;installer des outils comme MWSnap.</p>
<p>Pour les adeptes de la ligne de commande et du script, le Power Shell fait son entrée dans la gamme des accessoires.  A lui seul, il serait possible d&rsquo;écrire plusieurs articles pour décrire ses possibilités. </p>
<p><img src="http://blog.developpez.com/media/powershell.JPG" width="303" height="302" alt="Power Shell" /></p>
<p>Côté anciennes applications, la calculatrice est revue et reçoit 2 nouveaux modes, le mode statistiques et le mode programmation. Elle dispose également d&rsquo;un module de conversion d&rsquo;unités, de calcul sur les date et de modèles permettant par exemple le calcul d&rsquo;amortissement.</p>
<p><img src="http://blog.developpez.com/media/Calculatrice.JPG" width="116" height="206" alt="Calculatrice" /></p>
<p>Paint est complètement revu, il reçoit un look 0ffice 2007 et se voit ajouter quelques nouvelles fonctionnalités reprisent de l&rsquo;éditeur d&rsquo;image du même Office. WordPad reçoit le même lifting, il est lui aussi au look Office 2007 avec le menu ruban. </p>
<p><img src="http://blog.developpez.com/media/paint.JPG" width="513" height="281" alt="Paint" /></p>
<p>Après cette courte mise en bouche, à vous de découvrir la suite lors de la sortie de Windows 7.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7: Premières impressions</title>
		<link>https://blog.developpez.com/jab/p7123/windows-7/windows_7_premieres_impression</link>
		<comments>https://blog.developpez.com/jab/p7123/windows-7/windows_7_premieres_impression#comments</comments>
		<pubDate>Mon, 26 Jan 2009 20:19:23 +0000</pubDate>
		<dc:creator><![CDATA[jab]]></dc:creator>
				<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ce week-end, j&#8217;ai pris mon courage à deux mains et j&#8217;ai installé la version beta de Windows 7. Première bonne surprise, l&#8217;installation a été rapide et très facile. Malheureusement, le portable sur lequel je l&#8217;ai installé était équipé de Vista en français et d&#8217;une seule partition. Donc pas du dual boot possibles et comme la beta est évidemment en anglais, impossible de faire une mise à niveau. Je réinstalle donc une version neuve. Lors de [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Ce week-end, j&rsquo;ai pris mon courage à deux mains et j&rsquo;ai installé la version beta de Windows 7. Première bonne surprise, l&rsquo;installation a été rapide et très facile. Malheureusement, le portable sur lequel je l&rsquo;ai installé était équipé de Vista en français et d&rsquo;une seule partition. Donc pas du dual boot possibles et comme la beta est évidemment en anglais, impossible de faire une mise à niveau. Je réinstalle donc une version neuve. Lors de l&rsquo;installation, mon ancien répertoire Windows est renommé en Windows.Old. Les données ne sont donc pas perdues. Ouf. [J&rsquo;avais un backup ;-)]<br />
<span id="more-1"></span><br />
La connexion à mon réseau wifi domestique c&rsquo;est effectuée pratiquement automatiquement et en tout cas sans aucune difficulté.</p>
<p>A première vue, l&rsquo;ensemble du matériel a été reconnu. Toutefois le centre d&rsquo;actions me signale deux problèmes. Le lecteur d&rsquo;empreintes digitales et la webcam ne sont pas reconnus. Pour le premier, il me propose une solution sous la forme d&rsquo;un lien vers un pilote. Après installation, non seulement, il est correctement reconnu mais en plus, il est possible sans programme supplémentaire de faire le login avec. Je reviendrai dans un autre billet sur cette fonctionnalité. Pour la webcam, le centre d&rsquo;action me dirige vers le constructeur au demeurant non identifié. J&rsquo;installe le pilote Vista et Windows 7 le reconnait.</p>
<p>Après démarrage, l&rsquo;interface est agréable, il ne s&rsquo;agit pas d&rsquo;une révolution mais d&rsquo;une évolution.</p>
<p><img src="http://blog.developpez.com/media/windows7.jpg" width="640" height="400" alt="Le bureau de Windows 7" /></p>
<p>La barre de tâches est complètement revue et présente maintenant uniquement des icônes.</p>
<p><img src="http://blog.developpez.com/media/taskbar.JPG" width="563" height="40" alt="Taskbar" /></p>
<p>Visuellement, vous pouvez directement voir le nombre de fenêtres ouvertes pour une application donnée. Dans l&rsquo;image ci-dessus, deux fenêtres de Firefox sont ouvertes. La seconde fenêtre est représentée par un petit rectangle le long de l&rsquo;icône.<br />
La même barre contient également le menu de lancement rapide comme c&rsquo;était le cas précédemment mais maintenant, elle se confond avec la barre de tâches. Par exemple, dans l&rsquo;image ci dessus, Windows Media Player n&rsquo;est pas démarré mais est placé en lancement rapide tout comme l&rsquo;explorateur Windows et Firefox qui eux sont démarrés.</p>
<p>La prévisualisation des fenêtres existe toujours mais est également améliorée.</p>
<p><img src="http://blog.developpez.com/media/windows7_preview.jpg" width="461" height="222" alt="Prévisualisations des fenêtres" /></p>
<p>Comme vous le voyez, les différentes fenêtres d&rsquo;une même application sont pré-visualisées côte à côte. Et ce n&rsquo;est pas tout, si vous faites glisser le curseur sur la pré-visualisation, la fenêtre s&rsquo;affiche en grand sans pour autant l&rsquo;avoir réellement mise en avant plan. Il s&rsquo;agit du principe déjà mis en œuvre dans Office 2007.</p>
<p>La petite zone tout en fin de la barre de tâches permet de passer sur le bureau. Il s&rsquo;agit de la fonction déjà accessible avec les touches [Windows]+M.</p>
<p>Encore un petit plus, les gadgets sont maintenant complètement intégrés au bureau.</p>
<p>Côté rapidité, malgré le fait qu&rsquo;il s&rsquo;agit d&rsquo;une version de test, elle semble plus rapide que la version Windows Vista pré installée. </p>
<p>A très bientôt pour découvrir les autres nouveautés de Windows 7.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
