SharePoint au Quotidien avec EROL

 

Retour page Accueil
Remonter

 

 

 

 

 

 

 

 

Catégories (voir fiche Assistant catégories ).

Les catégories représentent une vue par sujets du contenu de l’espace de travail, et diffèrent par conséquent des structures de taxonomie abordées par la méthode d’adaptation des dossiers. Comme stipulé précédemment :

*        les catégories sont axées sur les lecteurs ;

*        les catégories ne suivent aucune restriction en termes de stratégie de sécurité ;

*        les documents de l’espace de travail peuvent être placés dans plusieurs catégories.

Les lecteurs qui utilisent les catégories peuvent être des auteurs de contenu très familiarisés avec l’espace de travail, des lecteurs ayant une connaissance limitée de l’espace de travail ou des visiteurs occasionnels n’ayant aucune connaissance de la structure de l’espace de travail ou du contenu. Ces derniers groupes ont particulièrement besoin de l’orientation en matière d’exploration qu’offrent les catégories, aussi doivent-ils demeurer le point de mire lors de la conception des structures de catégories.

Comme il a déjà été dit, la hiérarchie de dossiers ne constitue pas la meilleure base à partir de laquelle dériver les catégories. Comme le montre la méthode d’adaptation des dossiers, les intérêts qui guident les auteurs ne sont pas ceux qui guident les lecteurs. Les catégories doivent adopter une vue externe des informations dans l’espace de travail. Une façon d'obtenir une vue extérieure est d’examiner les informations conçues pour l’extérieur. Il est également possible d’écouter les questions que posent les personnes en dehors de l’organisation au sujet des informations figurant dans l’espace de travail, et de mettre au point des catégories qui guident ces personnes vers les réponses.

Par exemple, une équipe a passé en revue les présentations de marketing et les appréciations externes de ses projets pour comprendre comment organiser les informations destinées aux personnes extérieures à l’équipe. Étant donné que des personnes compétentes dans l’art de communiquer des concepts de projet à un public néophyte avaient créé les présentations, l’utilisation de ces informations a permis d’exploiter le travail qu’ils avaient déjà effectué. Ils ont ensuite décomposé les informations issues des présentations pour initier la formation du premier ensemble de catégories.

Contrairement aux dossiers, dans lesquels il doit être aussi simple que possible d’identifier l’emplacement unique d’un document, les catégories ne doivent pas répugner à être redondantes. Plusieurs catégorisations permettent au concepteur de catégories d’anticiper et de répondre aux nombreuses approches de recherche des informations mises en œuvre par les lecteurs. S’il existe plusieurs chemins de catégorie vers un document donné, ceci augmente les chances qu’un lecteur trouve un document qui l’intéresse. Par exemple, un lecteur qui recherche un contenu sur le Congrès américain peut commencer par Gouvernement, puis Gouvernement fédéral par opposition à Gouvernement d’état ou local, et poursuivre avec Congrès, alors qu’un autre lecteur peut commencer par Corps législatif national, puis continuer avec Congrès américain par opposition à la Diète japonaise, à la Knesset israélienne ou à la Douma russe.

Chaque niveau de l’arborescence des catégories peut pointer vers un contenu. Méfiez-vous des catégories intermédiaires qui sont sans intérêt et qui contraignent les utilisateurs à parcourir une arborescence avant d'obtenir un résultat quelconque. Chaque catégorie intermédiaire représente des couches supplémentaires de navigation qui se trouvent entre les lecteurs et le contenu qu’ils recherchent ; elles augmentent seulement la complexité de navigation dans l’arborescence des catégories. De plus, bien que vous puissiez organiser les informations en catégories à une profondeur arbitraire, les profondeurs de catégorie excessives sont un défi lancé aux lecteurs. Toute structure de catégorie dont la profondeur dépasse trois ou quatre niveaux doit être révisée. Vous devez limiter la profondeur maximale à celle qui convient à vos lecteurs.

Les catégories définies lors de la première journée de conception de l’espace de travail ne restent pas statiques. Les catégories sont censées évoluer dans le temps en réponse aux besoins des utilisateurs. Outre le fait de répondre aux demandes spécifiques des utilisateurs, vous pouvez explicitement recueillir leurs besoins réels en analysant les recherches les plus fréquentes, et en vous efforçant de convertir ces termes de recherche en catégories.

Implémentation

Après avoir créé une hiérarchie de dossiers et une structure de catégories, vous devez créer une stratégie de sécurité globale et identifier d’autres sources de contenu. Cette section présente les tâches d'implémentation.

Adaptation des dossiers

Nous vous recommandons d'assurer le suivi de votre processus lorsque vous adaptez des hiérarchies de dossiers existantes à un espace de travail. La décision à prendre sur chaque combinaison de dossiers demeure un processus manuel, mais vous pouvez l’automatiser en grande partie. Vous pouvez créer une feuille de calcul contenant un mappage de la hiérarchie de dossiers originale vers la structure de l’espace de travail. Créez ensuite un script pour analyser la feuille de calcul, créez la taxonomie dans un espace de travail vide et importez le contenu. Pour plus d’informations à ce sujet, voir l’annexe B, Pour plus d’informations.

 

Application des stratégies de sécurité

Après avoir créé la structure de l’espace de travail, vous devez mener à bien les tâches suivantes :

*        Mapper la sécurité dans l’espace de travail. Après avoir créé la structure, vous devez encore évaluer la sécurité. Vous pouvez choisir de rompre avec l’héritage de sécurité et spécifier des autorisations effectives sur les dossiers sécurisés.

*        Spécifier des sources de contenu. L’espace de travail comporte uniquement un contenu natif, mais vous pouvez envisager d’y inclure un contenu externe.

*        Désigner des coordinateurs de dossiers. Vous avez identifié des coordinateurs dès l'étape de planification, mais vous devez encore les affecter aux dossiers appropriés.

*        Spécifier des itinéraires d’approbation. Vous devez identifier et implémenter des itinéraires d’approbation et des approbateurs.

*        Identifier les Meilleurs résultats. Les catégories et les mots-clés de recherche deviennent beaucoup plus utiles dès lors que vous définissez les Meilleurs résultats, mais une grande partie de cette définition provient des auteurs plutôt que des coordinateurs, et évolue dans le temps.

Recommandations

La meilleure manière de commencer à créer des taxonomies est de lancer le processus et d’apprendre à mesure que vous avancez. Expérimentez, créez un prototype, mettez-le en service avec quelques utilisateurs pour voir comment il fonctionne, puis supprimez-le. Les deuxième et troisième prototypes que vous créerez seront optimisés et plus simples d’accès pour tous.

La taxonomie initiale continue à évoluer pour plusieurs raisons. La vitesse de création de dossier est probablement plus lente que dans les systèmes de fichiers traditionnels, mais ne s’arrête pas. Les besoins professionnels peuvent nécessiter plus de profils de document. Les propriétés ajoutent des valeurs de dictionnaire. L’usage étend et modèle les catégories. Soyez prêts à modifier et à mettre à jour constamment le travail d’établissement de l’espace de travail initial.

Le tableau suivant récapitule les résultats de l’application de la méthode décrite dans ce chapitre et montre l’importance de la réduction des dossiers, ainsi que le volume des entités créées, par exemple les profils de document et les propriétés.

Résumé des résultats

 

Dossiers Visual SourceSafe

Espace de travail SharePoint Portal Server

Dossiers

240

72

Propriétés

11

Profils de document

68 réduits à 10

Propriétés par profil de document

3 à 5

Dictionnaires

8

 

Une seule valeur de catégorie peut être attribuée par fichier

Le mappage d’une propriété source, saisie sous la forme d’une chaîne, sur la propriété cible urn:schemas-microsoft-com:publishing:Categories a pour résultat l’attribution par SharePoint Portal Server de l’élément à cette catégorie. Les valeurs de source doivent être des noms de catégorie valides précédés de deux points (par exemple, ":Catégorie 1"). Lorsque vous mappez à partir de balises META HTML, vous ne pouvez mapper qu’une valeur par document. SharePoint Portal Server attribue une seule valeur à la propriété Categories.

Code de mappage de profil

Modifiez et appliquez le code de mappage de propriétés pour qu’il mappe les balises META et les balises de propriétés provenant du contenu externe sur les propriétés du profil de document de SharePoint Portal Server. Un exemple de code est présenté ci-après.

Exemple de code

Le fragment de code suivant présente en détail les actions nécessaires à l’enregistrement de la propagation des propriétés et métadonnées provenant de la source de contenu externe dans SharePoint Portal Server. Il s’agit d'un code Microsoft Visual Basic® 6, et non d'un code Microsoft Visual Basic Scripting Edition (VBScript). Si vous voulez des exemples en VBScript, consultez le script PropMap.wsf figurant dans CrawlingMetadataPropmap.zip. Si vous ajoutez ce code à un projet en Visual Basic, vous devez ajouter la bibliothèque de types PKMCDO comme référence. L’exemple qui suit utilise largement les constantes intégrées pour les espaces de nom SharePoint Portal Server.

Remarque L’exemple de code suivant montre le chemin d’accès aux sources de contenu sous la forme de /Management/Content Sources/. Si vous exécutez un système dans une langue autre que l’anglais, remplacez ce chemin par la chaîne localisée contenant le nom du dossier de sources de contenu.

Dim objCS As PKMCDO.KnowledgeStartAddress
Dim objSPR As PKMCDO.IKnowledgeCatalogSitePathRule
Dim colSitePathRules As IKnowledgeCatalogSitePathRules
Dim strWMIPath As String

' Modifiez les valeurs suivantes pour refléter le nom de votre serveur,
' workspace (espace de travail), content source (source de contenu) et target document profile (profil de document cible).
Const MYSERVER = "SharePoint_Portal_Server_computer"
Const MYWORKSPACE = "SharePoint_Portal_Server_workspace"
Const MYSOURCE = "FileContentSource"
Const MYDOCPROFILE = "DocProfileName"

' Construisez l’URL menant au dossier Sources de contenu de votre espace de travail.
strUrlContentSource = "http://" & MYSERVER & "/" & MYWORKSPACE _
& [ochev]/Management/Content Sources/[cchev] & MYSOURCE

' Ouvrez l’élément KnowledgeStartAddress (source de contenu).
Set objCS = New PKMCDO.KnowledgeStartAddress
objCS.DataSource.Open strUrlContentSource, , adModeReadWrite

' Précisez la classe de contenu (Profil de document)
' à attribuer aux fichiers analysés.
objCS.Fields(PKMCDO.cdostrURI_TargetContentClass) = _
PKMCDO.cdostrNS_ContentClasses & MYDOCPROFILE

' Toutes les balises seront précédées d’un espace de nom.
' PKMCDO propose des constantes intégrées pour la plupart d’entre elles. Remplacez ' les éléments du tableau ci-après par les noms de propriétés que vous voulez utiliser,
' en ajoutant ou supprimant des lignes, selon vos besoins. Remarque : il est important que
' les trois tableaux suivants comptent le même nombre
' d’éléments et suivent la même séquence de noms de propriétés.

' Si vous analysez des documents HTML, toutes les propriétés seront précédées d’un
' nom d’espace HTML standard. L’espace de nom de la source
' peut varier pour d’autres types de fichiers. Voir les détails ci-après.
objCS.Fields(PKMCDO.cdostrURI_SourceProperties) = Array( _
PKMCDO.cdostrNS_HtmlMetaInfo & "ExternalTag1", _
PKMCDO.cdostrNS_HtmlMetaInfo & "AnotherTag2", _
PKMCDO.cdostrNS_HtmlMetaInfo & "TheLastTag" )

' Chaque propriété de source exige une entrée de type de données.
objCS.Fields(PKMCDO.cdostrURI_SourceTypes) = Array( _
"string", _
"string", _
"string")

' Toutes les propriétés SharePoint Portal Server sont précédées de l’espace de nom
standard Office
' Vérifiez qu’elles correspondent à leur source,
dans l’ordre.
objCS.Fields(PKMCDO.cdostrURI_TargetProperties) = Array( _
PKMCDO.cdostrNS_Office & "SharePoint_Portal_Server_Property1", _
PKMCDO.cdostrNS_Office & "SharePoint_Portal_Server_Property2", _
PKMCDO.cdostrNS_Office & "SharePoint_Portal_Server_Property3 )

' Il ne suffit pas d’ajouter quatre propriétés à l’élément de définition de la source de contenu.
' Vous devez également ajouter un chemin d’accès au site correspondant à
' cette source de contenu. Vous pouvez afficher ces chemins d’accès à partir du dossier de gestion
' des sources de contenu, en ouvrant l’élément "Paramètres supplémentaires"
' puis en cliquant sur le bouton "Chemins d’accès au site" dans la boîte de dialogue
qui s’ouvre.
Set colSitePathRules = objCS.Workspace.Catalog.SitePathRules

' Remarque : ce code ne vérifie PAS si un chemin d’accès au site correspondant
' existe déjà. Avant d’exécuter ce code, vérifiez si des
' chemins d’accès au site existent et, si tel est le cas, supprimez-les.
Set objSPR = colSitePathRules.Add(objCS.Address & "/*", True)
objSPR.ContentClass = objCS.Fields(PKMCDO.cdostrURI_TargetContentClass)
objSPR.PropertyMappingUrl = strUrlContentSource

' Nettoyez les références aux objets et enregistrez tout. L’élément de règle de chemin d’accès au site
' n’a pas besoin d’être enregistré explicitement, mais la source de contenu doit l’être.
Set GetAllGroups = Nothing
Set GetAllGroups = Nothing

objCS.Fields.Update
objCS.DataSource.Save
Set GetAllGroups = Nothing

Utilisation de fichiers de script pour le mappage des propriétés

L’exemple de code précédent illustre les étapes de l’utilisation de PKMCDO. L’exemple qui suit, en revanche, est une application totalement fonctionnelle que vous pouvez utiliser immédiatement pour configurer le mappage des propriétés. Le fichier CrawlingMetadataPropmap.zip contient ce code.

Le fichier CrawlingMetadataPropmap.zip contient un fichier de script Microsoft Windows® Scripting Host appelé PropMap.wsf, qui accepte en entrée un fichier XML fournissant des informations relatives au serveur, à l’espace de travail et à la source de contenu, ainsi que des informations relatives au mappage des propriétés. PropMap.xml est un exemple du format de fichier que ce script attend.

Vous pouvez exécuter ce script sur tout ordinateur Microsoft Windows 2000 sur lequel vous installez le logiciel SharePoint Portal Server (ou client, à savoir, un ordinateur sur lequel vous installez PKMCDO). Le script accepte un paramètre unique, le nom de chemin d’accès du fichier XML contenant les instructions de mappage à traiter. Si ce paramètre manque, le script suppose que le fichier PropMap.xml se trouve dans le même répertoire que le fichier de script.

Le code qui suit décrit le document XML attendu par le script PropMap.wsf. Les noms d’éléments décrivent en détail les informations nécessaires à la création d’un mappage de propriétés.

Remarque Ce format n’est pas pris en charge et n’est pas suggéré en tant que représentation standard. Sa portée est limitée à ce chapitre afin d’ajouter de la valeur à l’exemple de code personnalisé qui suit.

Lors de l’examen de l’élément <targetContentClass>, notez que le code du script fait précéder de «urn:content-classes:» toute valeur n’étant pas précédée d’un espace de nom.

Lors de l’examen des éléments <sourceName>, notez que le code du script fait précéder de «urn:schemas.microsoft.com:htmlinfo:metainfo:» toute valeur n’étant pas précédée d’un espace de nom.

Lors de l’examen des éléments <targetName>, notez que le code du script fait précéder de «urn:schemas-microsoft-com:office:office#» toute valeur n’étant pas précédée d’un espace de nom.

<?xml version="1.0"?>
<propertyMap>
<server>
<name>server1</name>
<workspace>
<name>test1</name>
<contentSource>
<name>dogbreeds</name>
<targetContentClass>DogBreed</targetContentClass>
<property>
<sourceName>breedOrigin</sourceName>
<sourceType>string</sourceType>
<targetName>breedOrigin</targetName>
</property>
<property>
<sourceName>breedName</sourceName>
<sourceType>string</sourceType>
<targetName>breedName</targetName>
</property>
<property>
<sourceName>breedFirstBred</sourceName>
<sourceType>dateTime</sourceType>
<targetName>breedFirstBred</targetName>
</property>
<property>
<sourceName>breedWeight</sourceName>
<sourceType>i4</sourceType>
<targetName>breedWeight</targetName>
</property>
<property>
<sourceName>Abstract</sourceName>
<sourceType>string</sourceType>
<targetName>Description</targetName>
</property>
<property>
<sourceName>ContentClass</sourceName>
<sourceType>string</sourceType>
<targetName>DAV:contentclass</targetName>
</property>
<property>
<sourceName>Categories</sourceName>
<sourceType>string</sourceType>
<targetName>urn:schemas-microsoft-com:publishing:Categories</targetName>
</property>
</contentSource>
</workspace>
</server>
</propertyMap>

Utilisation du wrapper IFilter HTML modifié

Un module complémentaire IFilter conçu pour Index Server est disponible sur le site Microsoft Software Developers Network (MSDN®). Vous pouvez enregistrer ce filtre au lieu du Ifilter HTML standard. Il fonctionne en chargeant le «véritable» IFilter HTML, en interceptant les valeurs de balises <META> qu’il renvoie, et en convertissant les valeurs sélectionnées en nombres et/ou dates à mesure qu’elles sont transmises au service d’indexation.

Une série de tests effectués dans un environnement SharePoint Portal Server a montré que ce IFilter fonctionne correctement et affecte peu les performances.

Le code IFilter d’origine est disponible sur le site MSDN anglais à la page Using HTML Meta Properties with Microsoft Index Server . Nous vous conseillons fortement de lire cet article avant de poursuivre. Nous vous conseillons également d’utiliser la copie modifiée de ce IFilter contenue dans ce chapitre, plutôt que le code fourni avec l’article d’origine.

Le fichier CrawlingMetadataHtmlprop.zip contient la version modifiée incluant la source. Cette version contient une prise en charge des formats de date supplémentaires mentionnés dans l’article Q240390 (en anglais) de la Base de connaissances, plus particulièrement :

*        Sun Nov 6 08:49:37 1994

*        Sun, 06 Nov 1994 08:49:37

*        GMT Sunday, 06-Nov-94 08:49:37

*        GMT Sun Nov 6 08:49:37 1994

Elle prend également en charge le format de stockage davantage centré sur XML et Web Storage System :

*        1994-11-06T08:49:37.000

Le code source d’origine prenait en charge un nombre plus réduit de formats, qui étaient moins standard pour les besoins de l’analyse de contenu HTML. Il nécessitait que l’administrateur précise dans un fichier .ini les propriétés à transformer en types de données différents.

Puisque le code source complet est inclus, les seuls fichiers nécessaires pour commencer sont HTMLProp.dll et HTMLProp.ini. Le fichier .ini contient des informations sur l’installation (et la suppression). Un fichier ReadMe.txt fournit le contexte, mais une grande partie de son contenu est spécifique aux versions antérieures de Index Server. Le fichier HTMLProp.ini contient toutes les informations nécessaires à l’installation et à l’enregistrement de HTMLProl.dll.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spssdk/html/_creating_a_categories_web_part_sample.asp

 

Microsoft SharePoint Portal Server SDK

Category-Specific Web Part Sample

The purpose of this code sample is to create a category-specific Web Part.

This code sample provides an example of the Creating a Context-Specific Web Part scenario.

This section include the following topics:

·                     Objectives

·                     Requirements

·                     Location of the Sample

·                     Working with the Sample

Related Topics

Dashboard Site User Interface Overview

Extending a SharePoint Portal Server Dashboard Site

SharePoint Portal Server Concepts

SharePoint Portal Server Digital Dashboard Web Parts

See Also

Microsoft Digital Dashboard

© 2002 Microsoft Corporation. All rights reserved.

Microsoft SharePoint Portal Server SDK

Location of the Sample

The following table describes the path name, the file name, and a brief description of the files in the code sample.

Path name

File name

Description

<sdk_root>\Samples\SPS\Category\DWP\

categoryspecific.dwp

A category-specific Web Part contained in a dashboard Web part (DWP) file.

<sdk_root>\Samples\SPS\ Category\DWP\CategorySpecific_Files

categoryspecific.vbs

A VBScript that is the content of the Web Part.

<sdk_root>\Samples\SPS\ Category\DWP\CategorySpecific_Files

dummyserver.asp

An ASP page written with JavaScript that serves up specific information to be displayed in the Web Part.

 

© 2002 Microsoft Corporation. All rights reserved.

 

Working with the Sample

Reading the Sample

Any .asp code can be placed into the dummyserver.asp file to present category-specific information. The dummyserver.asp code returns the name of the selected category in an IFrame in the category browser page. For the purposes of this code sample, the .asp file is packaged with the Web Part, but an .asp file could be in any location.

The word, Categories, displays in the form of a URL and each language of SharePoint Portal Server uses a different value for this keyword. This Web Part obtains the correct language-dependent use and spelling of Categories from the system schema and uses this substituted value to parse the selected category name. This prevents this sample from breaking in non-English systems.

Running the Sample

To run this sample, you must complete the following two procedures:

·                     Importing the Web Part

·                     Configuring the Web Part

To import the Web Part:

1.                  As a coordinator, open the dashboard site for your workspace.

2.                  To open the Categories dashboard, click the Categories tab.

3.                  Click Content.

4.                  Under Import or Create, click Import a Web Part File.

5.                  Browse to sample .dwp file (<sdk_root>\Samples\SPS\Category\DWP\ categoryspecific.dwp).

6.                  Select the Web Part file and click Open.

The imported Web Part appears as "Category Specific Web Part" in the Web Parts list.

7.                  In the Web Parts section of the dashboard site, click the Web Part that you have added, entitled Category Specific Web Part.

To configure the Web Part:

1.                  Click Show Advanced Settings.

2.                  Select the Store the following data for this Web Part check box.

3.                  In the text box, type a comma-separated list of categories in the workspace. Categories listed here must currently exist on the dashboard site for this code sample to work. By default, the sample inserts CATA, CATB, CATC as a sample.

4.                  To commit the changes to the Advanced Settings for the Web Part, click Save.

5.                  To save the Web Part and new settings to the dashboard site, click Save.

Verifying the Sample

When you select any of the related categories in the Categories dashboard, the Web Part that you create should appear on your dashboard site with the message, "This is the response specific to category <Your_Category_Name>."

 

© 2002 Microsoft Corporation. All rights reserved.

Built on Friday, February 01, 2002 

Ce document préliminaire pourra être modifié de façon substantielle avant sa diffusion commerciale. Il est fourni uniquement à titre d’information et Microsoft ainsi que EROL n’apportent aucune garantie, explicite ou implicite, le concernant. Les informations présentées dans le présent document peuvent être modifiées sans préavis. L’utilisateur reconnaît assumer tous les risques liés à l'utilisation ou aux résultats de l’utilisation de ce document. Les exemples de sociétés, d’organisations, de produits, de personnes et d’événements décrits dans ce document sont fictifs. Aucune association avec une société, une organisation, un produit, une personne ou un événement réel n’a été voulue ou ne doit être déduite. L’utilisateur est tenu de respecter toutes les lois applicables en matière de droits d’auteur. Sans restriction des droits dérivés des droits d’auteur, aucune partie de ce document ne peut être reproduite, stockée ou introduite dans un système de récupération de données ou transmise à quelque fin ou par quelque moyen que ce soit (électronique, mécanique, photocopie, enregistrement ou autre) ou dans quelque but que ce soit sans la permission expresse et écrite de Microsoft Corporation.
Les produits mentionnés dans ce document peuvent être couverts par des brevets, des dépôts de brevets en cours, des marques, des droits d’auteur ou d’autres droits de propriété intellectuelle et industrielle de Microsoft. Sauf indication expresse figurant dans un contrat de licence écrit émanant de Microsoft, la fourniture de ce document ne vous concède aucune licence sur ces brevets, marques, droits d’auteur ou autres droits de propriété intellectuelle.
Microsoft, Windows, ActiveX, FrontPage, Visual Basic et Visual InterDev sont soit des marques de Microsoft Corporation, soit des marques déposées de Microsoft Corporation aux États-Unis d’Amérique et/ou dans d’autres pays.
Les noms de sociétés et de produits mentionnés sont des marques de leurs propriétaires respectifs.

 

Retour page Accueil ] Remonter ]

Envoyez un courrier électronique à EROL GIRAUDY (attention nospam dans l'E-mail) pour toute question ou remarque concernant ce site Web et visitez la rubrique Condition Utilisation et CNIL. Copyright © 2002 EROL (les sigles et logos ci-après sont la propriété de : Microsoft, Supinfo, Adobe, Compaq, HP, Sybari, Veritas, Moreover, K-map, Vyapin, Plumtree, Ixos, TooStore, K-Map, eRoom, DocKIT,NQL, Only4gurus, Nsius, Sharepointexperts, Iora, Erol, KCura, FrontPages, Nsi, Frontlook, IBuySpyPortal, moreover, slipstick, networknowledge, clubsps.org )
Dernière modification : mercredi, 25. février 2004 07:32