<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://didierdanse.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>didierdanse.net - Les news Developpement</title><link>http://didierdanse.net/blogs/dev/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Le Service Pack 2 de Vista en beta, c'est pour cette semaine!</title><link>http://didierdanse.net/blogs/dev/archive/2008/12/01/le-service-pack-2-de-vista-en-beta-c-est-pour-cette-semaine.aspx</link><pubDate>Mon, 01 Dec 2008 19:39:01 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:175</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=175</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=175</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/12/01/le-service-pack-2-de-vista-en-beta-c-est-pour-cette-semaine.aspx#comments</comments><description>&lt;p&gt;Alors qu&amp;#39;il y a un an presque jour pour jour je vous annon&amp;#231;ais la venue du SP1 de Visa, voici d&amp;#233;sormais le SP2 en beta!&lt;/p&gt;  &lt;p&gt;Comme pour son pr&amp;#233;d&amp;#233;cesseur, il corrige certes quelques bugs, failles de s&amp;#233;curit&amp;#233; et autres incoh&amp;#233;rences qui persisteraient apr&amp;#232;s le SP1 mais il ajoute de nouvelles fonctionnalit&amp;#233;s / possibilit&amp;#233;s. &lt;/p&gt;  &lt;p&gt;Pour le t&amp;#233;l&amp;#233;charger, il vous faudra attendre le:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;2 d&amp;#233;cembre pour les abonn&amp;#233;s MSDN et Technet;&lt;/li&gt;    &lt;li&gt;4 d&amp;#233;cembre en t&amp;#233;l&amp;#233;chargement publique sur MSDN et Technet.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Les nouveaut&amp;#233;s les plus importantes de ce Service Pack:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support de types d&amp;#39;hardware &amp;#233;mergeants:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Support du Bluethoot 2.1;&lt;/li&gt;      &lt;li&gt;Possibilit&amp;#233; d&amp;#39;enregistrer des donn&amp;#233;es sur des supports Blue-Ray;&lt;/li&gt;      &lt;li&gt;...;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Am&amp;#233;lioration de l&amp;#39;administration;&lt;/li&gt;    &lt;li&gt;Am&amp;#233;lioration des performances:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Windows Search 4 qui am&amp;#233;liore les performances d&amp;#39;indexation et am&amp;#233;liore la qualit&amp;#233; des r&amp;#233;sultats;&lt;/li&gt;      &lt;li&gt;Diminution des ressources n&amp;#233;cessaires pour les gadgets de la toolbar;&lt;/li&gt;      &lt;li&gt;Hyper-V.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Des am&amp;#233;liorations concernant la compatibilit&amp;#233; entre des logiciels tels que ZoneAlarm et Vista sont pr&amp;#233;sentes. Par ailleurs, Microsoft annonce que toute application qu&amp;#39;il n&amp;#39;y aura pas de r&amp;#233;gression de la compatibilit&amp;#233; lors du passage au SP2 (heureusement ceci dit...).&lt;/p&gt;  &lt;p&gt;On notera aussi qu&amp;#39;un outil pour nettoyer les fichiers devenus obsol&amp;#232;tes apr&amp;#232;s l&amp;#39;installation du SP2 est fourni. &lt;/p&gt;  &lt;p&gt;N&amp;#39;h&amp;#233;sitez pas &amp;#224; poster vos feedbacks &amp;#224; ce sujet et n&amp;#39;oubliez pas, il s&amp;#39;agit d&amp;#39;une version beta, il n&amp;#39;est pas conseill&amp;#233; de l&amp;#39;installation pour une installation en &amp;quot;production&amp;quot;.&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=175" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Vista/default.aspx">Vista</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>SharePoint: des uploads lents avec IE6? Pourquoi?</title><link>http://didierdanse.net/blogs/dev/archive/2008/11/30/sharepoint-des-uploads-lents-avec-ie6-pourquoi.aspx</link><pubDate>Sun, 30 Nov 2008 12:37:17 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:174</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=174</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=174</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/11/30/sharepoint-des-uploads-lents-avec-ie6-pourquoi.aspx#comments</comments><description>&lt;p&gt;Alors que l&amp;#39;envoi de fichier via WebDAV (c&amp;#39;est-&amp;#224;-dire &amp;#224; l&amp;#39;aide de la vue Explorateur) se passe efficacement, l&amp;#39;envoi de fichiers via l&amp;#39;interface web dans SharePoint s&amp;#39;av&amp;#232;re tr&amp;#232;s lent?&lt;/p&gt;  &lt;p&gt;Si vous disposez d&amp;#39;Internet Explorer 6 sur les pcs depuis lesquels l&amp;#39;upload est lent, ne cherchez plus le pourquoi! Si ce n&amp;#39;est pas le cas, il s&amp;#39;agit juste d&amp;#39;une piste &amp;#224; suivre.&lt;/p&gt;  &lt;p&gt;La cause est simple: Internet Explorer 6 utilise une cl&amp;#233; de registre qui indique la taille du buffer &amp;#224; utiliser pour l&amp;#39;envoi des fichiers. La taille par d&amp;#233;faut pose probl&amp;#232;me d&amp;#232;s lors que vous faites l&amp;#39;upload d&amp;#39;un fichier de plus de 2Mo. Apr&amp;#232;s quelques secondes, l&amp;#39;upload semble s&amp;#39;arr&amp;#234;ter (et pour preuve, vous pouvez monitorer la charge r&amp;#233;seau au travers de l&amp;#39;information &amp;quot;Total Bytes/sec&amp;quot;) et un timeout intervient d&amp;#232;s lors.&lt;/p&gt;  &lt;p&gt;Internet Explorer 7 ne souffre pas de ce param&amp;#232;tre puisque la valeur de la cl&amp;#233; s&amp;#39;est vue modifi&amp;#233;e.&lt;/p&gt;  &lt;p&gt;Vous trouverez la proc&amp;#233;dure pour mettre &amp;#224; jour le param&amp;#232;tre: &lt;a title="http://support.microsoft.com/kb/329781/en-us" href="http://support.microsoft.com/kb/329781/en-us"&gt;http://support.microsoft.com/kb/329781/en-us&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=174" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category></item><item><title>SharePoint: Récupérer la taille d'un Item</title><link>http://didierdanse.net/blogs/dev/archive/2008/11/23/sharepoint-r-233-cup-233-rer-la-taille-d-un-item.aspx</link><pubDate>Sun, 23 Nov 2008 13:18:03 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:172</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=172</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=172</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/11/23/sharepoint-r-233-cup-233-rer-la-taille-d-un-item.aspx#comments</comments><description>&lt;p&gt;On fera le calcul en utilisant deux fonctions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;GetAttachmentsTotalSize&lt;/strong&gt;: renvoie la taille totale occup&amp;#233;e par les fichiers attach&amp;#233;s &amp;#224; l&amp;#39;item;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;GetItemSize&lt;/strong&gt;: renvoie la taille total des fichiers attach&amp;#233;s &amp;#224; laquelle on y ajoute la taille du contenu inclus dans les diff&amp;#233;rents champs.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;GetAttachmentsTotalSize&lt;/strong&gt;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetAttachmentsTotalSize(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; item &lt;span class="kwrd"&gt;as&lt;/span&gt; SPListItem) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; size &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; = 0

        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; filename &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;In&lt;/span&gt; item.Attachments
            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; file &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = item.Web.GetFileAsString( _ 
                item.Attachments.UrlPrefix + filename)
            size = size + file.Length
        &lt;span class="kwrd"&gt;Next&lt;/span&gt;

        &lt;span class="kwrd"&gt;Return&lt;/span&gt; size
    &lt;span class="kwrd"&gt;End&lt;/span&gt; Function&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;GetItemSize&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetItemSize(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; item &lt;span class="kwrd"&gt;as&lt;/span&gt; SPListItem) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; size &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; = GetAttachmentsTotalSize()

        &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; field &lt;span class="kwrd"&gt;As&lt;/span&gt; SPField &lt;span class="kwrd"&gt;In&lt;/span&gt; item.Fields
            &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; (item(field.Id) &lt;span class="kwrd"&gt;Is&lt;/span&gt; &lt;span class="kwrd"&gt;Nothing&lt;/span&gt;) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
                size = size + item(field.Id).ToString().Length
            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;

        &lt;span class="kwrd"&gt;Next&lt;/span&gt;

        &lt;span class="kwrd"&gt;Return&lt;/span&gt; size
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Bon calcul!&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=172" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item><item><title>SharePoint: Attention aux champs users après une migration avec la Content Migration API</title><link>http://didierdanse.net/blogs/dev/archive/2008/10/20/sharepoint-attention-aux-champs-users-apr-232-s-une-migration-avec-la-content-migration-api.aspx</link><pubDate>Mon, 20 Oct 2008 19:54:23 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:159</guid><dc:creator>Didier Danse</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=159</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=159</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/10/20/sharepoint-attention-aux-champs-users-apr-232-s-une-migration-avec-la-content-migration-api.aspx#comments</comments><description>&lt;p&gt;&lt;em&gt;[&lt;a href="http://didierdanse.net/blogs/dev_en/archive/2008/10/20/sharepoint-be-aware-of-group-filtering-in-people-field-with-moving-sites-using-content-migration-api.aspx"&gt;English version&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Si dans vos listes vous utilisez un champ &lt;em&gt;user&lt;/em&gt; qui filtre les utilisateurs possibles sur base d&amp;#39;un groupe SharePoint et que vous avez l&amp;#39;intention de migrer votre application d&amp;#39;un environnement &amp;#224; un autre via la Content Migration API, ce post est pour vous!&lt;/p&gt;  &lt;p&gt;Tout d&amp;#39;abord, un rapide rappel sur la mani&amp;#232;re de filtrer les users sur base d&amp;#39;un groupe:&lt;/p&gt;  &lt;p&gt;Dans la d&amp;#233;finition de la liste, cliquez sur le nom de la colonne &lt;em&gt;user&lt;/em&gt;. Une fois dans la fen&amp;#234;tre de propri&amp;#233;t&amp;#233;s, il suffit de s&amp;#233;lectionner le groupe utilis&amp;#233; pour filtrer les users.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointAttentionauxchampsusersaprsune_13B4E/02_thumb%5B1%5D_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="94" alt="02_thumb[1]" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointAttentionauxchampsusersaprsune_13B4E/02_thumb%5B1%5D_thumb.jpg" width="321" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Comment cela se passe-t-il en interne? L&amp;#39;identifiant du groupe s&amp;#233;lectionn&amp;#233; est stock&amp;#233; dans une propri&amp;#233;t&amp;#233; du champ. Il s&amp;#39;agit de SPFieldUser.SelectionGroup qui re&amp;#231;oit et renvoie un entier comme en atteste MSDN: &lt;a title="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfielduser.selectiongroup.aspx" href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfielduser.selectiongroup.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfielduser.selectiongroup.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Cet identifiant (424 dans notre exemple) est celui pr&amp;#233;sent dans l&amp;#39;url lorsque vous modifiez les membres du groupe.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointAttentionauxchampsusersaprsune_13B4E/01_thumb%5B2%5D_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="158" alt="01_thumb[2]" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointAttentionauxchampsusersaprsune_13B4E/01_thumb%5B2%5D_thumb.jpg" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Jusque l&amp;#224;, pas de probl&amp;#232;me. &lt;/p&gt;  &lt;p&gt;L&amp;#224; o&amp;#249; peut survenir un probl&amp;#232;me, c&amp;#39;est lorsque, via STSADM (stsadm -o export) ou un outil (SP RAD Studio par exemple) utilisant la Content Migration API, nous exportons ce site et ensuite l&amp;#39;importons dans un autre environnement. Et l&amp;#224;, surprise! Il s&amp;#39;av&amp;#232;re que le groupe s&amp;#233;lectionn&amp;#233; pour le filtre ne correspond pas &amp;#224; ce que nous attendions. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointAttentionauxchampsusersaprsune_13B4E/03_thumb%5B12%5D_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="158" alt="03_thumb[12]" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointAttentionauxchampsusersaprsune_13B4E/03_thumb%5B12%5D_thumb.jpg" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Que s&amp;#39;est-il pass&amp;#233;? La r&amp;#233;ponse est simple. Seul un identifiant sous forme d&amp;#39;entier est utilis&amp;#233; comme nous l&amp;#39;avons vu. En regardant le package g&amp;#233;n&amp;#233;r&amp;#233; par une op&amp;#233;ration d&amp;#39;export, on pourrait penser que l&amp;#39;import ne posera aucun probl&amp;#232;me puisque l&amp;#39;on retrouve&amp;#160; &lt;em&gt;&amp;lt;Group Id=&amp;quot;424&amp;quot; Name=&amp;quot;GroupName&amp;quot; [...]&amp;gt;&lt;/em&gt; dans le fichier &lt;em&gt;UserGroup.xml&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;Cependant, lors de l&amp;#39;import, pour peu que l&amp;#39;identifiant soit d&amp;#233;j&amp;#224; utilis&amp;#233;, le groupe import&amp;#233; recevra un nouvel ID. Malheureusement, l&amp;#39;ID utilis&amp;#233; par le champ user n&amp;#39;est quant &amp;#224; lui pas modifi&amp;#233;. Et c&amp;#39;est ainsi que l&amp;#39;on se retrouve avec un filtre sur un groupe non souhait&amp;#233;!&lt;/p&gt;  &lt;p&gt;Ainsi, il nous sera n&amp;#233;cessaire de modifier manuellement ce filtre apr&amp;#232;s la migration. Pour cela, il suffit de passer par l&amp;#39;interface web... si nous en avons le droit. Dans le cas contraire, une solution possible est d&amp;#39;utiliser des extensions STSADM. C&amp;#39;est cette solution que j&amp;#39;ai mis en place afin de r&amp;#233;aliser toutes les op&amp;#233;rations d&amp;#39;une traite. &lt;/p&gt;  &lt;p&gt;Cette op&amp;#233;ration prend en param&amp;#232;tre le nom d&amp;#39;un groupe SharePoint (et non pas sans identifiant puisqu&amp;#39;on ne le conna&amp;#238;t pas &amp;#224; l&amp;#39;avance dans notre sc&amp;#233;nario). &lt;/p&gt;  &lt;p&gt;&lt;em&gt;stsadm -o setfieldproperties -url &amp;lt;SiteUrl&amp;gt; -list &amp;lt;Listname&amp;gt; -field &amp;lt;Fieldname&amp;gt; -userfieldgroupfilter &amp;lt;GroupName&amp;gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Cette extension fait partie des extensions &lt;em&gt;Migration extensions&lt;/em&gt; pr&amp;#233;sentes sur CodePlex (&lt;a href="http://www.codeplex.com/migrationstsadmext"&gt;http://www.codeplex.com/migrationstsadmext&lt;/a&gt;).&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=159" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/STSADM/default.aspx">STSADM</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Content+Migration+API/default.aspx">Content Migration API</category></item><item><title>Roadshow MSDN: Comment Silverlight 2 et WPF peuvent procurer de riches expériences client aux utilisateurs - Liège, 15 Octobre</title><link>http://didierdanse.net/blogs/dev/archive/2008/09/30/roadshow-msdn-comment-silverlight-2-et-wpf-peuvent-procurer-de-riches-exp-233-riences-client-aux-utilisateurs-li-232-ge-15-octobre.aspx</link><pubDate>Tue, 30 Sep 2008 18:38:00 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:157</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=157</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=157</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/09/30/roadshow-msdn-comment-silverlight-2-et-wpf-peuvent-procurer-de-riches-exp-233-riences-client-aux-utilisateurs-li-232-ge-15-octobre.aspx#comments</comments><description>&lt;p&gt;Des sessions techniques dans la r&amp;#233;gion li&amp;#233;geoise, cela est suffisamment rare pour &amp;#234;tre signal&amp;#233;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Aujourd&amp;#8217;***, les d&amp;#233;veloppeurs qui construisent de nouvelles applications veillent tout particuli&amp;#232;rement &amp;#224; ce qu&amp;#8217;elles procurent une riche exp&amp;#233;rience client aux utilisateurs. En effet, ceux-ci sont de plus en plus familiaris&amp;#233;s avec des applications (web) capables de r&amp;#233;agir de fa&amp;#231;on logique et d&amp;#8217;interagir d&amp;#8217;avantage avec eux en tenant compte de leurs actions.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;u&gt;Rejoignez-nous&lt;/u&gt; au RIA Roadshow et restez &amp;#224; l&amp;#39;&amp;#233;coute des derni&amp;#232;res innovations. Vous y apprendrez comment d&amp;#233;velopper de riches applications pouvant &amp;#234;tre d&amp;#233;ploy&amp;#233;es sur le web et au-del&amp;#224; de ce que vous pouvez habituellement faire avec une application bas&amp;#233;e sur un navigateur&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Cette session abordera 4 sujets principaux: &lt;/em&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;p&gt;&lt;em&gt;Les nouvelles fonctionnalit&amp;#233;s de ASP.NET AJAX&lt;/em&gt;&lt;/p&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;p&gt;&lt;em&gt;Comment utiliser les Windows Live Tools for Visual Studio&lt;/em&gt;&lt;/p&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;p&gt;&lt;em&gt;Comment construire une application Silverlight 2 qui fait appel aux services &amp;#224; distance, &amp;#224; l&amp;#8217;inter-liaison des donn&amp;#233;es (data binding), &amp;#224; la cr&amp;#233;ation de gabarits et styles (templating &amp;amp; styling) et cela, aussi bien avec Visual Studio 2008 qu&amp;#8217;avec Expression Blend 2.5&lt;/em&gt;&lt;/p&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;p&gt;&lt;em&gt;Windows Presentation Foundation et le .NET Client Profile&lt;/em&gt;&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;Inscriptions: &lt;a title="http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032390486&amp;amp;%3bCulture=fr-BE" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032390486&amp;amp;%3bCulture=fr-BE"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032390486&amp;amp;%3bCulture=fr-BE&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=157" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Web+browsers/default.aspx">Web browsers</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/.NET/default.aspx">.NET</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/WPF/default.aspx">WPF</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>TechDays '08 à Luxembourg: 30 septembre 2008 à Mondorf-les-Bains, Luxembourg et c'est gratuit!</title><link>http://didierdanse.net/blogs/dev/archive/2008/09/06/techdays-08-224-luxembourg-30-septembre-2008-224-mondorf-les-bains-luxembourg-et-c-est-gratuit.aspx</link><pubDate>Sat, 06 Sep 2008 11:20:00 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:152</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=152</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=152</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/09/06/techdays-08-224-luxembourg-30-septembre-2008-224-mondorf-les-bains-luxembourg-et-c-est-gratuit.aspx#comments</comments><description>&lt;p&gt;C&amp;#39;est au tour du Luxembourg d&amp;#39;héberger les TechDays &amp;#39;08. Avec 6 sessions pour les développeurs et 3 orientées IT Pro, ces TechDays ont pour but d&amp;#39;avoir un large aperçu des nouveautés de .NET et du Service Pack associé ainsi que sur la virtualisation, un des sujets de discussion les plus en vogue actuellement.&lt;/p&gt;
&lt;p&gt;C&amp;#39;est gratuit et le nombre de places est limité donc inscrivez-vous au plus vite!&lt;/p&gt;
&lt;p&gt;Agenda complet: &lt;a title="http://www.microsoft.com/belux/techdays08/agenda.aspx" href="http://www.microsoft.com/belux/techdays08/agenda.aspx"&gt;http://www.microsoft.com/belux/techdays08/agenda.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Inscription: &lt;a title="http://www.microsoft.com/belux/techdays08/inscrivez.aspx" href="http://www.microsoft.com/belux/techdays08/inscrivez.aspx"&gt;http://www.microsoft.com/belux/techdays08/inscrivez.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=152" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/TechDays/default.aspx">TechDays</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Microsoft+Belux/default.aspx">Microsoft Belux</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Evenement/default.aspx">Evenement</category></item><item><title>ASP.NET AJAX: Tous mes UpdatePanels sont raffraîchis lors d'un retour serveur alors que seul un UpdatePanel ne devrait l'être, pourquoi?</title><link>http://didierdanse.net/blogs/dev/archive/2008/09/02/asp-net-ajax-tous-mes-updatepanels-sont-raffra-238-chis-lors-d-un-retour-serveur-alors-que-seul-un-updatepanel-ne-devrait-l-234-tre-pourquoi.aspx</link><pubDate>Tue, 02 Sep 2008 18:47:32 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:151</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=151</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=151</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/09/02/asp-net-ajax-tous-mes-updatepanels-sont-raffra-238-chis-lors-d-un-retour-serveur-alors-que-seul-un-updatepanel-ne-devrait-l-234-tre-pourquoi.aspx#comments</comments><description>&lt;p&gt;Dans la continuit&amp;#233; des questions / r&amp;#233;ponses sur ASP.NET AJAX (1.0 ou 3.5, peu importe dans ce cas), voici la r&amp;#233;ponse &amp;#224; une petite question relativement simple mais que tout d&amp;#233;veloppeur d&amp;#233;butant avec ASP.NET AJAX rencontrera certainement.&lt;/p&gt;  &lt;p&gt;Imaginons une page contenant les &amp;#233;l&amp;#233;ments suivants:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Deux update panels; &lt;/li&gt;    &lt;li&gt;Un timer; &lt;/li&gt;    &lt;li&gt;Un bouton et un label dans chacun des update panels. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ceci donne une page de ce type (sans aucun chichi et ne respectant aucunement les conventions de nommage habituelles): &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/ASP.NETAJAXUntimerattachun_11EA9/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="244" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/ASP.NETAJAXUntimerattachun_11EA9/image_thumb.png" width="189" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Un seul trigger est associ&amp;#233; &amp;#224; l&amp;#39;UpdatePanel1. Celui-ci a pour but de r&amp;#233;aliser un retour serveur asynchrone lorsque Timer1 lance l&amp;#39;&amp;#233;v&amp;#232;nement &lt;em&gt;Tick&lt;/em&gt;, ce qui donne:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;UpdatePanel1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:AsyncPostBackTrigger&lt;/span&gt; &lt;span class="attr"&gt;ControlID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Timer1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;EventName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Tick&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;        
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Label1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Button&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1_Click&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Aucun trigger n&amp;#39;est associ&amp;#233; &amp;#224; l&amp;#39;UpdatePanel2 et pourtant, les deux updatepanels sont rafraichis lors de ce fameux retour asynchrone. &lt;/p&gt;

&lt;p&gt;Ceci se justifie par le fait que, &lt;strong&gt;par d&amp;#233;faut, la propri&amp;#233;t&amp;#233; &lt;em&gt;UpdateMode&lt;/em&gt; des objets &lt;em&gt;UpdatePanel&lt;/em&gt; a la valeur &lt;em&gt;Always&lt;/em&gt;&lt;/strong&gt;. Ainsi, quelque soit l&amp;#39;&amp;#233;l&amp;#233;ment qui a effectu&amp;#233; le retour serveur, les &lt;em&gt;UpdatePanel&lt;/em&gt; sont raffra&amp;#238;chis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Afin de mieux contr&amp;#244;ler le rechargement des UpdatePanel, il suffit de mettre la propri&amp;#233;t&amp;#233; &lt;em&gt;UpdateMode&lt;/em&gt; &amp;#224; la valeur &lt;em&gt;Conditional&lt;/em&gt;&lt;/strong&gt;. D&amp;#232;s lors seul les retours serveurs effectu&amp;#233;s et pr&amp;#233;sents dans les triggers auront pour effet de recharger le contenu de notre UpdatePanel.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;UpdatePanel1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot; &lt;strong&gt;UpdateMode=&amp;quot;Conditional&amp;quot;&lt;/strong&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:AsyncPostBackTrigger&lt;/span&gt; &lt;span class="attr"&gt;ControlID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Timer1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;EventName&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Tick&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Triggers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;        
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Label1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Label&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Button&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button1_Click&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Button&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ContentTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:UpdatePanel&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Pour rappel, vous pouvez retrouver une &lt;a title="http://didierdanse.net/files/folders/articles/entry58.aspx" href="http://didierdanse.net/files/folders/articles/entry58.aspx"&gt;Introduction &amp;#224; ASP.NET AJAX&lt;/a&gt; sur ce m&amp;#234;me site. &lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=151" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>ASP.NET AJAX 1.0: Sys is undefined, pourquoi et comment le corriger?</title><link>http://didierdanse.net/blogs/dev/archive/2008/09/01/asp-net-ajax-1-0-sys-is-undefined-pourquoi-et-comment-le-corriger.aspx</link><pubDate>Mon, 01 Sep 2008 19:19:14 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:148</guid><dc:creator>Didier Danse</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=148</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=148</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/09/01/asp-net-ajax-1-0-sys-is-undefined-pourquoi-et-comment-le-corriger.aspx#comments</comments><description>&lt;p&gt;Certes, c&amp;#39;est loin d&amp;#39;être un problème récent mais étant récemment retombé sur le problème, je me décide enfin à écrire la solution... Je sais que cela servira au moins à une personne :-)&lt;/p&gt; &lt;p&gt;Après avoir installé les extensions ASP.NET AJAX 1.0 sur un poste dans le but de réaliser des développements avec Visual Studio 2008, on pourrait s&amp;#39;attendre à trouver le template de projet &amp;quot;ASP.NET AJAX Enabled Web Application&amp;quot;. Il n&amp;#39;en est pourtant rien comme en atteste la capture d&amp;#39;écran suivante:&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/ASP.0Sysisundefinedpourquoietcommentleco_12143/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="264" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/ASP.0Sysisundefinedpourquoietcommentleco_12143/image_thumb.png" width="634" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Puisque nous n&amp;#39;avons guère le choix, choisissons le template ASP.NET Web Application. Rapidement, nous pouvons remarquer que les composants &amp;quot;de base&amp;quot; de ASP.NET AJAX Extensions sont bel et bien présents dans la toolbox. Parfait! &lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/ASP.0Sysisundefinedpourquoietcommentleco_12143/image_4.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="228" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/ASP.0Sysisundefinedpourquoietcommentleco_12143/image_thumb_1.png" width="205" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Il ne nous reste donc plus à les utiliser à l&amp;#39;aide d&amp;#39;un drag and drop, tout ce qu&amp;#39;il y a de plus classique. &lt;/p&gt; &lt;p&gt;Si on observe le web.config (le plus simple étant de garder le web.config ouvert dans Visual Studio, vous serez immédiatement averti des changements), on peut voir que quelques lignes ont été ajoutées dans le web.config:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;assemblies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;assembly&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Extensions, Version=1.0.61025.0, &lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;assemblies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Dès lors, on pourrait se dire que tout va bien et que Visual Studio a fait le travail pour nous. Mais après exécuté la page, l&amp;#39;erreur &lt;em&gt;&amp;#39;Sys&amp;#39; is undefined&lt;/em&gt; apparaît dans le browser.&lt;/p&gt;
&lt;p&gt;Pourquoi? La réponse est simple... On retrouve&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;/ScriptResource.axd?d=xyz&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;/ScriptResource.axd?d=abc&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;dans la source HTML. Or si on vérifie ce que génére ce fichier, on remarque que celui-ci n&amp;#39;est pas disponible. Cela est dû au fait que le serveur ne sait pas comment interpréter les .axd. C&amp;#39;est pour cela qu&amp;#39;il est nécessaire d&amp;#39;ajouter les lignes suivantes dans le web.config et ce entre &lt;em&gt;&amp;lt;system.web&amp;gt;&lt;/em&gt; et &lt;em&gt;&amp;lt;/system.web&amp;gt;&lt;/em&gt;:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpHandlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;GET&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ScriptResource.axd&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Handlers.ScriptResourceHandler&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="attr"&gt;validate&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;httpHandlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Désormais, il ne nous reste plus qu&amp;#39;à laisser exploser notre imagination.&lt;/p&gt;
&lt;p&gt;Le web.config minimal:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;1.0&amp;quot;&lt;/span&gt;?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;appSettings&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;connectionStrings&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.web&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpHandlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;verb&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;GET&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;path&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;ScriptResource.axd&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Handlers.ScriptResourceHandler&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span class="attr"&gt;validate&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;httpHandlers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt; &lt;span class="attr"&gt;debug&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;false&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;assemblies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;assembly&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;assemblies&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;        
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;authentication&lt;/span&gt; &lt;span class="attr"&gt;mode&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Windows&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.web&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Notez que vous pouvez trouver un web.config complet à l&amp;#39;adresse suivante: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025&lt;/em&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=148" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>SharePoint: Introduction à la Content Migration API</title><link>http://didierdanse.net/blogs/dev/archive/2008/08/10/sharepoint-introduction-224-la-content-migration-api.aspx</link><pubDate>Sun, 10 Aug 2008 09:48:38 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:135</guid><dc:creator>Didier Danse</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=135</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=135</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/08/10/sharepoint-introduction-224-la-content-migration-api.aspx#comments</comments><description>&lt;p&gt;La Content Migration API, voilà une librairie importante de SharePoint et qui s&amp;#39;avère souvent trop peu connue. Comprendre cette API permet de réaliser des opérations de transfert de données d&amp;#39;un environnement SharePoint à un autre et de ce manière efficace. C&amp;#39;est pour cette raison que j&amp;#39;ai décidé de publier un ensemble de posts à ce sujet afin de montrer ce qu&amp;#39;il est possible de faire grâce à cette librairie. Mais commençons par le début et voyons ce qu&amp;#39;est cette API.  &lt;p&gt;&lt;strong&gt;Qu&amp;#39;est ce que la content migration API?&lt;/strong&gt;  &lt;p&gt;La Content Migration API permet d&amp;#39;effecuter le &lt;strong&gt;transfert de données d&amp;#39;un site SharePoint&lt;/strong&gt;. Ce transfert peut s&amp;#39;effectuer entre des environnements connectés (éventuellement le même environnement) ou entre des énvironnements totalement déconnectés.&amp;nbsp; &lt;p&gt;Qu&amp;#39;entend-t-on par le terme &lt;em&gt;données&lt;/em&gt;? En fait tout (ou presque) ce qu&amp;#39;il est possible de définir via l&amp;#39;interface web de SharePoint, à savoir:  &lt;ul&gt; &lt;li&gt;Listes  &lt;li&gt;Eléments de liste (lists items) &lt;li&gt;Web Parts  &lt;li&gt;Page customisées &lt;li&gt;Pages maîtres (master pages) &lt;li&gt;Types de contenu (content types) &lt;li&gt;CSS  &lt;li&gt;Page layouts  &lt;li&gt;Colonnes de sites  &lt;li&gt;Images référencées dans des pages &lt;li&gt;... &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Ne font pas partie des données qui peuvent être transportées par la Content Migration API et définis via l&amp;#39;interface web de SharePoint:  &lt;ul&gt; &lt;li&gt;Alertes  &lt;li&gt;Statuts Check in/Check out  &lt;li&gt;Eléments de la corbeille  &lt;li&gt;Statuts des Workflows  &lt;li&gt;Logs des modifications&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;On notera également que les éléments suivants ne sont également pas pris en compte lors de l&amp;#39;export:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Features  &lt;li&gt;Workflows personnalisés  &lt;li&gt;Solutions&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;La raison pour laquelle les features et les workflows personnalisés ne peuvent être exportés est qu&amp;#39;ils se trouvent dans le système de fichiers et non pas dans la base de données comme pour les autres éléments. Si on devait résumer ceci, on dirait que tout ce qui résulte d&amp;#39;un développement ou d&amp;#39;une customisation (ajouter une liste n&amp;#39;est pas pour moi une customisation ;-) ), et donc déployable via les &lt;strong&gt;solutions, doivent être déployés en suivant les principes courants&lt;/strong&gt;, en utilisant par exemple STSADM.&lt;/p&gt; &lt;p&gt;Le transfert de données d&amp;#39;un site à l&amp;#39;autre se fait en trois étapes:  &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Export&lt;/strong&gt;: Choix des éléments à exporter et génération d&amp;#39;un ensemble de fichiers contenant les données;  &lt;li&gt;&lt;strong&gt;Transport&lt;/strong&gt;: Les fichiers générés doivent être placés afin d&amp;#39;être accessibles lors d&amp;#39;opérations vers l&amp;#39;environnement cible. Le transport peut se faire par n&amp;#39;importe quel moyen (FTP, clé USB, ...) puisqu&amp;#39;il s&amp;#39;agit de simples fichiers;  &lt;li&gt;&lt;strong&gt;Import&lt;/strong&gt;: Sur base des fichiers générés et mis à disposition, l&amp;#39;import peut se faire dans l&amp;#39;environnement cible.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Les fichiers intermédiaires étant basés sur &lt;strong&gt;une structure de fichiers connue&lt;/strong&gt; (voir &lt;a href="http://msdn.microsoft.com/library/bb249989.aspx"&gt;Content Migration XML Schema Reference&lt;/a&gt;), il est possible de générer ces fichiers de données depuis une application tierce et ce afin de faciliter l&amp;#39;import d&amp;#39;information provenant d&amp;#39;un autre système d&amp;#39;information.  &lt;p&gt;&lt;strong&gt;Par quelles fonctionnalités SharePoint utilise-t-il la C.M. API?&lt;/strong&gt;  &lt;p&gt;Il ne s&amp;#39;agit pas d&amp;#39;une liste exhaustive loin de là mais un aperçu des fonctionnalités utilisées régulièrement et pour lesquelles on ne soupçone pas toujours l&amp;#39;utilisation de l&amp;#39;API.  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Copier / Déplacer depuis les menus de gestion du contenu et de structure&lt;/em&gt;&lt;/strong&gt;&amp;nbsp; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_2.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="102" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;  &lt;p&gt;Pour faire simple, quelles sont les opérations qui sont effectuées lorsque l&amp;#39;on veut copier un site? On pourrait penser qu&amp;#39;il y a une boucle pour réaliser une copie du site source vers le site cible (la copie devant se faire dans le même site collection, le site source et le site destination sont d&amp;#39;office connectés entre eux) mais il n&amp;#39;en est rien. Il s&amp;#39;agit de la suite d&amp;#39;actions désormais si bien connue:  &lt;ul&gt; &lt;li&gt;Export: vers le système de fichiers local;  &lt;li&gt;(Transport: non nécessaire dans ce cas puisque la cible et la destination se trouve sur le même serveur; ) &lt;li&gt;Import: vers un nouveau site SharePoint.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;On notera que lors de la copie d&amp;#39;un site vers un autre à l&amp;#39;aide de cette fonctionnalité, la sécurité du site n&amp;#39;est pas dupliquée. Nous comprendrons pourquoi très bientôt. N&amp;#39;oubliez donc pas de réappliquer vos règles de sécurité.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;STSADM&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;STSADM, que certains nomment &lt;em&gt;Super admin tool&lt;/em&gt;, est un outil utilisable en ligne de commande fourni avec SharePoint qui permet d&amp;#39;effectuer un ensemble considérable d&amp;#39;opérations autour de SharePoint. Si vous ne connaissez pas encore les possibilités (et les limites) de cet outil, foncez sur votre moteur de recherche préféré et faites une petite recherche à ce sujet... en attendant que je poste à ce sujet :))  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_6.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="484" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_thumb_2.png" width="504" border="0" /&gt;&lt;/a&gt;  &lt;p&gt;Comme à l&amp;#39;accoutumée, comment peut-on copier des données d&amp;#39;un site à l&amp;#39;autre à l&amp;#39;aide de STSADM? En suivant nos éternelles trois étapes bien entendu:  &lt;ul&gt; &lt;li&gt;Export: du site source vers un fichier (compressé dans l&amp;#39;exemple ci-dessous)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;em&gt;stsadm -o export -url &lt;/em&gt;&lt;a href="http://monserveur"&gt;&lt;em&gt;&lt;a href="http://monserveur/monsitesource"&gt;http://monserveur&lt;/em&gt;&lt;/a&gt;&lt;em&gt;/monsitesource&lt;/a&gt; -filename &amp;quot;c:\un repertoire\content.cmp&amp;quot;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Un rapide aperçu des options liées à la sélection des éléments à exporter de cette fonctionnalité de STSADM:&lt;/p&gt; &lt;p&gt;&lt;em&gt;stsadm.exe -o export&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -url &amp;lt;URL du site à exporter&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -filename &amp;lt;Chemin vers le fichier ou le répertoire intermédiaire&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-includeusersecurity]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-versions &amp;lt;1-4&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 - Dernière version majeure des fichiers et des list items (valeur par défaut)&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; 2 - Version courante, qu&amp;#39;elle soit mineure ou majeure&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; 3 - Dernière version majeure et dernière version mineure des fichiers et des lists items&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; 4 - Toutes les versions]&lt;/em&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Au vu des propriétés, on se rend rapidement compte qu&amp;#39;il n&amp;#39;est possible d&amp;#39;exporter que des sites complets.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Transport des fichiers: A vous de choisir ce qui vous convient le mieux. Tous les chemins mènent au serveur de destination ;-);  &lt;li&gt;Import: d&amp;#39;un fichier (compressé dans l&amp;#39;exemple ci-dessous) vers le site cible&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;em&gt;stsadm -o import -url &lt;a href="http://monserveur/monsitecible"&gt;http://monserveur/monsitecible&lt;/a&gt; -filename &amp;quot;c:\un repertoire\content.cmp&amp;quot;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Un petit tour du côté des options liées à la manière d&amp;#39;importer les éléments:&lt;/p&gt; &lt;p&gt;&lt;em&gt;stsadm.exe -o import&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -url &amp;lt;URL du site dans lequel importer les données&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -filename &amp;lt;Chemin vers le fichier ou le répertoire intermédiaire&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-includeusersecurity]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-updateversions &amp;lt;1-3&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 - Ajoute de nouvelles versions au fichier (valeur par défaut)&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; 2 - Remplace le fichier et ses versions (suppression avant insertion)&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; 3 - Ignore le fichier si il est déjà existant sur la destination]&lt;/em&gt;&lt;/p&gt; &lt;p&gt;On notera qu&amp;#39;il existe d&amp;#39;autres propriétés/options liées aux fichiers générés (compression ou non, ...) qui sont certes importantes mais sont moins parlantes que celles qui nous intéresse ici. &lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Web Services&lt;/strong&gt;&lt;/em&gt;  &lt;p&gt;Le WebService &lt;em&gt;Sites&lt;/em&gt;, disponible à l&amp;#39;adresse &lt;a href="http://&amp;lt;Site&amp;gt;/_vti_bin/Sites.asmx"&gt;http://&amp;lt;Site&amp;gt;/_vti_bin/Sites.asmx&lt;/a&gt;, permet d&amp;#39;effectuer des exports et des imports de données. Comme pour &lt;em&gt;STSADM&lt;/em&gt;, le niveau le plus bas qu&amp;#39;il est possible d&amp;#39;exporter est le site. &lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_8.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="142" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_thumb_3.png" width="237" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_10.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="142" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_thumb_4.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Gestion de contenu web&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Le Web Content Management, que l&amp;#39;on retrouve au travers des &lt;em&gt;publishing sites&lt;/em&gt; suit la même procédure en ce qui concerne la publication d&amp;#39;information sur un site particulier. La source et la destination étant directement connecté, il n&amp;#39;y a ainsi que les opérations d&amp;#39;export et d&amp;#39;import qui sont effectuées. L&amp;#39;export se fait sur un&amp;nbsp; sous-ensemble de données, à savoir uniquement celles-qui doivent être publiées. Cette opération de filtre des données à exporter se nomme l&amp;#39;export sélectif. &lt;p&gt;&lt;strong&gt;Pourquoi utiliser la Content Migration API?&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Export sélectif&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;Que ce soit les web services ou STSADM, il n&amp;#39;est pas possible, nous l&amp;#39;avons vu, de réaliser un export de données d&amp;#39;un niveau plus bas que le site. Ce n&amp;#39;est cependant qu&amp;#39;une limite de l&amp;#39;outil et non pas de la Content Migration API puisque dans le cas du Web Content Management, l&amp;#39;API est utilisée pour exporter un sous-ensemble de données. Ainsi, seuls les éléments de liste qui ont été ajoutés ou mis à jour depuis une date donnée sont exportées afin de permettre une réplication d&amp;#39;un site à un autre.  &lt;p&gt;Utilisant la même API, nous pouvons effectuer la même opération et sélectionner les éléments à exporter. Nous verrons dans un prochain post que cela peut avoir plusieurs utilités. Bien entendu, les premiers intérêts que l&amp;#39;on peut trouver sont la publication d&amp;#39;éléments et la réplication de données d&amp;#39;un site vers un autre.  &lt;p&gt;Dans un prochain post, nous verrons comment effectuer un export sélectif du point de vue développement. Nous nous rendrons rapidement compte qu&amp;#39;il est aisé d&amp;#39;implémenter sa propre logique pour la sélection des données.  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Maintien des identifiants des éléments d&amp;#39;un site&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;Dans certains cas, il est important de préserver les identifiants d&amp;#39;un site à l&amp;#39;autre. On retrouve cette nécessité lors d&amp;#39;un export sélectif (pour savoir quel élément mettre à jour) mais aussi si un webpart référence une liste via son identifiant, il est nécessaire de retrouver le même identifiant pour cette dite liste.  &lt;p&gt;Nous verrons que dans certains cas, le maintien des identifiants n&amp;#39;est pas nécessaire et que pire que ça, cela peut poser parfois des problèmes. Effectivement, toutes les données sont stockées en base de données. Le GUID (identifiant unique) est utilisé comme clé primaire au sein de cette base. Le principe d&amp;#39;une clé primaire est d&amp;#39;interdire les doublons. Or que se passe-t-il si vous importez un package vers deux sites différents en maintenant les identifiants? Vous dupliquez les identifiants.  &lt;p&gt;&lt;strong&gt;Les packages de migration de données&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;De quoi est composé un package de migration de données?&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;Pour qu&amp;#39;une migration de données soit effective, il est nécessaire que tous les éléments nécessaires soient présents sur le serveur source. Un package de migration de données contient donc, en plus des données proprement dit, un ensemble de fichiers dans lesquels sont stockés les informations sur les éléments requis ou encore ceux à importer (groupes et utilisateurs pour la partie sécurité par exemple).  &lt;p&gt;Succintement, le package est formé des fichiers suivants:  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_4.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="187" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_thumb_1.png" width="381" border="0" /&gt;&lt;/a&gt;  &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Manifest.xml: &lt;/strong&gt;est le fichier de base lors de toute migration;  &lt;li&gt;&lt;strong&gt;Requirements.xml:&lt;/strong&gt; contient la liste des éléments requis par le contenu à migrer. La vérification de l&amp;#39;existence de ces ressources se fait préalablement à toute migration de données;  &lt;li&gt;&lt;strong&gt;ExportSettings.xml:&lt;/strong&gt; contient la logique utilisée lors de l&amp;#39;export pour vérifier que tous les éléments attendus dans le package soient présents;  &lt;li&gt;&lt;strong&gt;RootObjectMap.xml:&lt;/strong&gt; contient l&amp;#39;élément de plus haut niveau à importer;  &lt;li&gt;&lt;strong&gt;SystemData.xml: &lt;/strong&gt;utilisé principalement lorsque l&amp;#39;on maintient les identifiants, il contient l&amp;#39;ensemble des éléments installés et requis sur le serveur. En cas d&amp;#39;absence de l&amp;#39;un ou plusieurs de ces éléments arrêtent l&amp;#39;import; &lt;li&gt;&lt;strong&gt;UserGroup.xml:&lt;/strong&gt; contient les informations provenant du site d&amp;#39;origine concernant les utilisateurs et les groupes SharePoint utilisés dans le site;  &lt;li&gt;&lt;strong&gt;LookupListMap.xml:&lt;/strong&gt; contient les liens entre items liés (c&amp;#39;est à dire utilisés dans les champs lookup);  &lt;li&gt;&lt;strong&gt;ViewFormsList.xml:&lt;/strong&gt; contient la liste des Web Parts en indiquant si il s&amp;#39;agit de vues ou de formulaires;  &lt;li&gt;&lt;strong&gt;fichiers .dat:&lt;/strong&gt; contiennent les données proprements dites.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Il existe un outil très utile pour parcourir le Content Migration Package Explorer: &lt;a title="http://blogs.msdn.com/ronalus/archive/2007/10/02/content-migration-package-explorer.aspx" href="http://blogs.msdn.com/ronalus/archive/2007/10/02/content-migration-package-explorer.aspx"&gt;http://blogs.msdn.com/ronalus/archive/2007/10/02/content-migration-package-explorer.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_12.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="181" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointIntroductionlaContentMigration_D5B6/image_thumb_5.png" width="490" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Sous quel format peut être le package?&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;Deux possibilités s&amp;#39;offrent à nous pour stocker l&amp;#39;ensemble des fichiers précédemment cité:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Fichier Compressé: théoriquement avec une extension .cmp, il s&amp;#39;agit de l&amp;#39;option par défaut lors d&amp;#39;un export;  &lt;li&gt;Répertoire: les fichiers sont situés dans un répertoire unique. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Le premier a l&amp;#39;avantage de rassembler tous les fichiers nécessaires au sein d&amp;#39;un seul et même fichier, qui plus est, compressé. L&amp;#39;inconvénient est que cette compression est couteuse en temps et nécessite de disposer sur disque de deux fois la taille du package. Notez que pour de gros packages, une erreur peut survenir durant la compression, arrêtant l&amp;#39;export en cours.&lt;/p&gt; &lt;p&gt;Dans le second cas, il est important de faire attention à bien transférer tous les fichiers d&amp;#39;un environnement source vers l&amp;#39;environnement cible.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Peut-on modifier un package de migration de données?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Bien entendu! Comme nous l&amp;#39;avons vu précédemment la référence au sujet de la syntaxe de ces fichiers est fournie. Nous verrons d&amp;#39;ailleurs comment utiliser la Content Migration API (et surtout comment modifier les fichiers intermédiaire) il est possible d&amp;#39;effectuer des opérations qui ne sont pas possibles Out-of-the-box, par exemple passer d&amp;#39;un template en français à un template en anglais et inversément. &lt;/p&gt; &lt;p&gt;Pour faciliter les modifications, il est conseillé d&amp;#39;utiliser des fichiers non compressés.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Désormais, nous avons une connaissance suffisante de la Content Migration API afin de passer à la réalisation d&amp;#39;exemples concrets.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Dans un prochain post, je présenterai au travers d&amp;#39;un poste le développement d&amp;#39;une application permettant d&amp;#39;effectuer des exports ainsi que des imports de sites ou d&amp;#39;un ensemble quelconque d&amp;#39;informations provenant de sites SharePoint. Nous verrons également comment utiliser la C.M. API pour permettre de changer le parent d&amp;#39;un élément exporté. &lt;/p&gt; &lt;p&gt;Plus tard, nous verrons également comment réaliser des exports incrémentals de données, utilisés lors de la réplication par exemple.&lt;/p&gt; &lt;p&gt;Enfin, après voir vu comment développer des outils utilisant ces fonctionnalités nous verrons comment les utiliser à bon escient pour réaliser des opérations qui pourraient s&amp;#39;avèrer complexes sans ceux-ci.&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=135" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item><item><title>Sql Server: Impossibilité de passer d'une version à l'autre ou de le désinstaller. Que faire?</title><link>http://didierdanse.net/blogs/dev/archive/2008/07/31/sql-server-impossibilit-233-de-passer-d-une-version-224-l-autre-ou-de-le-d-233-sinstaller-que-faire.aspx</link><pubDate>Thu, 31 Jul 2008 12:17:11 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:134</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=134</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=134</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/07/31/sql-server-impossibilit-233-de-passer-d-une-version-224-l-autre-ou-de-le-d-233-sinstaller-que-faire.aspx#comments</comments><description>&lt;p&gt;L&amp;#39;installation de Sql Server, que ce soit dans le but d&amp;#39;installer SharePoint ou non, est une opération relativement simple et relativement rares sont les problèmes qui peuvent survenir. &lt;/p&gt; &lt;p&gt;L&amp;#39;ajout de composants, la mise à jour de notre Sql Server ou encore la désinstallation d&amp;#39;un Sql Server (et oui... cela est parfois nécessaire à des fins de nettoyage avant réutilisation d&amp;#39;un serveur) n&amp;#39;amène que peu de difficultées supplémentaires. Il &lt;em&gt;suffit&lt;/em&gt; de suivre les indications (en utilisant l&amp;#39;argument SKUUPGRADE=1 comme indiqué dans l&amp;#39;article &lt;a href="http://didierdanse.net/blogs/dev/archive/2008/07/29/sql-server-passer-de-la-version-express-224-une-version-standard-enterprise.aspx" target="_blank"&gt;Sql Server: Passer de la version Express à une version Standard/Enterprise&lt;/a&gt;) et d&amp;#39;être patient (oui je sais, je me répète).&lt;/p&gt; &lt;p&gt;Cependant, j&amp;#39;ai malheureusement rencontré un problème pas ou peu documenté. L&amp;#39;erreur obtenue est:&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;The setup has encountered an unexpected error while Setting Internal Properties. The error is: Fatal error during installation.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;En l&amp;#39;absence d&amp;#39;un message d&amp;#39;erreur explicite, une petite lecture des logs permet de découvrir un peu plus de détails:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;GetServiceUserGroup failed for OFFICESERVERS, 5 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Error Code: 0x80070534 (1332) &lt;br /&gt;Windows Error Text: No mapping between account names and security IDs was done.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Après lecture et recherche dans l&amp;#39;historique de l&amp;#39;installation de la machine, il s&amp;#39;avère que l&amp;#39;erreur est dûe au fait que Sql Server utilise des comptes locaux temporaires dont le SID n&amp;#39;existe plus suite à un changement de nom de la machine (Voir &lt;a href="http://didierdanse.net/blogs/dev/archive/2008/05/13/renommer-un-serveur-et-un-sharepoint-install-233-en-standalone.aspx" target="_blank"&gt;Renommer un serveur et un SharePoint installé en standalone&lt;/a&gt;). &lt;/p&gt; &lt;p&gt;Effectivement, l&amp;#39;outil NewSID a effectué la mise à jour de tous les SID qu&amp;#39;il a pu identifier. &lt;/p&gt; &lt;p&gt;Pour rappel, le &amp;quot;Computer Security Identifier&amp;quot; ou &amp;quot;Identificateur de Sécurité&amp;quot; permet d&amp;#39;identifier un ordinateur (plus précisément le système d&amp;#39;exploitation qui y est installé). Ce SID est créé et assigné dès les premières phases de l&amp;#39;installation du Windows. &lt;/p&gt; &lt;p&gt;Pour la même raison, cette erreur peut survenir après avoir placé une machine dans un réseau d&amp;#39;entreprise.&lt;/p&gt; &lt;p&gt;La correction est simple pour peu qu&amp;#39;on ait accès à la base de registre. Pour cela, dans le menu &lt;em&gt;Démarrer&lt;/em&gt; (&lt;em&gt;Start&lt;/em&gt;), dans la zone &lt;em&gt;Exécuter&lt;/em&gt; (&lt;em&gt;Run&lt;/em&gt;) indiquez &lt;em&gt;regedit&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Identifiez les hierarchies suivantes en remplacant X par 1, 2, ... n où n est le nombre d&amp;#39;instances déjà présentes:&lt;em&gt; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\Setup&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Deux clés de registres s&amp;#39;y trouvent :&lt;/p&gt; &lt;ul&gt; &lt;li&gt;SQLGroup  &lt;li&gt;FTSGroup &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerImpossibilitderaliserunupgradeo_137C1/groups%20dans%20registry%20pour%20install%20sql%20server_4.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="409" alt="groups dans registry pour install sql server" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerImpossibilitderaliserunupgradeo_137C1/groups%20dans%20registry%20pour%20install%20sql%20server_thumb_1.jpg" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Supprimer ces clés de registre permet de réinitialiser les comptes.&lt;/p&gt; &lt;p&gt;Redémarrez le programme d&amp;#39;installation ou de mise à jour de Sql Server. Vous ne devriez désormais plus recevoir cette erreur.&lt;/p&gt; &lt;p&gt;Selon mes recherches sur Internet, il semble que deux autres groupes peuvent être présents dans les clés de registre et nécessitent une suppression:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;AGTGroup  &lt;li&gt;ASGroup &lt;/li&gt;&lt;/ul&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=134" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sql+Server/default.aspx">Sql Server</category></item><item><title>Sql Server: Passer de la version Express à une version Standard/Enterprise</title><link>http://didierdanse.net/blogs/dev/archive/2008/07/29/sql-server-passer-de-la-version-express-224-une-version-standard-enterprise.aspx</link><pubDate>Tue, 29 Jul 2008 20:12:30 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:133</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=133</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=133</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/07/29/sql-server-passer-de-la-version-express-224-une-version-standard-enterprise.aspx#comments</comments><description>&lt;p&gt;Sql Server Express convient parfaitement pour une utilisation lors de développement ou de projets persos. Certaines limitations peuvent cependant être insuffisantes pour des développements nécessitant plus de composants ou d&amp;#39;espace de stockage.&lt;/p&gt; &lt;p&gt;Réalisant principalement des développements principalement dans un environnement SharePoint, ce post a pour origine un besoin lié à SharePoint qui, par défaut, inclut l&amp;#39;installation d&amp;#39;un Sql Server express. Cependant, ceci s&amp;#39;applique à d&amp;#39;autres environnements basés sur Sql Server.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Mettre à jour Sql Server&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Après avoir mis le cd ou le DVD contenant la version cible de Sql Server, lancez, en ligne de commande, le programme d&amp;#39;installation à l&amp;#39;aide de &lt;em&gt;setup.exe SKUUPGRADE=1&lt;/em&gt; (respectez la casse)&lt;/p&gt; &lt;p&gt;Après avoir accepté les termes de la licence, un peu de patiente et quelques clics à la sauce &lt;em&gt;Next Next Next&lt;/em&gt;, vous pouvez enfin choisir les composants de Sql Server que vous souhaitez mettre à jour. &lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="447" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_thumb.png" width="490" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Comme indiqué, cliquez sur &lt;em&gt;Advanced&lt;/em&gt; pour accéder à plus d&amp;#39;options. Bien entendu, vous n&amp;#39;êtes aucunement obligé de passer par cette étape mais cela est tout de même fortement conseillé afin d&amp;#39;être certain d&amp;#39;installer tout ce que vous souhaitez et uniquement ce que vous souhaitez.&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_6.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="446" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_thumb_2.png" width="490" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Sélectionnez le nom de l&amp;#39;instance (la mise à jour se fait instance par instance. Il vous faudra donc réaliser l&amp;#39;opération plusieurs fois si vous avez plusieurs instances à mettre à jour). Dans le cas de SharePoint, vous pouvez indiquer &amp;quot;OFFICESERVERS&amp;quot; dans &lt;em&gt;Named instance&lt;/em&gt; ou encore passer par le bouton &lt;em&gt;Installed instances&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/InstalledInstances_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="446" alt="InstalledInstances" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/InstalledInstances_thumb.jpg" width="489" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;Sélectionnez les éléments que vous souhaitez mettre à jour ou installer pour l&amp;#39;instance sélectionnée. &lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/existingcomponents_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="445" alt="existingcomponents" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/existingcomponents_thumb.jpg" width="490" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Pensez à cocher les composants à mettre à jour...&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_8.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="446" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_thumb_3.png" width="490" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Il suffit dès lors de suivre les instructions et d&amp;#39;être patient.&lt;/p&gt; &lt;p&gt;Les écrans suivants dépenderont des composants mis à jour ou installés. Par exemple, l&amp;#39;écran pour le compte à utiliser pour Reporting Services:&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_10.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="222" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_thumb_4.png" width="244" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_12.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="223" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_thumb_5.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Ensuite un rapport des actions qui vont être effectuées apparait:&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_14.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="222" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SqlServerPasserdelaversionExpressunevers_10D4A/image_thumb_6.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;A nouveau, un seul mot d&amp;#39;ordre après avoir cliqué sur &lt;em&gt;Install&lt;/em&gt; : la patience! &lt;/p&gt; &lt;p&gt;Attention, si vous avez renommé votre machine entre la première installation et la mise à jour d&amp;#39;une instance, il est nécessaire d&amp;#39;effectuer quelques petites opérations comme indiqué dans le post suivant: à suivre...&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=133" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sql+Server/default.aspx">Sql Server</category></item><item><title>IE Dev Toolbar ne fonctionne pas, que faire?</title><link>http://didierdanse.net/blogs/dev/archive/2008/06/18/ie-dev-toolbar-ne-fonctionne-pas-que-faire.aspx</link><pubDate>Wed, 18 Jun 2008 19:01:12 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:132</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=132</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=132</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/06/18/ie-dev-toolbar-ne-fonctionne-pas-que-faire.aspx#comments</comments><description>&lt;p&gt;Bien que depuis peu il soit possible de réaliser des développements SharePoint sous Vista, souvent, les développeurs utilisent une machine virtuelle contenant Windows Server 2003 et l&amp;#39;Internet Explorer installé par défaut. &lt;/p&gt; &lt;p&gt;L&amp;#39;extension IE Dev Toolbar peut être utile dès lors que l&amp;#39;on manipule le DOM de la page web (encore plus utile si on couple l&amp;#39;utilisation de cette extension avec l&amp;#39;utilisation du debugger JavaScript de Visual Studio 2008). Mais après avoir installé cette extension et réinstallé Internet Explorer, nous sommes rapidement heureux de pouvoir démarrer cette toolbar. Et là, surprise puisque rien n&amp;#39;est présent dans ce toolbar. &lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/IEDevToolbarnefonctionnepasquefaire_7652/image_4.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="211" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/IEDevToolbarnefonctionnepasquefaire_7652/image_thumb_1.png" width="222" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Effectivement, l&amp;#39;extension n&amp;#39;est, par défaut, pas autorisée à accéder au contenu de la page web. Effectivement, l&amp;#39;accès à Internet depuis un serveur n&amp;#39;est pas conseillée. Les options sont ainsi sélectionnées en ce sens.&lt;/p&gt; &lt;p&gt;Pour autoriser l&amp;#39;accès à la page web par IE Dev Toolbar, rendez-vous dans les options Internet de Internet Explorer. Ensuite cocher l&amp;#39;option &amp;quot;Enable third-party browser extensions&amp;quot;&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/IEDevToolbarnefonctionnepasquefaire_7652/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="170" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/IEDevToolbarnefonctionnepasquefaire_7652/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Redémarrez Internet Explorer et là... bingo!&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/IEDevToolbarnefonctionnepasquefaire_7652/image_6.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="172" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/IEDevToolbarnefonctionnepasquefaire_7652/image_thumb_2.png" width="239" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Sur des O.S. &amp;quot;clients&amp;quot; (Windows XP, Windows Vista, ...), aucun souci puisque cette option est, à l&amp;#39;installation, activée.&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=132" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Web+browsers/default.aspx">Web browsers</category></item><item><title>Nintex Reporting 2008</title><link>http://didierdanse.net/blogs/dev/archive/2008/06/02/nintex-reporting-2008-est-disponible.aspx</link><pubDate>Mon, 02 Jun 2008 19:00:05 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:128</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=128</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=128</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/06/02/nintex-reporting-2008-est-disponible.aspx#comments</comments><description>&lt;p&gt;Partiellement basé sur Silverlight (et oui, Silverlight dans SharePoint devient une habitude), ces graphiques ont l&amp;#39;avantage de permettre d&amp;#39;effectuer du drill-down (visualiser le détail à partir de données consolidées). Au vu de la démo online, cela semble un produit avec beaucoup d&amp;#39;avenir. &lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;img alt="Rich Interactive Charts" src="http://www.nintex.com/i/New/Charts.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;img alt="Time Intelligence" src="http://www.nintex.com/i/New/trendchart.jpg" /&gt;&lt;/p&gt; &lt;p&gt;Nintex n&amp;#39;en est pas à son coup d&amp;#39;essai dans la mise en place de composants pour SharePoint puisqu&amp;#39;ils sont déjà les concepteurs de Nintex Workflow 2007 (&lt;a title="http://www.nintex.com/Nproducts/Workflow.aspx" href="http://www.nintex.com/Nproducts/Workflow.aspx"&gt;http://www.nintex.com/Nproducts/Workflow.aspx&lt;/a&gt;). Ce composant s&amp;#39;intégre parfaitement avec SharePoint et permet de dessiner des workflows aisément au sein de l&amp;#39;interface web. &lt;/p&gt; &lt;p&gt;Plus d&amp;#39;infos sur la page du constructeur: &lt;a title="http://www.nintex.com/Nproducts/Reporting.aspx" href="http://www.nintex.com/Nproducts/Reporting.aspx"&gt;http://www.nintex.com/Nproducts/Reporting.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=128" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item><item><title>SharePoint: Quand les Service Packs nous créent des soucis... On les résoud!</title><link>http://didierdanse.net/blogs/dev/archive/2008/05/17/sharepoint-quand-les-service-packs-nous-cr-233-ent-des-soucis-on-les-r-233-soud.aspx</link><pubDate>Sat, 17 May 2008 22:35:02 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:127</guid><dc:creator>Didier Danse</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=127</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=127</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/05/17/sharepoint-quand-les-service-packs-nous-cr-233-ent-des-soucis-on-les-r-233-soud.aspx#comments</comments><description>&lt;p&gt;Bien que les Service Packs soient disponibles et même, pour la plupart des gens, installés depuis plusieurs mois (pour SharePoint) voire même plusieurs années (pour Windows Server 2003), ce souci peut toujours survenir actuellement lorsque l&amp;#39;on met en place une infrastructure à base de Windows Server 2003, avec ou sans SharePoint.&lt;/p&gt; &lt;p&gt;Dans l&amp;#39;event log applicatif, on peut ainsi retrouver deux erreurs récurentes: la 10016 et la 10021. Notez cependant que la &amp;quot;procédure&amp;quot; ci-dessous est valable pour toutes les erreurs liées aux permissions d&amp;#39;activation des composants DCOM.&lt;/p&gt; &lt;p&gt;Pour corriger cela, rendez-vous dans les Component Services en passant par le &lt;em&gt;panneau de configuration&lt;/em&gt; puis &lt;em&gt;outils d&amp;#39;administration&lt;/em&gt; pour enfin arriver dans les &lt;em&gt;services components&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_4.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="144" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb_1.png" width="267" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_6.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="85" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb_2.png" width="241" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Une fois ces étapes passées, un petit tour dans la &lt;em&gt;configuration DCOM&lt;/em&gt; nous permet de modifier les propriétés de ces composants.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Correction de l&amp;#39;erreur 10021&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;A la lecture du CLSID ({61738644-F196-11D0-9953-00C04FD919C1} - voir le paragraphe &lt;em&gt;Connaitre le composant portant un CLSID particulier&lt;/em&gt;), on remarque qu&amp;#39;il s&amp;#39;agit du composant IIS WAMREG admin Service&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_8.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="329" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb_3.png" width="468" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Après un clic droit, vérifiez les droits concernant l&amp;#39;activation du composant.&lt;/p&gt; &lt;p&gt;Dans le cas du IIS WAMREG admin Service, c&amp;#39;est l&amp;#39;utilisateur &lt;em&gt;NETWORK SERVICE&lt;/em&gt; qui nécessite d&amp;#39;avoir les droits pour activer et lancer localement le composant.&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_14.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="363" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb_6.png" width="327" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_16.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="398" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb_7.png" width="331" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Correction de l&amp;#39;erreur 10016&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Comme indiqué précédemment, la procédure est valable quelque soit le composant DCOM pour lequel les droits nécessaires ne sont pas présents. C&amp;#39;est le cas avec le composant dont le CLSID est {3D42CCB1-4665-4620-92A3-478F47389230} qui est l&amp;#39;ID du composant &lt;em&gt;OSearch.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_20.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="272" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb_9.png" width="412" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Dans ce cas, les utilisateurs &lt;em&gt;WSS_WPG&lt;/em&gt; et &lt;em&gt;WSS_ADMIN_WPG&lt;/em&gt; doivent recevoir les droits d&amp;#39;activation et de lancement.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Connaitre le composant portant un CLSID particulier&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Dans la boîte de dialogue &amp;quot;Exécuter&amp;quot; (menu &lt;em&gt;Démarrer&lt;/em&gt; &amp;gt; &lt;em&gt;Exécuter&lt;/em&gt;), entrez &lt;em&gt;regedit&lt;/em&gt; (éditeur de la base de registre). A la suite de cela, faites une recherche à l&amp;#39;aide de CTRL + F.&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_10.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="246" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb.png" width="206" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Collez le CLSID dans la boite de recherche.&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_18.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="186" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb_5.png" width="408" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Vous obtenez ainsi rapidement le nom du composant qui pose problème.&lt;/p&gt; &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_22.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="48" alt="image" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/SharePointQuandleSP1nou.Etbienonlesrsoud_97EB/image_thumb_8.png" width="473" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Si vous n&amp;#39;avez pas accès, pour une raison ou une autre, à la base de registre, il vous faudra parcourir les propriétés de chacun des composants afin de trouver l&amp;#39;ID correspondant.&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=127" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Renommer un serveur et un SharePoint installé en standalone</title><link>http://didierdanse.net/blogs/dev/archive/2008/05/13/renommer-un-serveur-et-un-sharepoint-install-233-en-standalone.aspx</link><pubDate>Tue, 13 May 2008 19:54:00 GMT</pubDate><guid isPermaLink="false">30b92a27-2adf-4ac9-9a55-506f6f2b3817:125</guid><dc:creator>Didier Danse</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/rsscomments.aspx?PostID=125</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://didierdanse.net/blogs/dev/commentapi.aspx?PostID=125</wfw:comment><comments>http://didierdanse.net/blogs/dev/archive/2008/05/13/renommer-un-serveur-et-un-sharepoint-install-233-en-standalone.aspx#comments</comments><description>&lt;p&gt;Il est fréquent lors de tests ou du dévelopement de réaliser une image que l&amp;#39;on duplique. Si l&amp;#39;on connecte entre elles les différentes machines dupliquées, cela peut avoir des conséquences sur l&amp;#39;utilisation (conflit de noms, ...). Il convient dès lors de modifier le nom des machines afin d&amp;#39;éviter ceci.&lt;/p&gt;
&lt;p&gt;Modifier le nom d&amp;#39;un serveur peut être une opération complexe si l&amp;#39;on n&amp;#39;effectue l&amp;#39;ensemble des opérations nécessaires dans un ordre donné. Cette opération s&amp;#39;avère d&amp;#39;autant plus complexe qu&amp;#39;il héberge un SharePoint, que ce soit un WSS ou MOSS. Certaines opérations sont liées au serveur lui-même, tandis que d&amp;#39;autres sont liées au SharePoint installé sur celui-ci. Enfin, dans le cadre d&amp;#39;une duplication basée sur des machines virtuelles, d&amp;#39;autres opérations font alors leur apparition. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modifier le nom du serveur 
&lt;li&gt;Modifier le SID &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Enfin, l&amp;#39;opération complémentaire à effectuer pour permettre au SharePoint est la suivante:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modifier le nom indiqué du serveur stocké dans SharePoint 
&lt;li&gt;Modifier le mapping des urls&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Enfin, concernant le fait de dupliquer des machines virtuelles, il reste donc une étape nécessaire:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modifier l&amp;#39;adresse MAC de la carte réseau simulée&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Voyons dès lors l&amp;#39;ordre dans lequel ces étapes doivent être réalisées.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modifier le mapping des urls &lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Le mapping des urls permet à SharePoint de savoir ce à quoi l&amp;#39;on fait référence. Ainsi, il est nécessaire de lui préciser les urls utilisées pour faire appel à notre SharePoint.&lt;/em&gt; &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Pour cela, rendez-vous dans la central administration &lt;/p&gt;
&lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb47_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="345" alt="image_thumb47" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb47_thumb.png" width="608" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;puis cliquez successivement sur les liens &lt;em&gt;Operations&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb1_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="217" alt="image_thumb1" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb1_thumb.png" width="222" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;et &lt;em&gt;Alternate access mappings&lt;/em&gt;. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb11_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="310" alt="image_thumb11" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb11_thumb.png" width="639" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pourquoi cette opération? Tout simplement parce que SharePoint va recevoir une adresse qui sera &lt;a href="http://monnomactuel/"&gt;http://monnomactuel/&lt;/a&gt; par exemple alors que d&amp;#39;ici la fin de la procédure ce serveur s&amp;#39;appellera &lt;a href="http://monnouveaunom/"&gt;http://monnouveaunom&lt;/a&gt;. Il ne nous reste plus qu&amp;#39;à cliquer sur chacun des liens afin de modifier les urls indiquées.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb51_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="254" alt="image_thumb51" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb51_thumb.png" width="528" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb40_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="150" alt="image_thumb40" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb40_thumb.png" width="648" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Renommage du server SharePoint&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Certaines références à notre ancien nom existent toujours au sein de notre SharePoint. Il est donc nécessaire de spécifier qu&amp;#39;il est nécessaire de modifier ce nom partout au sein de SharePoint.&lt;/p&gt;
&lt;p&gt;Pour réaliser l&amp;#39;opération, rendez-vous dans le répertoire c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN (le répertoire par défaut pour STSADM)&lt;/p&gt;
&lt;p&gt;En ligne de commande, effectuer la commande suivante: &lt;/p&gt;&lt;pre class="csharpcode"&gt;stsadm -o renameserver -newservername monnouveaunom -oldservername monnomactuel&lt;/pre&gt;
&lt;p&gt;Il est nécessaire, comme pour toutes les opérations de stsadm, d&amp;#39;être membre du groupe administrateurs local.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Changement du SID ainsi que le nom de la machine&lt;/strong&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Qu&amp;#39;est ce que le SID? Le &amp;quot;Computer Security Identifier&amp;quot; ou &amp;quot;Identificateur de Sécurité&amp;quot; permet d&amp;#39;identifier un ordinateur (plus précisément le système d&amp;#39;exploitation qui y est installé). Ce SID est créé et assigné dès les premières phases de l&amp;#39;installation du Windows. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pourquoi est-il nécessaire de modifier le SID lors d&amp;#39;un clonage d&amp;#39;un Windows, quel qu&amp;#39;il soit? C&amp;#39;est sur base du SID qu&amp;#39;un serveur est identifié dans un domaine. Par ailleurs, lorsque des utilisateurs locaux sont créés, ils se verront assignés un ID basé sur le SID (il s&amp;#39;agit de la concaténation du SID et d&amp;#39;un &amp;quot;compteur&amp;quot;). Sachant que la sécurité est basée sur les SID des comptes locaux, on comprend aisément l&amp;#39;impact que peut avoir cette duplication des SID.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;L&amp;#39;outil recommandé pour ce type d&amp;#39;opération se nomme &lt;em&gt;NewSID&lt;/em&gt;, développé par sysinternals et repris par Microsoft. Nous en sommes actuellement à la version 4.10. Il est gratuit et disponible à l&amp;#39;adresse suivante: &lt;a title="Télécharger NewSID (68 Ko)" href="http://download.sysinternals.com/Files/NewSid.zip"&gt;&lt;a title="Télécharger NewSID (68 Ko)" href="http://download.sysinternals.com/Files/NewSid.zip"&gt;&lt;/a&gt;&lt;/a&gt;&lt;a title="Télécharger NewSID (68 Ko)" href="http://download.sysinternals.com/Files/NewSid.zip"&gt;&lt;a title="http://download.sysinternals.com/Files/NewSid.zip" href="http://download.sysinternals.com/Files/NewSid.zip"&gt;http://download.sysinternals.com/Files/NewSid.zip&lt;/a&gt; (68 Ko)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cet outil permet de plus de modifier le nom d&amp;#39;un serveur, opération également nécessaire dans le cas d&amp;#39;un renommage, le tout en une seule opération.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Renommer le serveur est nécessaire afin d&amp;#39;y accéder. Effectivement, lorsque l&amp;#39;on fait appel à &lt;a href="http://monnouveaunom/"&gt;http://monnouveaunom&lt;/a&gt;, le serveur cherche de quelle machine on parle. Ainsi, il faut modifier les noms Netbios et DNS qui ont cet objectif.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Un petit tour rapide des écrans proposés par NewSID... On se rend rapidement compte qu&amp;#39;il suffit de suivre les étapes et d&amp;#39;indiquer le nouveau nom de la machine.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="166" alt="image_thumb" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb1%5B1%5D_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="164" alt="image_thumb1[1]" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb1%5B1%5D_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb2_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="165" alt="image_thumb2" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb2_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb4_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="162" alt="image_thumb4" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb4_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb3_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="166" alt="image_thumb3" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb3_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image26_thumb_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="165" alt="image26_thumb" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image26_thumb_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Automatiquement, Windows redémarre afin d&amp;#39;être certain que toutes les noms soient cohérents et qu&amp;#39;à aucun moment l&amp;#39;ancien nom ne figure dans le cache.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modification des credentials&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;En ligne de commande, effectuer la commande suivante: &lt;/p&gt;&lt;pre class="csharpcode"&gt;stsadm -o updatefarmcredentials -userlogin monuser -password monpassword&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb43_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="108" alt="image_thumb43" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb43_thumb.png" width="676" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Redémarrage du serveur IIS&lt;/strong&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;IIS, pour des raisons de performances, place toute une série d&amp;#39;éléments en cache. Pour supprimer le cache, le plus simple, vu que nous sommes dans une période durant laquelle notre SharePoint risque de toute façon de ne pas être disponible, il suffit de redémarrer le serveur.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Toujours en ligne de commande, tapez &lt;/p&gt;&lt;pre class="csharpcode"&gt;iisreset /noforce&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb45_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="86" alt="image_thumb45" src="http://didierdanse.net/blogs/dev/WindowsLiveWriter/RenommerunserveuretunSharePointinstallen_13387/image_thumb45_thumb.png" width="676" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Modifier l&amp;#39;adresse MAC&lt;/strong&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;L&amp;#39;adresse MAC est une adresse &amp;quot;en dur&amp;quot; indiquée dans chaque carte réseau. Cette carte permet d&amp;#39;identifier la carte réseau utilisée.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;L&amp;#39;utilisation d&amp;#39;une machine ne retire en rien les principes basés sur l&amp;#39;adresse MAC. Cependant, vu qu&amp;#39;il s&amp;#39;agit d&amp;#39;une machine virtuelle (et ne disposant pas de carte réseau physique), celle-ci partage la connexion de la machine hôte et utilise une adresse MAC également virtuelle. Cette adresse est définie dans le fichier de configuration de la machine virtuelle (le fichier .vmc). Ainsi, dans ce fichier, il faut modifier le &amp;lt;ethernet_card_address&amp;gt;.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ethernet_card_address&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;bytes&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;0003FF36E666&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ethernet_card_address&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;On y est!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nous voici donc avec un serveur SharePoint renommé et fonctionnant parfaitement.&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=125" width="1" height="1"&gt;</description><category domain="http://didierdanse.net/blogs/dev/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://didierdanse.net/blogs/dev/archive/tags/Windows+Server/default.aspx">Windows Server</category></item></channel></rss>