Publié dimanche 27 avril 2008 15:34 par Arnault Nouvel

Sharepoint : La CodeTesterWebPart en pratique

Lorsque l'on développe sous Sharepoint, à chaque fois que l'on modifie son code il faut compiler, packager, déployer, recycler son application pool, et attendre que Sharepoint s'initialise. On peut alors vérifier l'éxécution du code si on a la chance d'avoir un bouton qui le déclenche directement, mais celui-ci peut aussi être éxécuté en fin de workflow ou lors d'évènements plus ou moins évidents à reproduire.

Tester du code dans son contexte d'exécution est donc souvent une tâche longue et fastidieuse pour le développeur Sharepoint.

La CodeTesterWebPart permet la compilation et l'éxécution instantanée de code C#. Elle est disponible depuis quelques jours sur CodePlex : http://www.codeplex.com/CodeTesterWebPart

On dispose d'une boite de texte dans laquelle on saisit le code que l'on souhaite, et d'un bouton "Run that method!" qui permet de l'éxécuter instantanément. On peut modifier la liste des assemblies référencées (en spécifiant leur chemin sur le disque) ainsi que les usings :

ListLists

Le bouton "Save Inputs" permet de sauvegarder les références, usings, et le code grâce au concept de Personnalization.

Si il y a des erreurs de compilation, elles sont affichées :

CompilerResults

La méthode de test dispose de deux arguments permettant de tester du code d'interface graphique : la page courante et un placeholder qui est situé juste en dessous du corps de la webpart. Ici, on joue avec un diagramme de gantt et on injecte du javascript dans la page :

Gantt2

Autre avantage, le code s'exécute avec le contexte courant. On peut donc tester tout ce qui concerne les droits. Par exemple, avec un compte visiteur, si on tente de modifier le titre du site courant avec la CodeTesterWebPart, on est redirigé vers la page Access Denied. On se rend alors compte qu'il faut utiliser  SPSecurity.RunWithElevatedPrivileges, le code suivant fonctionne sans problème :

SPSecurity

On pourrait se dire que les limites sont atteintes dès lors que l'on veut tester du code récursif. Non, c'est possible aussi ! Il suffit de tricher un peu sur le parenthèsage. Après tout, le code est compilé tel qu'il est rendu à l'écran.

Recursive

Mais comment ca marche ?!

Le namespace System.CodeDom contient des classes qui permettent de compiler dynamiquement une assembly à partir de code source sous forme de chaine de caractères. La CodeTesterWebPart compile ainsi une assembly en mémoire, il n'y a pas d'écriture sur le disque. La méthode TestMethod est ensuite appellée par reflection, de manière tout à fait classique. Pour les plus curieux, le code source est disponible sur CodePlex.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

# re: Sharepoint : La CodeTesterWebPart en pratique @ dimanche 27 avril 2008 18:45

carrément sympa :)

phil

# re: Sharepoint : La CodeTesterWebPart en pratique @ dimanche 27 avril 2008 23:58

Coder sous SharePoint, c'est beau :-)

Tu as eu une très bonne idée Arnault :-)

Gribouillon

# re: Sharepoint : La CodeTesterWebPart en pratique @ lundi 28 avril 2008 08:13

Merci !

A priori la prochaine étape serait la gestion du VB.NET, mais si vous avez d'autres idées d'évolution (non, pas intellisense...) je suis preneur

Arnault Nouvel

# re: Sharepoint : La CodeTesterWebPart en pratique @ lundi 28 avril 2008 14:46

Arf, moi j'aime bien, surtout la pile de compilation avec les warnings.

Good job !

Perso, je rajouterais un petit truc : pouvoir plier/déplier la partie code et demo

Ainsi, si le code est vraiment long, on peut le replier pour voir de suite le résultat.

Un dernier point :

Ca me rappelle cependant un autre petit projet un poil similaire de Carlos Segura

- csegScript -

http://www.ideseg.com/CategoryView,category,csegScript.aspx

http://www.ideseg.com/csegScriptWebpart10WriteAndTestCodeDirectlyIntoYourSharepointSite.aspx

>>> Bon en même temps, je suis un archiviste humain des rss SharePoint :)

l'apporche d'une liste de sample à evaluer avec param et compagnie est un belle approche non ?

A++ et encore bravo

themit

# re: Sharepoint : La CodeTesterWebPart en pratique @ lundi 28 avril 2008 15:51

Effectivement, son projet est similaire et a l'air sympa aussi

Bonne idée le pliage du code je vais voir ce que je peux faire ;)

merci de ton retour

Arnault Nouvel


Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01