#SPC09 : SharePoint Coding Best Practices
Agenda
- Packaging
- Developement environnement
- Testing
- Defensive coding
Ah ah ah, enfin une session de feedback et de bonne pratique
>>> A noter aue MS considére aue la maitrise du packaging SP restera toujours une priorité : je ne saurais pas être plus en phase avec eux :)
Packaging
WSP est un simple cab hiérarchique contenant tous les éléments de son projet à déployer sur sa ferme. Avec la possibilité de retractation !
il faut maitriser ce processus, le nouveau VS 2010 permet de personnaliser ce processus, il faut savoir en profiter
Pour les afficionados de 2007, une bonne matrice de comparaison des outils pro WSP
http://www.sharepointdevwiki.com/display/public/Solution+package+development+tool+comparisons
Dev Machine
il est impératif d’avoir son propre serveur local
>>> Bonne nouvelle : SP foundation & server vont fonctionner sur windows Seven et Vista SP1
- install Metal
- sur l’os client en direct
- sur un 2008 serveur R2
- Virtualization
- 2008 HyperV : pas vraiment user friendly …
- Boot to vhd
- Seven boot sur vhd
- 2008 boot aussi sur vhd
Lifecycle
- Dev PC + Team foundation
- faites des TESTS et encore plus de TEST : pas de smoke testing (si ca fume, c’est aue ca brule = compil et on observe en résumé)
- quality by validation
- chaque test permet de définir le rôle réel de son code
- la manière la plus rapide d’avoir un code qui fonctionne
Principe du test unitaire : se substituer à la plateforme de production pour simuler une activité unique et atomique
Utilisation du pattern MVP pour faciliter l’isolation et de la le test + TypeMock pour émuler un objet SP
Load Testing
il faut valider l’impact de son code sur la performance de sa ferme.
- identifier les gouffre de perf
- ainsi que les memory leaks/pressure
Defensive coding
Une certaine logique de protection
- ne pas altérer le schema SQL
- utiliser les outils natifs comme ULS logging plutôt que de monter le sien
- limiter la somme de job dans un event receiver
- idem dans un httpmodule
- eviter d’evaluer des items dans une boucle
- …
- …
- et ainsi de suite
>>> profiter des forums et des Wikis d’internet pour vérifier si vous ne partez pas dans un “dead trap”
Bien contrôler que tout les objets sont bien libérés
- SPDisposecheck
- Règle générale : si l’objet vient du contexte, vous ne devez pas le fermer et vice et versa
Conclusion : le message est clair, pour un code de qualité sous SP 2010, faites des TESTs
Kangoo ! Phil ! ou êtes vous ? :)
Renaud Comte aka TheMit ( ... )
Member of WygTeam
http://www.wygwam.com
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 :