<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://didierdanse.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">didierdanse.net - Les news Developpement</title><subtitle type="html" /><id>http://didierdanse.net/blogs/dev/atom.aspx</id><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/default.aspx" /><link rel="self" type="application/atom+xml" href="http://didierdanse.net/blogs/dev/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2009-05-24T05:21:04Z</updated><entry><title>Le publipostage, comment ça marche?</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2011/03/16/le-publipostage-comment-231-a-marche.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2011/03/16/le-publipostage-comment-231-a-marche.aspx</id><published>2011-03-16T20:43:18Z</published><updated>2011-03-16T20:43:18Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Le publipostage, c’est quoi?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Selon Wikipedia, le publipostage peut se définir sous la forme suivante:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Le publipostage ou mailing, est la technique de marketing qui consiste à envoyer en nombre des informations ou prospectus publicitaires, par voie postale ou électronique, pour assurer la promotion d’un produit, d’un service ou d’une enseigne. Cette forme de promotion est fréquente dans la vente par correspondance.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Si l’on reprend la définition et que l’on généralise celle-ci, le publipostage permet de générer et/ou d’envoyer du courrier à une liste prédéfinie de personnes. &lt;/p&gt;  &lt;p&gt;Nous allons voir comment cette fonctionnalité, qui est bien souvent sous-utilisée, peut permettre de personnaliser des emails, ce que ce soit à des fins marketing ou non.&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;(S’il vous plait, si le but est de faire du marketing, oubliez mon adresse email &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://didierdanse.net/blogs/dev/wlEmoticon-smile_547A320B.png" /&gt; )&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Que faut-il pour faire du publipostage?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Bien peu de choses… Il faut simplement Word. La version présentée ci-dessous est la version 2010 mais il est possible de trouver des fonctionnalités similaires dans les versions précédentes de Word.&lt;/p&gt;  &lt;p&gt;Un tab au sein du ruban permet de gérer et de générer tout ce qui est relatif au publipostage.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_4D3AA9F9.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_129F5E8B.png" width="1007" height="227" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Comment envoyer du courrier en mode publipostage?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Vu que le but du publipostage est d’envoyer de l’information à une liste prédéfinie de contacts, il est nécessaire soit de créer cette liste, soit d’en utiliser une existante.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_4ED32802.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_49446BC4.png" width="335" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dans la capture précédente, le choix s’est porté sur la création d’une nouvelle liste. Dès lors, il est possible d’ajouter de l’information dans la table ci-dessous.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_1059EC2A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_66864B69.png" width="575" height="377" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette liste, qui n’est pas stockée dans le fichier Word, pourra être réutilisée. De ce fait, Word nous propose d’enregistrer cette liste dans un fichier .mdb. Les habitués reconnaitront l’extension qui était utilisée par Access dans les versions précédentes. C’est en effet une base Access qui contient ces informations. Cependant, on notera qu’il n’est pas nécessaire d’avoir Access installé sur son poste pour pouvoir bénéficier de ces fonctionnalités. En effet, Word est capable de lire les données présentes dans la base de données directement.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_47337EC9.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_1E281E26.png" width="687" height="487" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Maintenant, nous avons défini la liste des destinataires. Il ne nous reste plus qu’à créer le template qui sera utilisé comme base pour la génération des emails et/ou des documents. Pour cela, il est nécessaire d’ajouter des champs au sein du document. Cette liste se base sur la liste des champs utilisés pour les contacts.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_7D145FE4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_713ECD18.png" width="514" height="388" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bien entendu, il existe des cas où il est nécessaire de différencier le texte en fonction de critères divers (par exemple pour indiquer “Cher Monsieur” ou “Chère Madame” en fonction du sexe de la personne concernée).&amp;#160; Ceci est également possible en ajoutant des règles qui se base sur les champs dont nous venons de parler.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_65D56D41.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_2DC35391.png" width="601" height="352" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enfin, il ne reste plus qu’à visualiser le résultat. Il est donc possible de voir le rendu pour l’un ou l’autre destinataire. Ceci est très pratique pour vérifier que les cas divers sont bel et bien gérés.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_169486BB.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_7146CAE7.png" width="687" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Le document est bel et bien formaté? Il ne reste plus qu’à l’imprimer ou à envoyer les emails correspondants. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_63F703D1.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_2629D07B.png" width="265" height="177" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cependant il nous manque quelque chose de primordial pour envoyer des emails: les adresses emails… Celles-ci ont été définies dans la liste de contacts. Il ne reste dès lors plus qu’à indiquer quel est le champs qui contient cette information.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_00902D4D.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_1E9A4D0F.png" width="333" height="278" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Et voilà, vous venez d’envoyer du courrier à toute une série de documents à des personnes (bien entendu, si il s’agit de courrier papier, il vous faudra le déposer à la poste, Word ne pourra pas le faire pour vous, c’est dommage j’en conviens).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;La sélection des contacts&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Revenons à la notion de destinataire. La source de données peut être de différents types: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;base de données de contacts &lt;/li&gt;    &lt;li&gt;tableau Excel &lt;/li&gt;    &lt;li&gt;Lien ODBC (cela ne vous parle pas, c’est normal! Il s’agit d’un lien vers une base de données de tout type) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;On peut voir cela dans les écrans ci-dessous:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image1_0E9AE27E.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image1_thumb_3DD8DFE3.png" width="354" height="265" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://didierdanse.net/blogs/dev/image18_61A16BA3.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image18_thumb_6BC21E9C.png" width="384" height="291" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Si la sélection de la source de contacts se porte sur Outlook, dans ce cas, il faudra indiquer la liste de contacts à utiliser.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_7F9B6598.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_68AC6E4F.png" width="527" height="276" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enfin, il ne vous reste plus qu’à sélectionner les gens de la liste qui sont ciblés par votre courrier.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_1CB0E7D6.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_5C46E2FC.png" width="643" height="483" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;____&lt;/p&gt;  &lt;p&gt;Didier Danse – &lt;a href="http://didierdanse.net"&gt;http://didierdanse.net&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Microsoft Most Valuable Professional SharePoint    &lt;br /&gt;&lt;a href="http://www.devoteam.lu"&gt;Devoteam Luxembourg&lt;/a&gt; – &lt;a href="http://www.devoteam.com"&gt;Devoteam Group&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=431" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="Office" scheme="http://didierdanse.net/blogs/dev/archive/tags/Office/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="Utilisateur final" scheme="http://didierdanse.net/blogs/dev/archive/tags/Utilisateur+final/default.aspx" /></entry><entry><title>SharePoint 2010: Ferme, application web, collection de sites, sites et sous-sites, comment s’y retrouver?</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2011/03/12/sharepoint-2010-ferme-application-web-collection-de-sites-sites-et-sous-sites-comment-s-y-retrouver.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2011/03/12/sharepoint-2010-ferme-application-web-collection-de-sites-sites-et-sous-sites-comment-s-y-retrouver.aspx</id><published>2011-03-12T17:07:23Z</published><updated>2011-03-12T17:07:23Z</updated><content type="html">&lt;p&gt;&lt;em&gt;&lt;font size="2"&gt;Post original: &lt;/font&gt;&lt;/em&gt;&lt;a href="http://didierdanse.net/blogs/dev/archive/2009/05/24/sharepoint-ferme-application-web-collection-de-sites-sites-et-sous-sites-comment-s-y-retrouver.aspx" target="_blank"&gt;&lt;em&gt;&lt;font size="2"&gt;SharePoint: Ferme, application web, collection de sites, sites et sous-sites, comment s&amp;#39;y retrouver?&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Par l’aspect évolutif de SharePoint, toute personne amenée à réaliser l’architecture d’une infrastructure SharePoint se retrouve rapidement confrontée à une question importante: Que mettre à quel endroit? Il n’existe pas une réponse ferme et définitive. Par contre, chaque élément cité à des propriétés, des possibilités et des objectifs différents. Reste ainsi à utiliser les bons containers pour le bon contenu…&lt;/p&gt;  &lt;p&gt;Il existe différents types de &lt;em&gt;containers&lt;/em&gt; dont les principaux sont:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font color="#0000ff"&gt;1a) Ferme SharePoint (&lt;em&gt;SPFarm&lt;/em&gt; d’un point de vue développeur) &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;1b) Applications de service&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;2) Application web (&lt;em&gt;SPWebApplication&lt;/em&gt;)&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;3) Collection de sites (&lt;em&gt;SPSite&lt;/em&gt;)&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#800000"&gt;4) Sites (&lt;em&gt;SPWeb&lt;/em&gt;) &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#800000"&gt;4) Sous-sites (&lt;em&gt;SPWeb&lt;/em&gt;)&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Principalement la hiérarchie autour de ces quatre premiers éléments (en bleu) répond à des besoins techniques alors que les deux suivants permettent d’organiser de manière purement logique les sites et les données comprises dans ces sites. &lt;/p&gt;  &lt;p&gt;Passons rapidement en revue de quoi est composer une infrastructure SharePoint. Pour plus de détails, rien de tel qu’une petite recherche sur Internet!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;1.A) Ferme SharePoint&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Il s’agit simplement de l’ensemble des serveurs front-end, applicatifs (Shared services), d’indexation ou encore hébergeant les bases de données. Une ferme pourra être déployée à un endroit particulier en fonction des objectifs de cette ferme comme, par exemple, permettre l’accès depuis Internet.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_2CF0EAD9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_25C18894.png" width="682" height="398" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;u&gt;1.B) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Applications de service&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Il s’agit d’un ensemble de services au niveau de la ferme ce qui sous-entend &lt;i&gt;qui est partagé entre différentes applications web et donc sites collections&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;Parmi ces services on retrouve entre autres les notions de:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Profil (propriétés du profil, paramètres pour la synchronisation) &lt;/li&gt;    &lt;li&gt;Recherche (scopes, mappings de propriétés, sources de contenu, …) &lt;/li&gt;    &lt;li&gt;Excel Services &lt;/li&gt;    &lt;li&gt;Business Connectivity Services&lt;/li&gt;    &lt;li&gt;… &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_36BDBA05.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_24A150AB.png" width="644" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Chaque service peut être indépendamment activé sur des serveurs différents. Cette paramétrisation permet dès lors de rendre l’infrastructure SharePoint la plus efficace possible en tenant compte des aspects de sécurité et de disponibilité.&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;u&gt;2) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Application web&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Rien d’exceptionnel pour les IT ou les développeurs qui ont déjà pu mettre en place des sites ASP.NET, PHP ou utilisant toute autre technologie puisqu’il s’agit d’une application web tout ce qu’il y a de plus classique avec entre autres:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Un site dans IIS &lt;/li&gt;    &lt;li&gt;Une url particulière &lt;/li&gt;    &lt;li&gt;Une méthode d’authentification liée à cette application &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_536F05BF.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_7596EB78.png" width="648" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On notera également que, dans un contexte SharePoint, une application web aura sa propre base de données (tout du moins lorsqu’il s’agit d’une nouvelle web application puisqu’il est possible d’&lt;em&gt;étendre&lt;/em&gt; des applications webs pour donner des paramètres différents permettant ainsi de partager des données au travers de différentes applications web qui proposent des techniques d’authentification différentes).&lt;/p&gt;  &lt;p&gt;Par ailleurs, SharePoint étant basé sur ASP.NET, le code et les mises à jour du web.config (avec le &lt;em&gt;SafeControls&lt;/em&gt; pour les initiés) se fera de manière globale pour les différentes collections de sites qu’exposent notre application web. On pourra ainsi utiliser ces différentes web applications pour empêcher certaines opérations (par exemple utiliser un web part) selon la population visée (Intranet, Extranet, Internet, partenaires, …). &lt;/p&gt;  &lt;p&gt;Enfin, une application web est toujours associée à un Shared Services Provider.&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;u&gt;3) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Collection de sites&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Une collection de sites est un container virtuel (en ce sens où l’on ne retrouve aucun fichier sur disque comme pour l’application web) et sa définition est stockée dans une base de données de configuration.&lt;/p&gt;  &lt;p&gt;D’un point de vue IT, la collection de sites a plusieurs avantages dont les principaux sont:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Quota de données &lt;/li&gt;    &lt;li&gt;Facilité de maintenance (le backup / restore se fait par défaut au niveau de cette collection) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_147174B3.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_1C95747D.png" width="644" height="275" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Si l’on se place au niveau de la gestion du contenu, on notera que pour chaque collection de site est défini un administrateur. Cet administrateur peut ainsi gérer tout ce qui se trouve dans le site collections, à savoir:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Corbeille de second niveau &lt;/li&gt;    &lt;li&gt;Recherche customisée par site-collection &lt;/li&gt;    &lt;li&gt;Utilisateurs pour une collection de sites &lt;/li&gt;    &lt;li&gt;… &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enfin, l’utilisation des collections de sites permet de cataloguer des éléments customisés en fonction de la population qui accèdera à du contenu de cette collection de sites (par département par exemple):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Page maître &lt;/li&gt;    &lt;li&gt;Images &lt;/li&gt;    &lt;li&gt;Templates de sites et de listes &lt;/li&gt;    &lt;li&gt;Web parts &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Une collection de sites possède toujours un site racine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_58255D70.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_30DAEE6E.png" width="644" height="302" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;strong&gt;&lt;u&gt;4) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Sites et sous-sites&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Jusque là, nous avons beaucoup parler des ITs, un peu des développeurs mais peu des utilisateurs finaux pourtant moteurs pour tout ce qui est contenu au sein de notre SharePoint.&lt;/p&gt;  &lt;p&gt;A ce niveau nous pourrions ne parler de &lt;em&gt;gestion de contenu&lt;/em&gt;. Selon les droits dont ils disposent, les utilisateurs peuvent:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Créer des sites &lt;/li&gt;    &lt;li&gt;Créer des listes &lt;/li&gt;    &lt;li&gt;Attacher des workflows à des listes &lt;/li&gt;    &lt;li&gt;Assigner des permissions &lt;/li&gt;    &lt;li&gt;Restaurer des données supprimées &lt;/li&gt;    &lt;li&gt;Et bien d’autres choses encore! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A ce niveau, seul le bon sens et les règles définies par votre entreprise ont de l’importance. Peu importe où se trouve les données, elles seront physiquement stockées au même endroit. Cela ne veut pas pour autant dire que l’on doit placer nos données partout et n’importe comment. Profitez des possibilités de SharePoint comme l’héritage des permissions pour gérer de manière efficace vos sites.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_6934DA1D.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_550B97C7.png" width="631" height="291" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Il est techniquement possible d’ajouter du code ou des outils de reporting aidant à la gestion mais il ne faut pas négliger la formation des utilisateurs qui recevront les droits de créer des sites.&lt;/p&gt;  &lt;p&gt;Un exemple de hiérarchie de sites:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font color="#0000ff"&gt;Ferme &lt;/font&gt;      &lt;ul&gt;       &lt;li&gt;&lt;font color="#0000ff"&gt;Application Web 1 &lt;/font&gt;          &lt;ul&gt;           &lt;li&gt;&lt;font color="#0000ff"&gt;Collection de sites A (avec le site d’entrée)&lt;/font&gt;               &lt;ul&gt;               &lt;li&gt;&lt;font color="#800000"&gt;Site A.1 &lt;/font&gt;                  &lt;ul&gt;                   &lt;li&gt;&lt;font color="#800000"&gt;Site A.1.1 &lt;/font&gt;&lt;/li&gt;                    &lt;li&gt;&lt;font color="#800000"&gt;Site A.1.2 &lt;/font&gt;&lt;/li&gt;                 &lt;/ul&gt;               &lt;/li&gt;                &lt;li&gt;&lt;font color="#800000"&gt;Site A.2 &lt;/font&gt;                  &lt;ul&gt;                   &lt;li&gt;                     &lt;p&gt;&lt;font color="#0000ff"&gt;Collection de sites B (avec le site d’entrée)&lt;/font&gt; &lt;/p&gt;                      &lt;ul&gt;                       &lt;li&gt;&lt;font color="#800000"&gt;Site B.1 &lt;/font&gt;                          &lt;ul&gt;                           &lt;li&gt;&lt;font color="#800000"&gt;Site B.1.1 &lt;/font&gt;                              &lt;ul&gt;                               &lt;li&gt;&lt;font color="#800000"&gt;Site B.1.1.1 &lt;/font&gt;&lt;/li&gt;                             &lt;/ul&gt;                           &lt;/li&gt;                         &lt;/ul&gt;                       &lt;/li&gt;                        &lt;li&gt;&lt;font color="#800000"&gt;Site B.2&lt;/font&gt; &lt;/li&gt;                     &lt;/ul&gt;                   &lt;/li&gt;                 &lt;/ul&gt;               &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;&lt;font color="#0000ff"&gt;Application Web 2 &lt;/font&gt;          &lt;ul&gt;           &lt;li&gt;&lt;font color="#0000ff"&gt;Collection de sites C (avec le site d’entrée)&lt;/font&gt;               &lt;ul&gt;               &lt;li&gt;&lt;font color="#800000"&gt;[…] &lt;/font&gt;&lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;            &lt;li&gt;&lt;font color="#0000ff"&gt;Collection de sites D (avec le site d’entrée)&lt;/font&gt;               &lt;ul&gt;               &lt;li&gt;&lt;font color="#800000"&gt;[…] &lt;/font&gt;&lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A vrai dire, il serait encore possible de rédiger sur ce sujet durant des heures mais je pense que ce post permettra déjà à bien des gens d’avoir un aperçu du pourquoi il est important de se renseigner préalablement à la mise en place de votre SharePoint.&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=425" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="Architecture" scheme="http://didierdanse.net/blogs/dev/archive/tags/Architecture/default.aspx" /><category term="2010" scheme="http://didierdanse.net/blogs/dev/archive/tags/2010/default.aspx" /></entry><entry><title>Session SharePoint: Utiliser des données externes au sein de SharePoint 2010 à l'aide de Business Connectivity Services ce 23/02/2011, de 18:30 à 20:30</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2011/02/18/session-sharepoint-utiliser-des-donn-233-es-externes-au-sein-de-sharepoint-2010-224-l-aide-de-business-connectivity-services-ce-23-02-2011-de-18-30-224-20-30.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2011/02/18/session-sharepoint-utiliser-des-donn-233-es-externes-au-sein-de-sharepoint-2010-224-l-aide-de-business-connectivity-services-ce-23-02-2011-de-18-30-224-20-30.aspx</id><published>2011-02-18T15:11:04Z</published><updated>2011-02-18T15:11:04Z</updated><content type="html">&lt;p&gt;SharePoint devient, au fil du temps, le point d&amp;#39;entrée pour accéder à l&amp;#39;ensemble des données de l&amp;#39;entreprise de par les fonctionnalités avancées proposées par cette solution.&lt;/p&gt;  &lt;p&gt;Cette session, destinée aux développeurs et architectes SharePoint, a pour but de montrer comment utiliser des données présentes dans des systèmes d&amp;#39;information externes à SharePoint, de manière totalement intégrée. Nous verrons comment utiliser différents types de sources de données .NET et WCF.&lt;/p&gt;  &lt;p&gt;N’hésitez pas à nous rejoindre pour discuter de ce topic.&lt;/p&gt;  &lt;p&gt;Infos et inscriptions: &lt;a title="http://www.dotnethub.be/DnhEventManager/EventDetail.aspx?eventId=15" href="http://www.dotnethub.be/DnhEventManager/EventDetail.aspx?eventId=15"&gt;http://www.dotnethub.be/DnhEventManager/EventDetail.aspx?eventId=15&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=418" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="Evenement" scheme="http://didierdanse.net/blogs/dev/archive/tags/Evenement/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="2010" scheme="http://didierdanse.net/blogs/dev/archive/tags/2010/default.aspx" /><category term="BCS" scheme="http://didierdanse.net/blogs/dev/archive/tags/BCS/default.aspx" /></entry><entry><title>MVP pour la sixième année consécutive</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2011/01/02/mvp-pour-la-sixi-232-me-ann-233-e-cons-233-cutive.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2011/01/02/mvp-pour-la-sixi-232-me-ann-233-e-cons-233-cutive.aspx</id><published>2011-01-02T18:15:20Z</published><updated>2011-01-02T18:15:20Z</updated><content type="html">&lt;p&gt;Le titre est plus qu’explicite: Je suis à nouveau MVP sur la plateforme SharePoint et cela pour la seconde année consécutive. Auparavant, j’ai 4 ans sur la technologie ASP.NET m’ont permis d’avoir une bonne connaissance de cette technologie.&lt;/p&gt;  &lt;p&gt;En tout cas, voilà une bonne nouvelle! Cette année 2011 démarre plutôt bien et mes objectifs pour cette année sont clairs: promouvoir SharePoint, la notion de Workflow, le document management et toutes les autres fonctionnalités trop peu exploitées! &lt;/p&gt;  &lt;p&gt;La collaboration entre Devoteam Guidance Luxembourg (&lt;a href="http://www.devoteam.lu"&gt;www.devoteam.lu&lt;/a&gt;) et moi-même me permettra par ailleurs d’atteindre ces objectifs. J’en profite par ailleurs pour indiquer que nous sommes à la recherche d’une nouvelle recrue pour compléter l’équipe SharePoint. Des infos? Contactez-moi!&lt;/p&gt;  &lt;p&gt;En espérant écrire un post similaire l’année prochaine &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://didierdanse.net/blogs/dev/wlEmoticon-smile_57263CC4.png" /&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=398" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="MVP" scheme="http://didierdanse.net/blogs/dev/archive/tags/MVP/default.aspx" /></entry><entry><title>Utilisation de Selenium dans un contexte SharePoint</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2010/05/29/utilisation-de-selenium-dans-un-contexte-sharepoint.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2010/05/29/utilisation-de-selenium-dans-un-contexte-sharepoint.aspx</id><published>2010-05-29T19:25:09Z</published><updated>2010-05-29T19:25:09Z</updated><content type="html">&lt;p&gt;Peu importe la technologie ciblée lors d’un développement, il convient de réaliser un maximum de tests. Malheureusement on est généralement confronté à un problème simple: quel outil choisir pour la réalisation de ces tests. &lt;/p&gt;  &lt;p&gt;Dans un environnement Microsoft, on serait tenter de mettre en avant les outils de tests présents dans Team System. Cependant, parfois il n’est pas nécessaire de mettre un autre produit, gratuit. En l’occurence, ce post a pour but de montrer l’utilisation de Selenium, outil de tests web.&lt;/p&gt;  &lt;p&gt;Selenium se décline en divers modules. Sur cette base, des tests ont été effectués avec :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Selenium IDE (plugin Firefox) &lt;/li&gt;    &lt;li&gt;Selenium RC &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Selenium IDE&lt;/h3&gt;  &lt;p&gt;L’IDE permet d’enregistrement une suite d’actions et de la rejouer rapidement. Pour cela, Selenium ajoute du code lui permettant d’effectuer les dites actions sans intervention humaine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/clip_image001_55EF1951.gif"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image001" border="0" alt="clip_image001" src="http://didierdanse.net/blogs/dev/clip_image001_thumb_33B70DCB.gif" width="404" height="524" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Durant les tests effectués, il est arrivé que Selenium ne puisse rejouer les tests qu’il a lui-même enregistré, cela a cause des identifiants qui varient d’un chargement à l’autre de la page ou d’autres modifications du genre.&lt;/p&gt;  &lt;p&gt;Les points positifs de Selenium IDE :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Open Source ; &lt;/li&gt;    &lt;li&gt;Fonctionnalités globales permettant de couvrir des scénarios simples et systématiques. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Les points négatifs de Selenium IDE :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Ne fonctionne que sur Firefox ; &lt;/li&gt;    &lt;li&gt;L’interface manque de convivialité. Certaines actions simples et fréquentes nécessitent des opérations manuelles dans des fichiers ; &lt;/li&gt;    &lt;li&gt;Par défaut, pas d’utilisation possible de boucles ; &lt;/li&gt;    &lt;li&gt;Par défaut, pas d’utilisation possible de conditions ; &lt;/li&gt;    &lt;li&gt;Nécessité de travailler avec des tests à part entière et donc impossibilité de « passer des paramètres » à une activité sans pour autant placer ces conditions ; &lt;/li&gt;    &lt;li&gt;La multiplication des scénarios nécessitent cette même multiplication des tests proprement dits. Toute modification doit se faire sur l’ensemble des tests dupliqués. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Selenium RC&lt;/h3&gt;  &lt;p&gt;Selenium RC (Remote Control) est un serveur qui fait office de Proxy (l’application envoie une requête à Selenium RC et Selenium la transmet au serveur destinataire). Comme pour l’IDE, il ajoute du code javascript lui permettant d’accéder et manipuler la page. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/clip_image003_2BBF6B69.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image003" border="0" alt="clip_image003" src="http://didierdanse.net/blogs/dev/clip_image003_thumb_267084B8.jpg" width="542" height="529" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Les points positifs :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Open Source ; &lt;/li&gt;    &lt;li&gt;Multi-navigateurs ; &lt;/li&gt;    &lt;li&gt;Apprentissage rapide (pas de nouvel outil car possibilité d’utilisation du langage de prédilection du développeur) ; &lt;/li&gt;    &lt;li&gt;Possibilité de créer une librairie d’objets réutilisables afin d’éviter les erreurs, d’avoir des opérations communes et aussi d’accélérer la réalisation de tests ; &lt;/li&gt;    &lt;li&gt;Meilleure gestion des informations affichées (il n’est pas nécessaire de faire du nettoyage) ; &lt;/li&gt;    &lt;li&gt;Possibilité d’étendre plus facilement les fonctionnalités de Selenium ; &lt;/li&gt;    &lt;li&gt;Facilité de mise en œuvre de tests qui peuvent utiliser comme source des fichiers, une base de données ou tout autre chose qui est géré par la technologie utilisée. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Les points négatifs :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Nécessité d’installer Java sur la machine qui sert de proxy (il est possible d’utiliser un seul serveur pour différentes personnes). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Pour lancer des tests au travers de Selenium RC, il est nécessaire d’écrire du code chargé de dialoguer avec Selenium RC lui même responsable de charger et d’injecter les informations nécessaires dans les pages.&lt;/p&gt;  &lt;p&gt;Exemple simple de code utilisable dans un contexte SharePoint. Le code parle de lui-même :&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; groupName &lt;span class="kwrd"&gt;in&lt;/span&gt; groupNames)
{
    &lt;span class="preproc"&gt;#region&lt;/span&gt; Add user to group

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (!SPTests.ExistsGroup(groupName))
        Assert.Fail(&lt;span class="str"&gt;&amp;quot;Group &amp;#39;&amp;quot;&lt;/span&gt; + groupName + &lt;span class="str"&gt;&amp;quot;&amp;#39; doesn&amp;#39;t exist&amp;quot;&lt;/span&gt;);
            SPTests.AddMemberToGroup(TESTUSER1_USERNAME, groupName);

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isISAServerUsed) SPTests.DisconnectCurrentUser();

    SPTests.OpenPage(rootRelativeUrl, possibleTitles);
    &lt;span class="preproc"&gt;#endregion&lt;/span&gt;

    &lt;span class="preproc"&gt;#region&lt;/span&gt; Operations
    SPTests.Authentication_ISAServer(TESTUSER1_USERNAME, TESTUSER1_PASSWORD);

    &lt;span class="rem"&gt;// Operations with current user&lt;/span&gt;
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isISAServerUsed) SPTests.DisconnectCurrentUser();
        SPTests.OpenPage(rootRelativeUrl, possibleTitles);
    &lt;span class="preproc"&gt;#endregion&lt;/span&gt;

    &lt;span class="preproc"&gt;#region&lt;/span&gt; Remove user from group
    SPTests.Authentication_ISAServer(ADMINUSERS_USERNAME, ADMINUSERS_PASSWORD);    
    SPTests.RemoveMemberToGroup(TESTUSER1_USERNAME, groupName);

    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isISAServerUsed) SPTests.DisconnectCurrentUser();
        SPTests.OpenPage(rootRelativeUrl, possibleTitles);
    &lt;span class="preproc"&gt;#endregion&lt;/span&gt;
}&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;______&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; RemoveMemberToGroup(&lt;span class="kwrd"&gt;string&lt;/span&gt; memberName, &lt;span class="kwrd"&gt;string&lt;/span&gt; groupName)
{
    OpenGroupPage(groupName);
    selenium.Check(&lt;span class="str"&gt;&amp;quot;//input[@account=&amp;#39;&amp;quot;&lt;/span&gt; + memberName + &lt;span class="str"&gt;&amp;quot;&amp;#39;]&amp;quot;&lt;/span&gt;);

    &lt;span class="kwrd"&gt;try&lt;/span&gt;
    {
        selenium.ChooseOkOnNextConfirmation();
        selenium.RunScript(&lt;span class="str"&gt;&amp;quot;BLOCKED SCRIPTBtnRemoveUsersClick(currentViewId, true);&amp;quot;&lt;/span&gt;);
    }
    &lt;span class="kwrd"&gt;catch&lt;/span&gt; (SeleniumException)
    {
        &lt;span class="rem"&gt;// Handle SeleniumException because of Confirmation not allowed. Deletion is ok&lt;/span&gt;
     }            
}&lt;/pre&gt;

&lt;p&gt;Documentation au sujet de Selenium: &lt;a href="http://seleniumhq.org/docs/index.html"&gt;http://seleniumhq.org/docs/index.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selenium ne permet d’effectuer que des tests simples. Pour réaliser des scénarios ou encore des tests de charge, PushToTest TestMaker est l’outil idéalement. Le prix est relativement peu élévé par rapport aux fonctionnalités proposées. Pour plus d’info: &lt;a title="http://www.pushtotest.com/index.php/comparison" href="http://www.pushtotest.com/index.php/comparison"&gt;http://www.pushtotest.com/index.php/comparison&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=325" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="Web browsers" scheme="http://didierdanse.net/blogs/dev/archive/tags/Web+browsers/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /></entry><entry><title>Les Language Packs SharePoint 2010 Foundation sont là</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2010/05/11/les-language-packs-sharepoint-2010-foundation-sont-l-224.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2010/05/11/les-language-packs-sharepoint-2010-foundation-sont-l-224.aspx</id><published>2010-05-11T20:18:44Z</published><updated>2010-05-11T20:18:44Z</updated><content type="html">&lt;p&gt;Ils sont dispos et prêts à être installés depuis l’URL suivante: &lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=646e311a-aaf3-4d30-b03c-2f3c70d19a22" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=646e311a-aaf3-4d30-b03c-2f3c70d19a22"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=646e311a-aaf3-4d30-b03c-2f3c70d19a22&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;L’installation ne pose guère de soucis, c’est pourquoi nous n’en ferons qu’un rapide aperçu. Mais démarrons par la plus grosse difficulté dans ce processus… Le choix de la langue du language pack! Et oui, la majorité d’entre ont eu le cas de télécharger un language pack anglais en lieu de celui voulu. Google ou encore Bing indexent les pages dans les différentes langues tandis que l’url reste identique. Lors d’une recherche, nous arrivons donc sur la dite page dont la langue correspond à vos paramètres et non à notre recherche. Et c’est ainsi qu’on installe un language pack en anglais sur un SharePoint qui l’était tout autant. Sélectionnez donc bien la bonne langue dans l’encadré rouge ci-dessous:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_263595D5.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_75BF115E.png" width="672" height="495" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Notez qu’il faut compter entre 110 et 170MB pour les languages packs les plus courants. Voici un exemple avec le language pack en français (notez que le nom du fichier envoyé par le serveur de download n’est pas très explicite à ce sujet):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_06570C4D.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_13BD1F53.png" width="445" height="31" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Et voilà, le plus dur est passé, la suite, vous la connaissez… next, next et next :-)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_252D802B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_002FBFB2.png" width="244" height="82" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://didierdanse.net/blogs/dev/image_30769468.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_4C57A393.png" width="244" height="198" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://didierdanse.net/blogs/dev/image_30D2A190.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_2796664F.png" width="244" height="200" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_0D55FD2B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_3CC46BF7.png" width="244" height="200" /&gt;&lt;/a&gt; &lt;a href="http://didierdanse.net/blogs/dev/image_61E1B663.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_18DB949D.png" width="244" height="211" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Comme indiqué, n’oubliez pas d’exécuter le wizard de config dès que le temps vous le permet!&lt;/p&gt;  &lt;p&gt;Une fois fait, rendez-vous dans un site quelconque. Dans les site settings, vous y trouverez un lien &lt;em&gt;Language settings&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_1EB63836.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_4BCB2504.png" width="249" height="183" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; En suivant ce lien, vous pourrez ainsi indiquer les langues qui peuvent être utilisées dans ce site comme indiqué sur la capture d’écran suivante:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_4A1A5930.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_33E43DDE.png" width="962" height="285" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Les utilisateurs pourront dès lors sélectionner la langue qui leur convient le mieux. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_72D5BE79.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_46B8C188.png" width="521" height="351" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Tout ce qui est &amp;quot;&lt;em&gt;out-of-the-box&lt;/em&gt;&amp;quot; est ainsi traduit (les menus, le ruban, …). &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_57BCEF6B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_0803C422.png" width="263" height="447" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Il existe bien d’autres fonctionnalités autour du multilinguisme. Nous en reparlerons certainement dans les prochaines semaines tant elles sont utiles et intéressantes dans cette version 2010 de SharePoint. &lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=312" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="Multilinguisme" scheme="http://didierdanse.net/blogs/dev/archive/tags/Multilinguisme/default.aspx" /></entry><entry><title>Urbaniser son système d’information, un mal pour un bien?</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2010/04/19/urbaniser-son-syst-232-me-d-information-un-mal-pour-un-bien.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2010/04/19/urbaniser-son-syst-232-me-d-information-un-mal-pour-un-bien.aspx</id><published>2010-04-19T18:25:12Z</published><updated>2010-04-19T18:25:12Z</updated><content type="html">&lt;p&gt;&lt;em&gt;Article publié dans le &lt;a href="http://www.itpro.fr" target="_blank"&gt;IT Pro Magazine&lt;/a&gt; de février 2010&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Quelque soit le contexte, l’information est un principe fondamental de la stratégie d’une entreprise. Cette information trouve aisément sa place au sein d’un système d’information à l’aide de classifications diverses et de méthodes pour retrouver aisément celle-ci. Ce dernier est ainsi un outil essentiel pour l’entreprise.&lt;/p&gt;  &lt;p&gt;Depuis déjà plusieurs décennies, l’informatique est devenu un outil utilisé pour mettre en place ce système d’information et ainsi stocker des informations sous une forme structurée dans un format électronique permettant de dématérialiser et d’automatiser toute une série d’actions en rapport avec des procédures d’entreprise. Cette automatisation diminue la charge de l’humain en réduisant le nombre de tâches répétitives telles que le calcul des totaux des factures, la recherche d’une adresse ou encore l’échange d’informations entre personnes. Un système d’information, informatisé ou non, doit, pour être utilisé de manière efficace, refléter les processus métiers ainsi que les actions et interactions entre différentes entités. Depuis quelques années, ce système est devenu également la source d’informations utilisée pour aider à la décision.&lt;/p&gt;  &lt;p&gt;Lorsque l’on parle d’un système d’information informatisé, on pense généralement base de données, données qui les constituent ou encore le matériel proprement dit. Cependant, il est généralement omis de tenir compte du facteur humain. Nous y consacrerons un paragraphe entier car il est primordial d’en tenir compte pour obtenir un système d’information efficace.&lt;/p&gt;  &lt;h3&gt;Le système d’information au fil du temps&lt;/h3&gt;  &lt;p&gt;Au fur et à mesure que le temps passe, l’entreprise s’enrichit de nouvelles applications et de nouvelles fonctionnalités. Selon les fonctionnalités souhaitées ou simplement le choix des intervenants, les technologies utilisées peuvent s’avérer différentes. Le système d’information est ainsi rapidement hétérogène, les solutions et applications ne pouvant malheureusement pas toujours communiquer entre elles.&lt;/p&gt;  &lt;p&gt;Chaque jour, de nouveaux besoins fonctionnels ou encore techniques se font sentir. C’est ainsi que, pour répondre à cette demande, il est fréquent de voir de nouvelles couches techniques ou de nouvelles solutions &lt;i&gt;bricolées&lt;/i&gt; autour de ces applications afin de remédier aux lacunes de celles-ci. Ces modifications ont pour effet de créer ce que l’on appelle communément l’&lt;i&gt;effet spaghetti&lt;/i&gt;, rendant les nouvelles extensions, corrections et interconnexions difficiles. &lt;/p&gt;  &lt;p&gt;Par ailleurs, ces problèmes d’extension et d’interconnexion s’accentuent d’autant plus lors de la fusion de deux sociétés ou encore lors de la mise en place de la notion de partenariat avec des acteurs extérieurs à l’entreprise. C’est ainsi qu’il faut malheureusement parfois se résigner à dire que l’informatique est complexe. Généralement, la cause de cette complexité est le manque de connaissance du système d’information. Il est donc important de garder à l’esprit que pour informatiser efficacement un système d’information, celui-ci doit suivre les entités métier, les règles qui lui sont appliquées et enfin les processus dans lesquels ces entités ont un rôle.&lt;/p&gt;  &lt;p&gt;Pour tendre vers un système d’information réellement efficace, il est donc conseillé de fréquemment se poser des questions telles que « Quelle est la cible marché de l’entreprise ? », « Comment dois-je bâtir et faire évoluer le système d’information de manière à ce qu’il accompagne la stratégie de l’entreprise ? ». &lt;/p&gt;  &lt;h3&gt;L’urbanisation&lt;/h3&gt;  &lt;p&gt;L’urbanisation est un concept plus souvent connu au niveau d’une ville bien que dans ce contexte, il est plus fréquent d’entendre parler d’urbanisme plutôt que d’urbanisation. Le terme urbanisation est quant à lui pratiquement toujours utilisé dans le contexte informatique, mettant l’accent sur la durée importante du processus.&lt;/p&gt;  &lt;p&gt;L’urbanisation d’une ville a pour but de réaliser le plan de cette ville, quartier par quartier et ce afin de rendre l’aspect global cohérent, de faciliter et simplifier l’ensemble de la ville mais aussi de faciliter la communication entre ces quartiers. Cette notion peut être appliquée à tout système d’information. Comme pour une ville, cette opération suivra les stratégies et les besoins du point du vue métier. &lt;/p&gt;  &lt;p&gt;L’urbanisation doit se faire selon plusieurs étapes. La première étant l’inventaire de l’existant, ce que nous appellerons cartographie. Ensuite, le système devra évoluer pour tendre vers une solution respectant les différents objectifs et contraintes. Mais pour réussir un projet d’urbanisation, il est nécessaire de l’introduire au plus tôt et de progresser petit à petit en mettant tout d’abord en place les échanges entre entités en privilégiant les entités globales puis en entrant dans le détail. L’urbanisation doit être organisée, monitorée et cadrée. Pour cela, il est conseillé de mettre en place un groupe de travail qui veillera à la cohérence du tout.&lt;/p&gt;  &lt;h3&gt;La cartographie du système d’information&lt;/h3&gt;  &lt;p&gt;Les décideurs et architectes doivent être au courant du système d’information, cela c’est clair pour bien des gens. Mais il serait également souhaitable que chaque intervenant au sein de ce système en connaissant les fondements de la structure. C’est ce que permet la cartographie du système d’information. &lt;/p&gt;  &lt;p&gt;La cartographie doit, idéalement, être la plus complète possible, allant de l’aspect métier aux détails de tous les échanges entre applications au niveau technique.&lt;/p&gt;  &lt;h4&gt;Le métier&lt;/h4&gt;  &lt;p&gt;Bien que l’on parle d’un système informatisé d’information, il est primordial de tenir compte de l’aspect métier et des différents acteurs qui tournent autour de celui-ci. Ainsi, il est intéressant de démarrer par la partie métier afin d’y faire apparaitre les processus, les objectifs mais aussi les contraintes telles que le suivi de Sarbanes-Oxley.&lt;/p&gt;  &lt;h4&gt;L’aspect fonctionnel&lt;/h4&gt;  &lt;p&gt;Ensuite, on identifiera les différents objets métiers et les fonctions utilisées par ces objets. Ces objets doivent se trouver en lien avec le métier et les processus métier afin d’identifier les référentiels et les différents échanges entre entités.&lt;/p&gt;  &lt;h4&gt;Les serveurs et applications&lt;/h4&gt;  &lt;p&gt;Bien entendu, l’aspect technique de l’environnement est important, si bien qu’il faut qualifier l’ensemble de l’architecture du point de vue physique et logique, sans oublier les serveurs de backup. On veillera à adapter l’architecture et les environnements en fonction des contraintes fixées par le métier.&lt;/p&gt;  &lt;p&gt;Parmi les applications, on distinguera également les applications généralistes de celles qui sont personnalisées pour l’entreprise. Ces premières proposent de plus en plus de connecteurs, permettant de plus aisément les intégrer dans une architecture orientée services alors que les applications &lt;i&gt;maison&lt;/i&gt; devront éventuellement être remaniée.&lt;/p&gt;  &lt;p&gt;Enfin, on veillera à faire le lien entre l’architecture physique et l’architecture logicielle afin de mettre en avant les informations nécessaires à chaque application telles que le stockage, les accès et les performances.&lt;/p&gt;  &lt;h4&gt;La technique &lt;/h4&gt;  &lt;p&gt;Enfin, l’ensemble des règles de construction doivent être également identifiés. Ces règles peuvent concerner les techniques de développement ou encore l’infrastructure.&lt;/p&gt;  &lt;h3&gt;Que faire une fois la cartographie effectuée ?&lt;/h3&gt;  &lt;p&gt;Une fois l’ensemble du système cartographié, il s’agit de planifier l’ensemble des modifications à effectuer pour tendre vers un système cohérent et modulaire correspondant au métier de l’entreprise. D’un point de vue technique, il s’agit dès lors de migrer, en profitant de cette phase pour effectuer du nettoyage ou de la conversion de code tout en consolidant et mutualisant les serveurs afin d’utiliser l’ensemble de son environnement au maximum. On profitera également pour diminuer les couches techniques et mettre en place de la communication entre les différentes applications. &lt;/p&gt;  &lt;h3&gt;L’interopérabilité entre applications&lt;/h3&gt;  &lt;p&gt;Nous l’avons vu, il est souhaitable de rendre les applications modulaires et communicantes.&lt;/p&gt;  &lt;p&gt;Une Architecture Orientée Services (SOA) permet de mettre en communication différentes applications présentes au sein d’une entreprise au travers de services réutilisables. Les communications depuis et vers des applications s’effectuent selon deux bus : le bus applicatif permettant de faire communiquer les applications entre elles et avec le système et le bus de services utilisé par les utilisateurs au travers de la notion de services.&lt;/p&gt;  &lt;p&gt;On parle de SOA lorsque les services respectent la neutralité par rapport au protocole utilisé par le consommateur, le couplage faible entre le fournisseur et le consommateur ainsi que la granularité permettant au consommateur de faire appel à un service sur base d’une définition sans en connaitre l’implémentation. Chacune des applications doit également gérer efficacement l’ensemble des entités qui la compose. On parle dès lors de cohérence forte.&lt;/p&gt;  &lt;h3&gt;Le facteur humain&lt;/h3&gt;  &lt;p&gt;Comme nous l’avons dit à plusieurs reprises, un système d’information ne doit pas se limiter à l’aspect technique. L’humain est un élément très important.&lt;/p&gt;  &lt;p&gt;Effectivement, l’ordinateur est capable d’effectuer des actions répétitives, ou suivant un processus bien défini, et programmées au préalable. Parmi ces actions, nous pouvons parler de la recherche, du tri ou encore de la génération de statistiques. Quant à l’humain, celui-ci possède quelqu’un chose que l’ordinateur ne possède pas. Il est en effet capable d’analyser et d’interpréter des informations sur base desquelles il prend des décisions.&lt;/p&gt;  &lt;p&gt;En contrepartie de cette aide informatique, cela sous-entend que l’entreprise attend de plus en plus de ses employés, ce qui n’est pas toujours pris positivement par ces personnes, ce qui peut amener des réticences et des difficultés lors de l’urbanisation du système d’information. Ainsi, l’aspect humain n’est pas du tout à négliger.&lt;/p&gt;  &lt;p&gt;Pour espérer une réussite totale de l’urbanisation, il sera nécessaire à chacun de permettre aux autres employés d’avoir des responsabilités et de travailler au sein de groupes de travail ayant pour objectif d’analyser les processus.&lt;/p&gt;  &lt;h3&gt;Urbaniser à quel coût ?&lt;/h3&gt;  &lt;p&gt;Parler d’urbanisation à un décideur provoquera à coup sûr le questionnement suivant : « Quel est le retour sur investissement ? ». Il est vrai que si l’on regarde sur du court terme, le retour est assez faible au vu du nombre d’opérations à effectuer pour tendre vers un système efficace.&lt;/p&gt;  &lt;p&gt;En parallèle, il est intéressant de calculer le coût lié à la maintenance des solutions actuelles. La multiplication des solutions a souvent pour conséquence la multiplication des serveurs, des opérations de maintenance ou encore des corrections. Bien que toutes les opérations nécessitent l’appel à des intervenants, les corrections ont cependant le plus fort impact budgétaire puisqu’en plus de consommer du temps, elles fatiguent les intervenants, le tout pour des opérations que l’on peut considérer comme n’étant pas orientées vers le futur.&lt;/p&gt;  &lt;p&gt;A l’inverse, la diminution du nombre de serveurs, la diminution de la perte d’information ainsi que la diminution des séances de formation permettent effectivement de diminuer le coût global de l’informatique dans l’entreprise. De plus, de par la réutilisabilité des services exposés, lors de la mise en place d’une nouvelle possibilité, le coût est bien en deçà de ce que serait le coût classique. &lt;/p&gt;  &lt;p&gt;Ainsi, si l’on compare le coût d’urbanisation au coût de maintenance, il s’avère que, même pour un nombre de fonctionnalités identiques, l’urbanisation est plus intéressante financièrement pour peu que l’on se fixe des objectifs à moyen terme et que l’on dispose d’un minimum d’argent à investir. Alors prêt ? Cartographiez !&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_6F8A83FD.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_06D5886F.png" width="613" height="372" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=300" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="Système d'information" scheme="http://didierdanse.net/blogs/dev/archive/tags/Syst_E800_me+d_2700_information/default.aspx" /><category term="Architecture" scheme="http://didierdanse.net/blogs/dev/archive/tags/Architecture/default.aspx" /></entry><entry><title>SharePoint: Afficher une master page custom quelque soit le template utilisé</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2009/09/17/sharepoint-afficher-une-master-page-custom-quelque-soit-le-template-utilis-233.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2009/09/17/sharepoint-afficher-une-master-page-custom-quelque-soit-le-template-utilis-233.aspx</id><published>2009-09-17T19:45:25Z</published><updated>2009-09-17T19:45:25Z</updated><content type="html">&lt;p&gt;Lorsque l’on créée des templates de sites personalisés, on est rapidement tenté d’y attacher par défaut une master page également personalisée. Cela s’avère assez simple à réaliser mais là où cela se complique c’est lorsqu’on souhaite attacher, par défaut, notre master page aux templates existants. On pourrait aisément modifier le nom de la master page active mais dans un contexte où les utilisateurs crèent eux mêmes leurs sites sur base des templates, il est probable que ceux-ci ne configurent pas cette master page.&lt;/p&gt;  &lt;p&gt;Ainsi, puisque dans la majorité des cas nous nous retrouverons avec la master page par défaut, nous pourrions être tenté de remplacer cette master page par la nôtre. Cela n’est malheureusement pas supporté par Microsoft. On travaillera donc autrement et on modifiera, à la volée le nom de la master page à utiliser. Pour cela, il suffit d’&lt;strong&gt;intercepter les requêtes à l’aide d’un &lt;em&gt;HttpModule&lt;/em&gt;&lt;/strong&gt;. Pour faire faire simple, un &lt;em&gt;HttpModule&lt;/em&gt; permet d’exposer des évènements qui participeront à chacune de vos demandes de page web.&lt;/p&gt;  &lt;p&gt;Dans notre cas, nous attacherons un handler à l’évènement PreInit de la page qui est demandée.&lt;/p&gt;  &lt;p&gt;Un HttpModule est simplement à mettre en oeuvre et doit implémenter deux méthodes de base: &lt;em&gt;Dispose&lt;/em&gt; et &lt;em&gt;Init&lt;/em&gt;. Ainsi, voici un exemple de code implémentant les éléments cités précédemment.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;pre class="csharpcode"&gt;&lt;p&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MasterPageManagerHttpModule : IHttpModule 
{ 
    &lt;span class="preproc"&gt;#region&lt;/span&gt; IHttpModule Members 
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Dispose() { } 

    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Init(HttpApplication context) 
    { 
        context.PreRequestHandlerExecute += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(context_PreRequestHandlerExecute); 
    } 

    &lt;span class="kwrd"&gt;void&lt;/span&gt; context_PreRequestHandlerExecute(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) 
    { 
        Page page = HttpContext.Current.CurrentHandler &lt;span class="kwrd"&gt;as&lt;/span&gt; Page; 
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (page != &lt;span class="kwrd"&gt;null&lt;/span&gt;) 
            page.PreInit += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(page_PreInit); 
    } 

    &lt;span class="kwrd"&gt;void&lt;/span&gt; page_PreInit(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) 
    { 
        Page page = sender &lt;span class="kwrd"&gt;as&lt;/span&gt; Page; 
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (page == &lt;span class="kwrd"&gt;null&lt;/span&gt; || page.MasterPageFile == &lt;span class="kwrd"&gt;null&lt;/span&gt;) &lt;span class="kwrd"&gt;return&lt;/span&gt;; 

        &lt;span class="kwrd"&gt;if&lt;/span&gt; (page.MasterPageFile.ToLower().Contains(&lt;span class="str"&gt;&amp;quot;default.master&amp;quot;&lt;/span&gt;)) 
        {
            page.MasterPageFile = &lt;span class="str"&gt;&amp;quot;~sitecollection/_catalogs/masterpage/custom.master&amp;quot;&lt;/span&gt;;   &lt;span class="rem"&gt;// Master page can be uploaded to layouts folder also&lt;/span&gt;
            &lt;span class="kwrd"&gt;return&lt;/span&gt;; 
        }
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (page.MasterPageFile.ToLower().Contains(&lt;span class="str"&gt;&amp;quot;application.master&amp;quot;&lt;/span&gt;)) 
        {
            page.MasterPageFile = &lt;span class="str"&gt;&amp;quot;~sitecollection/_catalogs/masterpage/customapplication.master&amp;quot;&lt;/span&gt;;&lt;/p&gt;&lt;p&gt;            return;  
        }   
    } 
    &lt;span class="preproc"&gt;#endregion&lt;/span&gt;
}&lt;/p&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Il nous reste à indiquer, dans le web.config qu’il est nécessaire d’utiliser ce HttpModule. &lt;/p&gt;

&lt;pre class="csharpcode"&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;name&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;MasterPageManager&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Company.Portal.Features.MasterPageManagerHttpModule.MasterPageManagerHttpModule, Company.Portal.Features.MasterPageManagerHttpModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Vu le type d’évènement, on déploiera ce code à l’aide d’une feature ayant comme scope la &lt;em&gt;WebApplication&lt;/em&gt; et qui se chargera, à l’activation, de modifier le web.config comme indiqué dans ce post: &lt;a href="http://didierdanse.net/blogs/dev_en/archive/2009/09/11/sharepoint-how-to-use-spwebconfigmodification-class.aspx"&gt;SharePoint: How to use SPWebConfigModification class&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simple mais efficace.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;

&lt;/div&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=262" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="Master Page" scheme="http://didierdanse.net/blogs/dev/archive/tags/Master+Page/default.aspx" /><category term="IIS" scheme="http://didierdanse.net/blogs/dev/archive/tags/IIS/default.aspx" /></entry><entry><title>Retrouvez moi enfin sur Twitter!</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2009/08/04/retrouvez-moi-enfin-sur-twitter.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2009/08/04/retrouvez-moi-enfin-sur-twitter.aspx</id><published>2009-08-04T18:02:38Z</published><updated>2009-08-04T18:02:38Z</updated><content type="html">&lt;p&gt;Il y a des moments où un simple lien suffit pour partager une information. Twitter est un bon vecteur d’information. Je vais donc l’utiliser à cet effet.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://twitter.com/didierdanse" href="http://twitter.com/didierdanse"&gt;http://twitter.com/didierdanse&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=257" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="Visual Studio" scheme="http://didierdanse.net/blogs/dev/archive/tags/Visual+Studio/default.aspx" /><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="Team Foundation Server" scheme="http://didierdanse.net/blogs/dev/archive/tags/Team+Foundation+Server/default.aspx" /><category term="Office" scheme="http://didierdanse.net/blogs/dev/archive/tags/Office/default.aspx" /><category term="VSTO" scheme="http://didierdanse.net/blogs/dev/archive/tags/VSTO/default.aspx" /><category term="MVP" scheme="http://didierdanse.net/blogs/dev/archive/tags/MVP/default.aspx" /><category term=".NET" scheme="http://didierdanse.net/blogs/dev/archive/tags/.NET/default.aspx" /><category term="Team System" scheme="http://didierdanse.net/blogs/dev/archive/tags/Team+System/default.aspx" /><category term="Windows Server" scheme="http://didierdanse.net/blogs/dev/archive/tags/Windows+Server/default.aspx" /><category term="Sql Server" scheme="http://didierdanse.net/blogs/dev/archive/tags/Sql+Server/default.aspx" /><category term="Silverlight" scheme="http://didierdanse.net/blogs/dev/archive/tags/Silverlight/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="Virtual PC" scheme="http://didierdanse.net/blogs/dev/archive/tags/Virtual+PC/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="SharePoint Designer" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint+Designer/default.aspx" /></entry><entry><title>SharePoint: Imprimer la page courante</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2009/06/15/sharepoint-imprimer-la-page-courante.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2009/06/15/sharepoint-imprimer-la-page-courante.aspx</id><published>2009-06-15T19:50:33Z</published><updated>2009-06-15T19:50:33Z</updated><content type="html">&lt;p&gt;Imprimer une page provenant d’un site Internet est quelque chose de courant et pourtant cette impression est souvent très mal implémentée rendant les impressions peu lisibles ou entourées de toute une série d’éléments non désirés (liens divers, images utilisant abondamment l’encre de l’imprimante et bien d’autres choses pouvant perturber une impression peu couteuse, de qualité et exposant les informations importantes).&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;L’impression peut être lancée de différentes manières:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Fonction &lt;em&gt;Impression&lt;/em&gt; dans le menu du navigateur (ou &lt;em&gt;CTRL+P&lt;/em&gt;); &lt;/li&gt;    &lt;li&gt;Fonction incluse dans un script (VBScript ou javascript avec &lt;em&gt;window.print()&lt;/em&gt;). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Cette deuxième possibilité ne fait cependant qu’appeler la fonction présentée dans le premier point. De ce fait, l’impression respectera cependant le choix effectué par l’utilisateur, à savoir imprimer ou non les couleurs et images utilisées en background. Par défaut, cette option est décochée sous Internet Explorer:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_0671EDA1.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_4EFBB6A5.png" width="417" height="535" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette option a pour but d’éviter le gaspillage d’encre. Il ne reste plus qu’à créer nos propres règles pour définir comment doit être le rendu de notre page à l’impression.&lt;/p&gt;  &lt;p&gt;Jusque là rien d’exception puisque l’on imprime ce qui est à l’écran. Reste donc à voir comment &lt;em&gt;soulager&lt;/em&gt; l’impression des éléments superflus. Nous pourrions utiliser une page générant uniquement un tableau de données. Mais qu’en est-il de l’impression d’un calendrier? D’une liste comportant des groupements? Et pour les filtres? Enfin, comment faire si vous avez filtré dynamiquement les données? Il est difficile de gérer autant de pages qu’il n’y a de cas envisageables et permettant de bénéficier de toutes les fonctionnalités présentées par les composants présents sur la page.&lt;/p&gt;  &lt;p&gt;Il reste cependant une &lt;strong&gt;solution basée sur du CSS tout à fait classique&lt;/strong&gt;. Les règles CSS, les développeurs web connaissent généralement (tout du moins, je l’espère). Ce qu’ils connaissent généralement moins c’est la possibilité de définir des règles pour des &lt;em&gt;médias&lt;/em&gt; différents. Ainsi, on pourra avoir des règles différentes selon le &lt;strong&gt;média&lt;/strong&gt; utilisé: &lt;strong&gt;screen, print, braille et bien d’autres&lt;/strong&gt;. Ceux qui nous intéressent sont clairement &lt;em&gt;screen&lt;/em&gt; et &lt;em&gt;print&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;Ainsi, plusieurs possibilités s’offrent à nous dont les principales sont: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;utiliser 2 link, l’un avec un type screen et l’autre print (et donc deux fichiers css différents). &lt;/li&gt; &lt;/ul&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;stylesheet&amp;#39;&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;printstyle.css&amp;#39;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;text/css&amp;#39;&lt;/span&gt; &lt;span class="attr"&gt;media&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;print&amp;#39;&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;link&lt;/span&gt; &lt;span class="attr"&gt;rel&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;stylesheet&amp;#39;&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;screenstyle.css&amp;#39;&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;text/css&amp;#39;&lt;/span&gt; &lt;span class="attr"&gt;media&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;#39;screen&amp;#39;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;ul&gt;
  &lt;li&gt;Utiliser un seul fichier CSS et spécifier le média directement dans ce fichier &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="preproc"&gt;@media&lt;/span&gt; screen, print
{
&lt;span class="rem"&gt;/* Règles CSS partagées dans les différents types;&lt;/span&gt;
&lt;span class="rem"&gt;    Notez qu’il aurait été possible d’indiquer all. */&lt;/span&gt;
.master { width: 90%; }
}

&lt;span class="preproc"&gt;@media&lt;/span&gt; print 
{ 
&lt;span class="rem"&gt;/* Règles CSS utilisées uniquement dans le cadre de l’impression */&lt;/span&gt;
.master { width: 100%; }
.monElement { display: none; }
}&lt;/pre&gt;

&lt;p&gt;N’hésitez également pas à utiliser cette possibilité pour remplacer des images par d’autres plus légères pour l’impression, modifier la police de caractères ou tout autre chose permettant une impression de meilleure qualité.&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=252" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="Internet Explorer" scheme="http://didierdanse.net/blogs/dev/archive/tags/Internet+Explorer/default.aspx" /><category term="Web browsers" scheme="http://didierdanse.net/blogs/dev/archive/tags/Web+browsers/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /></entry><entry><title>SharePoint / Office: Ouvrir un fichier sans devoir spécifier à nouveau le mot de passe</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2009/06/11/sharepoint-office-ouvrir-un-fichier-sans-devoir-sp-233-cifier-224-nouveau-le-mot-de-passe.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2009/06/11/sharepoint-office-ouvrir-un-fichier-sans-devoir-sp-233-cifier-224-nouveau-le-mot-de-passe.aspx</id><published>2009-06-11T19:17:36Z</published><updated>2009-06-11T19:17:36Z</updated><content type="html">&lt;p&gt;Il est rapidement ennuyeux de devoir réintroduire son login et votre mot de passe pour ouvrir un fichier dans Office directement depuis SharePoint. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_1FD7F1D9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_15C350AE.png" width="433" height="362" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Si cela est le cas, il est fort probable le site SharePoint soit dans une zone que &lt;em&gt;Local Intranet&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_27BF6E6E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_11F58611.png" width="206" height="30" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ainsi, Office regarde cette notion de zone que l’on retrouve dans Internet Explorer. Lorsque la zone est différent de &lt;em&gt;Local Intranet&lt;/em&gt;, les credentials ne sont pas envoyées lors de la connexion pour le téléchargement du fichier. Il suffit donc de dire explicitement que le site doit faire partie de la zone.&lt;/p&gt;  &lt;p&gt;Pour cela, rendez-vous dans Internet Explorer, ouvrez le SharePoint au sein du navigateur puis allez dans le menu &lt;em&gt;Outils &lt;/em&gt;&amp;gt; &lt;em&gt;Options Internet&lt;/em&gt; et sélectionnez l’onglet &lt;em&gt;Sécurité&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_17D029AA.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_48368853.png" width="417" height="535" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Il ne reste qu’à cliquer sur &lt;em&gt;Local Intranet&lt;/em&gt; puis sur le bouton &lt;em&gt;Sites.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_299C97AA.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_6BDF8A20.png" width="417" height="535" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Après un clic sur le bouton &lt;em&gt;Avancé&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_493B4BA5.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_067C006D.png" width="408" height="227" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;il ne reste qu’à appuyer sur &lt;em&gt;Ajouter&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_247A0E61.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_21F0DCA3.png" width="388" height="342" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Votre site est désormais considéré comme étant un intranet et les credentials sont donc envoyés lors de la connexion.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_789994A4.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_77C12EBA.png" width="231" height="31" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=250" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="Office" scheme="http://didierdanse.net/blogs/dev/archive/tags/Office/default.aspx" /><category term="Internet Explorer" scheme="http://didierdanse.net/blogs/dev/archive/tags/Internet+Explorer/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="Sécurité" scheme="http://didierdanse.net/blogs/dev/archive/tags/S_E900_curit_E900_/default.aspx" /></entry><entry><title>SharePoint: Activer le Single-Sign-On (SSO)</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2009/05/31/sharepoint-activer-le-single-sign-on-sso.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2009/05/31/sharepoint-activer-le-single-sign-on-sso.aspx</id><published>2009-05-31T20:57:51Z</published><updated>2009-05-31T20:57:51Z</updated><content type="html">&lt;p&gt;Vous utilisez de multiples comptes au sein de votre entreprise avec par exemple, un pour vous connecter à votre Windows, l’autre pour vous connecter à SAP, un troisième pour vous connecter à une application Oracle ou que sais-je encore? Dans ce cas, le Signle Sign On est une fonctionnalité très utile pour vous et surtout pour vos utilisateurs. &lt;/p&gt;  &lt;p&gt;Effectivement, à l’aide de cette fonctionnalité, vous pouvez vous loguer une fois (lorsque vous entrez sur votre Windows) et, si vous avez déjà fourni l’association login / mot de passe pour les autres applications, vous connecter automatiquement à ces autres applications ou système d’informations. Rassurez-vous, le stockage de ces informations est fait de manière cryptée à l’aide d’une clé de cryptage. Nous y reviendrons plus loin dans cet article.&lt;/p&gt;  &lt;p&gt;Dans ces quelques lignes, nous allons voir comment l’activer au sein de SharePoint.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Single-Sign-On dans la console d’administration&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Rendez-vous sur la page de gestion des &lt;i&gt;Opérations&lt;/i&gt;. Le lien concernant SSO se trouve dans la configuration de la sécurité. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_1ABF2836.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://didierdanse.net/blogs/dev/clip_image002_3078EAC6.gif" width="644" height="349" /&gt;&lt;/a&gt;* &lt;/p&gt;  &lt;p&gt;Après avoir cliqué sur ce lien, vous devriez obtenir la page suivante:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_124B2D12.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image004" border="0" alt="clip_image004" src="http://didierdanse.net/blogs/dev/clip_image004_42B18BBB.gif" width="644" height="348" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Les liens disponibles diffèrent selon les droits de l’utilisateur connecté.&lt;/p&gt;  &lt;p&gt;Il se peut également que vous receviez le message suivant: &lt;i&gt;Failed to connect to Microsoft Single Sign-on Service. To configure, please ensure the service is running &lt;/i&gt;comme on le retrouve sur la capture suivante:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/Untitled2_19C676B2.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image005" border="0" alt="clip_image005" src="http://didierdanse.net/blogs/dev/clip_image005_58B7F74D.jpg" width="663" height="50" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dans ce cas, cela sous-entend que le service SSO n’est pas en cours d’exécution. Il faut dès lors l’activer. Si vous n’avez pas ce message, vous êtes évidemment libre de bypasser cette étape mais il est cependant conseillé de vérifier le paramétrage du service.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Activer le service SSO&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Rendez-vous dans la fenêtre d’administration des services (&lt;i&gt;services.msc&lt;/i&gt;) et cherchez le service &lt;i&gt;Microsoft Single Sign-On&lt;/i&gt;. Très certainement celui-ci est-il stoppé.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/Untitled3_49A11873.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image006" border="0" alt="clip_image006" src="http://didierdanse.net/blogs/dev/clip_image006_22865931.jpg" width="644" height="342" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Si vous activez le SSO, il est fort probable que vous l’utilisiez dans le futur de manière régulière. De ce fait, il est préférable de mettre le service en démarrage automatique. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/Untitled4_58A7D180.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image007" border="0" alt="clip_image007" src="http://didierdanse.net/blogs/dev/clip_image007_75CD798A.jpg" width="422" height="472" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Par ailleurs, dans l’onglet &lt;i&gt;Log On&lt;/i&gt;, indiquez le compte qui exécutera ce service. Celui-ci doit faire partie des administrateurs de votre SharePoint afin de pouvoir créer la base de données qui contiendra le mapping Windows &lt;i&gt;User Account / Application User Account&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/Untitled8_6505CEDC.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image008" border="0" alt="clip_image008" src="http://didierdanse.net/blogs/dev/clip_image008_7E8D5C09.jpg" width="424" height="471" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Modifier les paramètres de SSO&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Un clic sur le premier lien permet de configurer le Single Sign-On. &lt;/p&gt;  &lt;p&gt;&lt;i&gt;Single Sign-On-Administrator&lt;/i&gt;: peut créer, modifier ou supprimer des définitions d’applications.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Enterprise Application Definition Administrator: &lt;/i&gt;peut gérer les credentials d’une définition d’application.&lt;/p&gt;  &lt;p&gt;Comme nous l’avions signalé précédemment, il est nécessaire de créer une base de données qui contiendra les différents comptes utilisateurs. C’est dans cet écran que nous pouvons (et même devons) créer la dite base de données. Enfin, il est possible de modifier les paramètres par défaut concernant la durée de vie du ticket SSO et des audits au sein de la base de données.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_5536140B.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image010" border="0" alt="clip_image010" src="http://didierdanse.net/blogs/dev/clip_image010_775DF9C4.gif" width="644" height="377" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Rapidement, nous pouvons voir qu’une nouvelle base de données à été créée dans SQL Server:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_071D8EC9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image012" border="0" alt="clip_image012" src="http://didierdanse.net/blogs/dev/clip_image012_5D5A13D5.gif" width="381" height="394" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette base ne contient que quelques tables mais c’est bien suffisant pour répondre aux objectifs de SSO. Il vous est loisible de vous balader au sein de cette base afin de bien comprendre comment fonctionne cette base. On notera rapidement que les informations concernant les comptes utilisateurs ne sont pas lisibles tel quel. Cela a dû à un concept déjà cité: la &lt;i&gt;clé d’encryption&lt;/i&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Gérer la clé d’encryption&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Une clé d’encryption est conceptuellement très simple à maitriser. Il s’agit d’une chaîne de caractères qui est utilisée pour crypter / décrypter les données dans la base de données.&lt;/p&gt;  &lt;p&gt;Ainsi, sur le lien &lt;i&gt;Manage Encryption Key&lt;/i&gt;, il est possible de générer une nouvelle clé d’encryption. La création d’une nouvelle clé est conseillée de manière périodique ou encore lors d’un soupçon de données altérées.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/Untitled10_02E39137.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image013" border="0" alt="clip_image013" src="http://didierdanse.net/blogs/dev/clip_image013_72F44C72.jpg" width="644" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/Untitled11_3EDFAD1F.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image014" border="0" alt="clip_image014" src="http://didierdanse.net/blogs/dev/clip_image014_7645BE4D.jpg" width="644" height="171" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bien que ce ne soit qu’une option, il est fortement recommandé de réencrypter les données stockées dans la base de données lors de la création d’une nouvelle clé sans quoi les utilisateurs devront réencoder leurs credentials.&lt;/p&gt;  &lt;p&gt;Enfin, une fois que celle-ci a été générée, il est conseillé de sauvegarder cette clé. On notera tout de même que l’on nous ne propose que de faire des backups sur le drive A…&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Définir des applications d’entreprise&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Il ne reste dès lors plus qu’à créer des définitions d’applications d’entreprise (entendez par là &lt;i&gt;SAP&lt;/i&gt;, &lt;i&gt;Oracle&lt;/i&gt;, …) pour lesquelles vous souhaitez stocker des credentials.&lt;/p&gt;  &lt;p&gt;Ainsi, définir une application est une étape aisée puisqu’il suffit d’indiquer le nom de l’application (nom que vous souhaitez) et les propriétés qui doivent être persistées.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/Untitled12_5B2CEF3F.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image015" border="0" alt="clip_image015" src="http://didierdanse.net/blogs/dev/clip_image015_58A3BD81.jpg" width="644" height="268" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ensuite, vous pouvez ajouter, modifier ou supprimer des comptes pour une certaine application.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/Untitled13_282D390B.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image016" border="0" alt="clip_image016" src="http://didierdanse.net/blogs/dev/clip_image016_1433A675.jpg" width="644" height="245" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Notez que pour les comptes qui n’auront pas encore été spécifiées, il est possible directement à l’utilisateur d’encoder son login et son mot de passe au travers de la page &lt;a href="http://%7bserver%7d/_layouts/ssologon.aspx"&gt;http://{server}/_layouts/ssologon.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Sans entrer dans les détails, il vous est possible d’utiliser un autre provider SSO que celui fournit au travers de cette interface. Il vous est ainsi loisible d’utiliser un autre provider SSO ce qui est très utile si vous utilisez déjà un service SSO.&lt;/p&gt;  &lt;p&gt;Enfin, bien que ce code ne soit pas exhaustif, voici une piste de code si vous souhaitez manipuler des informations SSO:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;ISsoProvider provider = SsoProviderFactory.GetSsoProvider();

SsoCredentials crentials = provider.GetCredentials(“Mon_Application”);&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Ces deux simples lignes de code vous permettrons de récupérer les informations login / mot de passe enregistrées pour l’utilisateur courant pour l’application définie en tant que &lt;i&gt;Mon_Application&lt;/i&gt;.&lt;/p&gt;

&lt;p&gt;Plus d’infos sur ces méthodes: &lt;/p&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.portal.singlesignon.ssoproviderfactory.getssoprovider.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.portal.singlesignon.ssoproviderfactory.getssoprovider.aspx&lt;/a&gt; et &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.portal.singlesignon.issoprovider.getcredentials.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.portal.singlesignon.issoprovider.getcredentials.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=247" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="Sécurité" scheme="http://didierdanse.net/blogs/dev/archive/tags/S_E900_curit_E900_/default.aspx" /></entry><entry><title>SharePoint: Ferme, application web, collection de sites, sites et sous-sites, comment s’y retrouver?</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2009/05/24/sharepoint-ferme-application-web-collection-de-sites-sites-et-sous-sites-comment-s-y-retrouver.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2009/05/24/sharepoint-ferme-application-web-collection-de-sites-sites-et-sous-sites-comment-s-y-retrouver.aspx</id><published>2009-05-24T12:19:26Z</published><updated>2009-05-24T12:19:26Z</updated><content type="html">&lt;p&gt;Par l’aspect évolutif de SharePoint, toute personne amenée à réaliser l’architecture d’une infrastructure SharePoint se retrouve rapidement confrontée à une question importante: Que mettre à quel endroit? Il n’existe pas une réponse ferme et définitive. Par contre, chaque élément cité à des propriétés, des possibilités et des objectifs différents. Reste ainsi à utiliser les bons containers pour le bon contenu…&lt;/p&gt;  &lt;p&gt;Il existe différents types de &lt;em&gt;containers&lt;/em&gt; dont les principaux sont:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font color="#0000ff"&gt;1a) Ferme SharePoint (&lt;em&gt;SPFarm&lt;/em&gt; d’un point de vue développeur) &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;1b) Shared Services Provider&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;2) Application web (&lt;em&gt;SPWebApplication&lt;/em&gt;)&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#0000ff"&gt;3) Collection de sites (&lt;em&gt;SPSite&lt;/em&gt;)&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#800000"&gt;4) Sites (&lt;em&gt;SPWeb&lt;/em&gt;) &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font color="#800000"&gt;4) Sous-sites (&lt;em&gt;SPWeb&lt;/em&gt;)&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Principalement la hiérarchie autour de ces quatre premiers éléments (en bleu) répond à des besoins techniques alors que les deux suivants permettent d’organiser de manière purement logique les sites et les données comprises dans ces sites. &lt;/p&gt;  &lt;p&gt;Passons rapidement en revue de quoi est composer une infrastructure SharePoint. Pour plus de détails, rien de tel qu’une petite recherche sur Internet!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;1.A) Ferme SharePoint&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Il s’agit simplement de l’ensemble des serveurs front-end, applicatifs (Shared services), d’indexation ou encore hébergeant les bases de données. Une ferme pourra être déployée à un endroit particulier en fonction des objectifs de cette ferme comme, par exemple, permettre l’accès depuis Internet.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_2CF0EAD9.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_25C18894.png" width="682" height="398" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;u&gt;1.B) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Shared Services Provider&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Il s’agit d’un ensemble de services au niveau de la ferme ce qui sous-entend&amp;#160; &lt;em&gt;qui est partagé entre différentes applications web et donc sites collections&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;Parmi ces services on retrouve entre autres les notions de:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Profil (propriétés du profil, paramètres pour la synchronisation) &lt;/li&gt;    &lt;li&gt;Rercherche (scopes, mappings de propriétés, sources de contenu, …) &lt;/li&gt;    &lt;li&gt;Excel Services &lt;/li&gt;    &lt;li&gt;Business Data Catalog &lt;/li&gt;    &lt;li&gt;… &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_09D0539C.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_57A90351.png" width="595" height="243" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Il peut y avoir plusieurs SSP (Shared Services Provider) mais il est fortement conseillé de ne pas en abuser sans quoi la gestion de votre ferme s’en retrouvera fortement complexifiée.&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;u&gt;2) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Application web&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Rien d’exceptionnel pour les IT ou les développeurs qui ont déjà pu mettre en place des sites ASP.NET, PHP ou utilisant toute autre technologie puisqu’il s’agit d’une application web tout ce qu’il y a de plus classique avec entre autres:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Un site dans IIS &lt;/li&gt;    &lt;li&gt;Une url particulière &lt;/li&gt;    &lt;li&gt;Une méthode d’authentification liée à cette application &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_536F05BF.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_7596EB78.png" width="648" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On notera également que, dans un contexte SharePoint, une application web aura sa propre base de données (tout du moins lorsqu’il s’agit d’une nouvelle web application puisqu’il est possible d’&lt;em&gt;étendre&lt;/em&gt; des applications webs pour donner des paramètres différents permettant ainsi de partager des données au travers de différentes applications web qui proposent des techniques d’authentification différentes).&lt;/p&gt;  &lt;p&gt;Par ailleurs, SharePoint étant basé sur ASP.NET, le code et les mises à jour du web.config (avec le &lt;em&gt;SafeControls&lt;/em&gt; pour les initiés) se fera de manière globale pour les différentes collections de sites qu’exposent notre application web. On pourra ainsi utiliser ces différentes web applications pour empêcher certaines opérations (par exemple utiliser un web part) selon la population visée (Intranet, Extranet, Internet, partenaires, …). &lt;/p&gt;  &lt;p&gt;Enfin, une application web est toujours associée à un Shared Services Provider.&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;u&gt;3) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Collection de sites&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Une collection de sites est un container virtuel (en ce sens où l’on ne retrouve aucun fichier sur disque comme pour l’application web) et sa définition est stockée dans une base de données de configuration.&lt;/p&gt;  &lt;p&gt;D’un point de vue IT, la collection de sites a plusieurs avantages dont les principaux sont:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Quota de données &lt;/li&gt;    &lt;li&gt;Facilité de maintenance (le backup / restore se fait par défaut au niveau de cette collection) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_0A58BE2C.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_5B465C87.png" width="404" height="301" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Si l’on se place au niveau de la gestion du contenu, on notera que pour chaque collection de site est défini un administrateur. Cet administrateur peut ainsi gérer tout ce qui se trouve dans le site collections, à savoir:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Corbeille de second niveau &lt;/li&gt;    &lt;li&gt;Recherche customisée par site-collection &lt;/li&gt;    &lt;li&gt;Utilisateurs pour une collection de sites &lt;/li&gt;    &lt;li&gt;… &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enfin, l’utilisation des collections de sites permet de cataloguer des éléments customisés en fonction de la population qui accèdera à du contenu de cette collection de sites (par département par exemple):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Page maître &lt;/li&gt;    &lt;li&gt;Images &lt;/li&gt;    &lt;li&gt;Templates de sites et de listes &lt;/li&gt;    &lt;li&gt;Web parts &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Une collection de sites possède toujours un site racine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_3B67D2FF.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_2ABFB244.png" width="928" height="480" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;strong&gt;&lt;u&gt;4) &lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;Sites et sous-sites&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Jusque là, nous avons beaucoup parler des ITs, un peu des développeurs mais peu des utilisateurs finaux pourtant moteurs pour tout ce qui est contenu au sein de notre SharePoint.&lt;/p&gt;  &lt;p&gt;A ce niveau nous pourrions ne parler de &lt;em&gt;gestion de contenu&lt;/em&gt;. Selon les droits dont ils disposent, les utilisateurs peuvent:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Créer des sites &lt;/li&gt;    &lt;li&gt;Créer des listes &lt;/li&gt;    &lt;li&gt;Attacher des workflows à des listes &lt;/li&gt;    &lt;li&gt;Assigner des permissions &lt;/li&gt;    &lt;li&gt;Restaurer des données supprimées &lt;/li&gt;    &lt;li&gt;Et bien d’autres choses encore! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A ce niveau, seul le bon sens et les règles définies par votre entreprise ont de l’importance. Peu importe où se trouve les données, elles seront physiquement stockées au même endroit. Cela ne veut pas pour autant dire que l’on doit placer nos données partout et n’importe comment. Profitez des possibilités de SharePoint comme l’héritage des permissions pour gérer de manière efficace vos sites.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://didierdanse.net/blogs/dev/image_6934DA1D.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://didierdanse.net/blogs/dev/image_thumb_550B97C7.png" width="631" height="291" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Il est techniquement possible d’ajouter du code ou des outils de reporting aidant à la gestion mais il ne faut pas négliger la formation des utilisateurs qui recevront les droits de créer des sites.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Un exemple de hiérarchie de sites:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font color="#0000ff"&gt;Ferme &lt;/font&gt;      &lt;ul&gt;       &lt;li&gt;&lt;font color="#0000ff"&gt;Application Web 1 &lt;/font&gt;          &lt;ul&gt;           &lt;li&gt;&lt;font color="#0000ff"&gt;Collection de sites A (avec le site d’entrée)&lt;/font&gt;               &lt;ul&gt;               &lt;li&gt;&lt;font color="#800000"&gt;Site A.1 &lt;/font&gt;                  &lt;ul&gt;                   &lt;li&gt;&lt;font color="#800000"&gt;Site A.1.1 &lt;/font&gt;&lt;/li&gt;                    &lt;li&gt;&lt;font color="#800000"&gt;Site A.1.2 &lt;/font&gt;&lt;/li&gt;                 &lt;/ul&gt;               &lt;/li&gt;                &lt;li&gt;&lt;font color="#800000"&gt;Site A.2 &lt;/font&gt;&lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;            &lt;li&gt;&lt;font color="#0000ff"&gt;Collection de sites B (avec le site d’entrée)&lt;/font&gt;               &lt;ul&gt;               &lt;li&gt;&lt;font color="#800000"&gt;Site B.1 &lt;/font&gt;                  &lt;ul&gt;                   &lt;li&gt;&lt;font color="#800000"&gt;Site B.1.1 &lt;/font&gt;                      &lt;ul&gt;                       &lt;li&gt;&lt;font color="#800000"&gt;Site B.1.1.1 &lt;/font&gt;&lt;/li&gt;                     &lt;/ul&gt;                   &lt;/li&gt;                 &lt;/ul&gt;               &lt;/li&gt;                &lt;li&gt;&lt;font color="#800000"&gt;Site B.2&lt;/font&gt; &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;&lt;font color="#0000ff"&gt;Application Web 2 &lt;/font&gt;          &lt;ul&gt;           &lt;li&gt;&lt;font color="#0000ff"&gt;Collection de sites C (avec le site d’entrée)&lt;/font&gt;               &lt;ul&gt;               &lt;li&gt;&lt;font color="#800000"&gt;[…] &lt;/font&gt;&lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;            &lt;li&gt;&lt;font color="#0000ff"&gt;Collection de sites D (avec le site d’entrée)&lt;/font&gt;               &lt;ul&gt;               &lt;li&gt;&lt;font color="#800000"&gt;[…] &lt;/font&gt;&lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A vrai dire, il serait encore possible de rédiger sur ce sujet durant des heures mais je pense que ce post permettra déjà à bien des gens d’avoir un aperçu du pourquoi il est important de se renseigner préalablement à la mise en place de votre SharePoint.&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=240" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /><category term="Infrastructure" scheme="http://didierdanse.net/blogs/dev/archive/tags/Infrastructure/default.aspx" /></entry><entry><title>SharePoint: Un bug majeur dans le Service Pack 2!</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2009/05/24/sharepoint-un-bug-majeur-dans-le-service-pack-2.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2009/05/24/sharepoint-un-bug-majeur-dans-le-service-pack-2.aspx</id><published>2009-05-24T09:54:53Z</published><updated>2009-05-24T09:54:53Z</updated><content type="html">&lt;p&gt;Le titre est quelque peu alarmiste. C’est voulu sans quoi l’auriez-vous réellement lu? :-) Je vous rassure cependant: le bug existe mais la solution également.&lt;/p&gt;  &lt;p&gt;Après avoir installé le Service Pack 2 de SharePoint, SharePoint passe en mode &lt;em&gt;trial&lt;/em&gt; et la date d’expiration du produit change. Ainsi, si vous ne modifiez pas cette date, vous n’aurez plus d’accès au SharePoint au travers de l’interface.&lt;/p&gt;  &lt;p&gt;La procédure pour changer le Product ID est indiquée dans cette KB: &lt;a title="http://support.microsoft.com/default.aspx/kb/971620" href="http://support.microsoft.com/default.aspx/kb/971620"&gt;http://support.microsoft.com/default.aspx/kb/971620&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Pour plus d’infos: &lt;a title="http://blogs.msdn.com/sharepoint/archive/2009/05/21/attention-important-information-on-service-pack-2.aspx" href="http://blogs.msdn.com/sharepoint/archive/2009/05/21/attention-important-information-on-service-pack-2.aspx"&gt;http://blogs.msdn.com/sharepoint/archive/2009/05/21/attention-important-information-on-service-pack-2.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=238" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /></entry><entry><title>Téléchargez le Service Pack 2 de SharePoint</title><link rel="alternate" type="text/html" href="http://didierdanse.net/blogs/dev/archive/2009/05/24/t-233-l-233-chargez-le-service-pack-2-de-sharepoint.aspx" /><id>http://didierdanse.net/blogs/dev/archive/2009/05/24/t-233-l-233-chargez-le-service-pack-2-de-sharepoint.aspx</id><published>2009-05-24T09:21:04Z</published><updated>2009-05-24T09:21:04Z</updated><content type="html">&lt;p&gt;Depuis quelques mois, Microsoft propose les mises à jour de SharePoint au travers de deux types de packages: les Service Pack et les Cumulative Updates. Ainsi, pour avoir un environnement SharePoint qui soit à jour, vous devez installer:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Le dernier Service Pack &lt;/li&gt;    &lt;li&gt;Le dernier Cumulative Udpate &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Cette fois, ce n’est pas un Cumulative Update qui est proposé mais bien un Service Pack. Ainsi, vous ne devez installer rien d’autre que le Service Pack pour être à jour.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Voici les liens pour télécharger le SP:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SharePoint Service Packs&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Windows SharePoint Services 3.0 Service Pack 2 (SP2) – English &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=79bada82-c13f-44c1-bdc1-d0447337051b&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=79bada82-c13f-44c1-bdc1-d0447337051b&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=79bada82-c13f-44c1-bdc1-d0447337051b&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;MOSS seulement: The 2007 Microsoft Office Servers Service Pack 2 (SP2) &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=b7816d90-5fc6-4347-89b0-a80deb27a082&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b7816d90-5fc6-4347-89b0-a80deb27a082&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=b7816d90-5fc6-4347-89b0-a80deb27a082&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Language Pack Services Packs&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Windows SharePoint Services 3.0 Language Pack Service Pack 2 (SP2) &lt;/p&gt;  &lt;p&gt;32 bits: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=085e5ac8-58f6-4cf9-8012-33b95ee36c0f&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=085e5ac8-58f6-4cf9-8012-33b95ee36c0f&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=085e5ac8-58f6-4cf9-8012-33b95ee36c0f&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;64 bits: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=2c2b6caf-b46d-45eb-ac4d-deaaa48c3a2c&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2c2b6caf-b46d-45eb-ac4d-deaaa48c3a2c&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=2c2b6caf-b46d-45eb-ac4d-deaaa48c3a2c&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;MOSS seulement: The 2007 Microsoft Office Servers Language Pack Service Pack 2 (SP2)&lt;/p&gt;  &lt;p&gt;32 bits: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=01c6a3e8-e110-4956-903a-ad16284bf223&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=01c6a3e8-e110-4956-903a-ad16284bf223&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=01c6a3e8-e110-4956-903a-ad16284bf223&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;64 bits: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=66c5026f-9f47-4642-8378-2526918009fa&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=66c5026f-9f47-4642-8378-2526918009fa&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=66c5026f-9f47-4642-8378-2526918009fa&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;&lt;img src="http://didierdanse.net/aggbug.aspx?PostID=237" width="1" height="1"&gt;</content><author><name>Didier Danse</name><uri>http://didierdanse.net/members/Didier-Danse.aspx</uri></author><category term="SharePoint" scheme="http://didierdanse.net/blogs/dev/archive/tags/SharePoint/default.aspx" /><category term="Téléchargements" scheme="http://didierdanse.net/blogs/dev/archive/tags/T_E900_l_E900_chargements/default.aspx" /><category term="STSADM" scheme="http://didierdanse.net/blogs/dev/archive/tags/STSADM/default.aspx" /><category term="French/Français" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_E700_ais/default.aspx" /><category term="French/Fran&amp;#231;ais" scheme="http://didierdanse.net/blogs/dev/archive/tags/French_2F00_Fran_26002300_231_3B00_ais/default.aspx" /></entry></feed>