SharePoint 2007 : Une macro pour les déboguer tous

Petite astuce : pour s’attacher rapidement à tous les processus SharePoint de la machine, vous pouvez utiliser la macro suivante dans Visual Studio :

Les services ici sont ceux d’une installation Wss, mais vous pouvez tout autre processus que vous voulez déboguer.

C’est particulièrement utile dans mon cas je dois débugger une feature qui créer des SPJobDefinition…

Remarque : n’oubliez pas non plus que pour s’attacher au processus SharePoint, il faut avoir autorisé le debug dans le web.config…

Rating 5.00 out of 5
[?]

SharePoint 2007 et WCF

SharePoint 2007 (tant WSS que Moss) propose un certain nombre de services web qui permettent de gérer un grand nombre de choses : lister les sites webs d’une collection de site, ajouter des éléments à une liste, etc.

Nous allons aborder ici comment exploiter ces services webs, d’abord au travers des références Web, bien connues et facile à utiliser, mais aussi au travers de WCF, plus complexe mais bien plus puissant. Continue reading

Rating 5.00 out of 5
[?]

SharePoint, Firefox et authentification intégrée NTLM

Souvent, les clients qui utilisent SharePoint préfèrent utiliser Internet Explorer car avec les navigateurs alternatifs, il faut saisir le mot de passe. A l’inverse, Internet Explorer bénéficie par défaut de l’authentification intégrée Windows, pour peu que votre site soit dans la zone Intranet de votre navigateur. Il existe pourtant deux solutions pour s’authentifier avec FireFox sur un espace SharePoint  Continue reading

Rating 3.50 out of 5
[?]

Votez pour moi ! Concours Microsoft

Microsoft a lancé un petit concours dans leur forum. Le but est de contribuer avec un tutorial sur l’une des technologies proposées.

La gagnant sera celui qui aura le plus de vote utile.

J’ai répondu avec un de mes articles, alors n’hésitez à le noter comme utile  🙂

Le lien vers le sujet du concours :

http://social.technet.microsoft.com/Forums/en-US/1115/thread/0c2c884f-ad2b-4203-9357-d34e586780d1

Rating 5.00 out of 5
[?]

WSS 3.0, créer simplement une page d’association de Workflow

Si l’on s’en tient à la documentation Microsoft sur la création d’une page d’association de Workflow, chaque page devrait faire tout le boulot. Extrait du SDK (rubrique Workflow Association and Initiation Forms) :

The workflow developer must program what happens when the administrator submits changes to the form. In general, the custom workflow association form must perform the following actions:

  • Examine the value of the GuidAssoc parameter to determine whether the user is adding a new workflow association or editing an existing workflow association.
  • If the user is adding a new workflow association, call the AddWorkflowAssociation method to create a new workflow association.
  • If the user is editing an existing workflow association, call the UpdateWorkflowAssociation method to update that workflow association.
  • Create the task list for the workflow, if it does not already exist.
  • Use the data collected from the user to set properties of the SPWorkflowAssociation object, as appropriate.
  • Create the workflow history list, if necessary.

Tout ça est très lourd et doit être reproduit pour chaque page d’association que vous devez créer. Il existe toutefois une solution, probablement non supportée puisque non documentée. Continue reading

Rating 3.50 out of 5
[?]

Environnement de démo, réduire la taille des bases de données en mode Standalone

Il vous est peut être déjà arrivé de devoir migrer une machine virtuelle d’un serveur de développement vers un serveur démo, typiquement un laptop avec peu d’espace disque.

Pour gagner en place, il peut être intéressant de réduire la taille des bases de données. La commande DBCC SHRINKDATABASE (site technet) vient à notre secours !

Pour réduire au maximum la taille de votre base, utilisez la syntaxe ci dessous :

Et hop ! 2 Go gagné pour mon site d’équipe de démo.

Comment exécuter cette requête sur une installation en mode standalone ?

Lorsque vous installez SharePoint en mode Standalone (c’est souvent le cas pour les machines de démo), vous n’avez pas accès à Sql Management Studio… enfin presque. En effet, l’installation en mode Standalone utilise une version particulière de SQL Server, à savoir la version “Windows Internal Database” (anciennement Sql Server Embedded Edition). Cette dernière n’est accessible qu’en local et via les canaux nommés. Il est possible d’utiliser une chaine de connexion comme celle ci :

[text]\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query[/text]

Cette chaine de connexion accèdera au serveur par canaux nommés, ce qui est l’unique possibilité ouverte par la version Windows Internal Database.

Avec cette chaine de connexion, vous devriez être en mesure d’administrer la base depuis Sql Management Studio.

Scripter la réduction de toutes les bases depuis la ligne de commande

Vous voudrez peut être scripter cette réduction depuis la ligne de commande. Soit parce que vous ne voulez pas installer les outils SQL sur une machine de démo, soit parce que vous souhaitez automatiser cette réduction (j’ai par exemple sur le bureau de ma machine un fichier .cmd que je lance avant de sauvegarder / dupliquer le ficher vhd pour réduire la taille de ce dernier).

Pour se faire, vous pouvez passer par l’utilitaire en ligne de commande sqlcmd. Ce dernier vous permet d’exécuter des requêtes depuis la ligne de commande. Par exemple, la commande suivante var réduire la taille de la base de contenu wss_content :

[text]sqlcmd.exe -E -S \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query –Q "DBCC SHRINKDATABASE ( wss_content)" -c go[/text]

Enfin, la procédure stockée sp_MSforeachdb (qui n’est pas supportée par Microsoft, mais ce n’est pas un souci dans notre cas) permet d’exécuter une commande sur toutes les bases d’un serveur. Appliqué à notre besoin, la requête ressemblera à celle ci :

Ou encore dans la version ligne de commande :

[text]sqlcmd.exe -E -S \\.\pipe\mssql$microsoft##ssee\sql\query -Q "EXEC sp_MSforeachdb @command1=N’DBCC SHRINKDATABASE (?)’, @replacechar=’?’" -c go

[/text]

Vous pouvez, comme moi, créer un fichier .cmd qui lancera cette commande à la demande avant copie de vhd, ou selon vos besoins, planifier la commande une fois par jour, etc.

Quid de la production ?

Vous pourriez être tenté de vouloir appliquer cette méthode sur un serveur de production, mais avant que les DBA soient sur votre dos, je vous rappelle qu’il est déconseillé d’utiliser cette approche en production. En effet, lorsque la base est pleine, SQL Server va interrompre les connexions en cours, puis augmenter la taille des fichiers de la base… ce qui a le double impact négatif de prendre du temps et de favoriser la fragmentation. Le sujet de l’article n’est pas de parler de la production donc je vous laisse chercher sur la toile ces best-practices !

Rating 5.00 out of 5
[?]