22
SharePoint 2010 et Team Foundation Server : les meilleures pratiques de développement (SHA104)
08/01/2010Philippe SentenacMVP SharePointWygwam
www.wygwam.com
Wygwam ParisWygwam Nord
Wygwam Belux
Wygwam Suisse
44
Agenda
Etat des lieux de l’intégration SharePoint 2007/TFS 2008ProblématiquesRetours d’expérience
Nouvelles versions, Nouvelles FonctionnalitésSharePoint 2010VSTS 2010
Bonnes pratiquesEnvironnement de développement
Travail en équipeProcessus de développementValidation Logicielle
55
Problématiques du Développeur
Avantages
• ASP.Net • Sécurité• Topologie• Stockage• Modèle de Site• API
Inconvénients
• Apprentissage• Expérience
Développeur• Déploiement• Outils• Virtualisation
66
Problématiques du Resp. de Projet
Environnement de test difficiles à mettre en place
Identification des goulots d’étranglements
Synchroniser le travail de plusieurs développeurs
Gérer les chaines de livraisons de différentes versions
77
Retour d’expérience
Quelques exemples…
Ces problématiques ne sont pas insurmontables cf. Session de l’année dernière sur Industrialisation des Développements SharePoint 2007 avec Team System.
La mise en place d’ ALM SharePoint représente un gros retour sur investissement mais demande une implication forte de l’ensemble de l’équipe et une bonne connaissance du sujet.
88
Nouveautés SharePoint 2010Développement sur Windows 7 (et Windows Vista SP1)
SharePoint Foundation ou SharePoint Server
Uniquement OS x64
Pas pour la production
Installation Stand Alone
Déstiné aux développeurs
Windows 7
99
Nouveautés SharePoint 2010
Developper Dashoarddebug rapide et
performances de la page
stsadm -o setproperty -pn developer-dashboard -pv ondemand
1010
Nouveautés SharePoint 2010Listes, SharePoint Designer, Performances
Relation en cascade ou blocage.Validation avec règles « Excel »Vues XSLT à la place du CAMLLookup sur plusieurs collonnesAmélioration des performances“List Query Throttling”
1111
Nouveautés SharePoint 2010Accès aux données
LINQ
Ferme Site Listes Listes Externes
Données
Coté client
Coté Serveur
Listes fortement typées
Listes faiblement typées
Listes fortement typées
Listes faiblement typéesModèle Objet Serveur
Modèle Objet Client
REST APIs
Nouveau
Amélioré
1212
Nouveautés SharePoint 2010
Business Agility
Security & Stability
AgilitéDéploiment simplifiéDéveloppement itératifSharePoint Online
StabilitéSécurisé (Processus séparés)Limitation de l’APISurveillance des ressources
Business Agility
Security & Stability
Sanboxed Solutions
1313
• SharePoint 2007 (2007):– STSADM: 182 Commandes (MOSS)
• 520 PowerShell cmdlets ajoutés– Plateforme extensible – Découverte des commandes– Optimisé pour les Batch
Nouveautés SharePoint 2010
Powershell
1414
Nouveautés SharePoint 2010
Commande STSADM pour activer une feature sur chaque SPSite
La même commande en SharePoint 2010 PowerShell:
$rawdata = stsadm.exe -o enumsites -url $WebAppURL $sitexml = [XML]$rawdata$sitesxml.Sites | foreach-object{ $_.Site } | foreach-object{ stsadm -o activatefeature -url $_.url -filename $featureFileName if( $lastexitcode -ne 0 ){ Write-Host “Failure:$lastexitcode `n" -Fore Red; $failure = $true; }}
Get-SPSite –Limit ALL –WebApplication $WebAppNameorUrl |%{ Enable-SPFeature $FeatureIdOrName –url $_.Url }
12+ Heures(5300 SPSites)
30 Minutes(5300 SPSites)
Powershell
1515
DémoCréation d’un Environnement avec PowerShell
1616
Visual Studio Team System 2008 > 2010
1717
Visual Studio Team System 2008 > 2010
1818
Nouveautés Visual Studio Team System 2010
− Comprendre la santé du projet− Nouveaux diagrammes et rapports pour
connaitre l’état réel de l’ensemble
− Optimisé pour le développement itératif− Bien adapté au développement SharePoint
Gérer ses projets
1919
Nouveautés Visual Studio Team System 2010
Eviter les erreurs
− Analyses et Métriques de codes− Pour prévenir les dégats avant qu’il ne soit
trop tard (Utilisation de Code Analysis, etc.)
− Gated Check-In & Serveur de build− Prévient les erreurs de builds.
2020
Nouveautés Visual Studio Team System 2010
Améliorer la qualité des projets
− Test et Lab Manager− Une nouvelle façon d’envisager vos tests.− Planification, Gestion et éxécution de vos tests.
− Tests fonctionnels et tests de charge− Savoir que votre code tient “la charge” − S’assurer du fonctionnement global de
l’application
2121
+
Nouveautés Visual Studio Team System 2010
VS2005 VS2008 VS2010
F5 Deploy Debug
WSP Packaging
SPSolGen
WSP View
+64 bit support
WSP View Improved
Separate Package
Command
Command Line Build
+
VSeWSS VSeWSS 1.3
Multiple Visual Designers
Packaging and Deployment
Project & Item Templates
TFS integration
Extensible Projects & Tools
Upgrade Tool
2007 2008 2009 2010
Sequential Workflow
State Machine
Workflow
VSeWSS 1.2
Evolution des Extensions Visual Studio pour Sharepoint
+
2222
Support des Sandboxed SolutionsImport de WSP depuis SharePoint Designer (workflow inclus)Possibilités d’étendre les extensions Visual Studio
Web Part, BDC and designers de WorkflowPackager and Deployer des projets SharePoint Exploration de site SharePoint via le Server Explorer
Meilleur support de SharePoint
“Develop, Deploy and Debug”
Nouveautés Visual Studio Team System 2010
Visual Studio 2010 pour SharePoint
2323
DémoNouvel environnement Visual Studio & SharePoint
2424
Bonnes pratiques
Développer sur Windows 7 en localInstallation Stand AloneA minima, intégration au contrôleur de sourceExcellentes performances
Développer sur une environnement virtuel via Hyper-VPermet de faire des installations plus complexesPlus lourd à mettre en place et performances moindres
Dans tout les cas, intégration au contrôleur de source de TFS et mise en place d’un mécanisme de build voire d’intégration continue.
Environnement de développement
2525
Utilisation de WSP pour le déploiement et le développementUtilisation de Patterns (MVP, Service Locator)
Model : Accès aux donnéesView : AffichagePresenter : “Intelligence” du composant
Séparation des couches = Maintenabilité, Isolation.Permet les tests unitaires
Bonnes pratiquesProcessus de développement
2727
DémoExemple de Projet
2828
Bonnes pratiques
Utilisation de TypeMock ou de PexAméliore la confiance du développeur dans son propre codeAméliore la qualité et la fréquence des Check-insPermet d’identifier les erreurs plus rapidement.
Validation logicielle : Tests
2929
Bonnes pratiques
Test
Code en Production
Underlying Dependencies (For Example, SharePoint)
Tests d’Intégration
Substitut(Mock, Stub, Fake, Wrapper)
Tests Unitaires
Validation logicielle : Tests Unitaires != Test d’Intégration
3030
TestImplémentation
ProductDetailsPresenterFixture (Unit Test)
ProductDetailsPresenter
Service Locator
MockProductCatalogRepository
MockProductDetailsViewImplements IProductDetailsView
ProductDetailsControl (User Control)Implements IProductDetailsView
ProductDetailsPresenter
Service Locator
ProductCatalogRepository
Code Under Test
Bonnes pratiquesValidation logicielle : Exemple
3131
DémoTests Unitaires
3232
Bonne pratiques
Valider le comportement global de l’applicationEnregistrement de scénari d’utilisation
Ensemble de requêtes HTTPValidation des paramètres ou du contenu de la page
Exécution de tests fonctionnels simultanés pour simuler une charge utilisateur
Validation du comportement de l’application avec plusieurs utilisateurs en même tempsAnalyse de quelques indicateurs de performance
Validation logicielle : Tests fonctionnels et de Charge
3333
Bonnes pratiques
SharePoint Application Lifecycle Management Resource Centerhttp://msdn.microsoft.com/dd552992.aspx
Travail en équipe
3434
Bonnes pratiquesNatalie (Excelle),0273316688 Natalie (Excelle),0273316688
Dev PC
Développement
Test Unitaires
F5 D
eplo
y
Team Foundation Server
Check In
Validation
Tests Automatiques
Test manuel
Serveur de Build
Team Build
SP2010 DLL’s
Build
Test Unitaires
Fix Bugs(autant de fois que nécessaire)
Build Nocturne
-ou-
Intégrationcontinue
Check in WSP
Check out et
Activate W
SP
Powershelland XCopy
Bugs
-OR-
WSP
WSP
WSP
3535
Conclusion
Environnement Développeur
Amélioration du Framework
PowerShellIntégration TFS « Naturelle »
Expérience Développeur
www.codeplex.com/spg
Pour approfondirName Code Speaker Jour Heure SalleArchitecture : quoi de neuf avec Visual Studio 2010 IND301 Sacha Leroux (Bewise) Mardi 17:30 352BDéveloppement : suivi, planification et tableaux de bord IND302
Sylvain Gross (Evaluant), Noham Choulant (Evaluant) Lundi 11:00 242A
L’ALM, facteur clé de succès des projets de développement IND104
François Merand (Microsoft), Philippe Puschmann (Avanade) Lundi 17:30 342B
Laboratoires de tests avec la virtualisation IND203Vincent Labatut et Guillaume Rouchon (Winwise) Lundi 11:00 352A
L'industrialisation et les environements hétérogènes IND205 Etienne Margreaff(Access-It) Lundi 14:30 252AMéthodologie : quel développement au 21ème siècle ? IND206
Xavier Warzee (Microsoft), Mathieu Szablowski (Pyxis) Lundi 16:00 352B
Plus de No Repro IND107 Olivier Dupont (Tekigo) Lundi 16:00 242BPremiers pas dans l'industrialisation : TFS Basic IND108 Florent Santin (Access-It) Lundi 17:30 351 Tests fonctionnels, tests d'interfaces, tests de charges IND109 Etienne Margraff (Access-It) Mardi 14:30 352A
Visual Studio : comment l'adapter à vos besoins IND110François Merand (Microsoft), Alain Metge (ASF) Lundi 13:00 242A
TD : Visual Studio 2010 : prise en main WKS9 Guillaume Leborgne (MCNext) Lundi 11:00 343 TD : Team Foundation Server 2010 : prise en main WKS9 Guillaume Leborgne (MCNext) Mercredi 11:00 343 TD : Expression Blend, prise en main WKS13 Eric Ambrosi (Regart.net) Mardi 16:00 343 TD : Tests fonctionnels : prise en main WKS12 Guillaume Leborgne (MCNext) Lundi 16:00 343 TD: Expression Web : Prise en main WKS24 Yannick Lejeune (IONIS) Mercredi 13:00 362/TD : Tests de charge, prise en main WKS11 Philippe Boudard (Scopteam) Mardi 11:00 343
Et beaucoup de docs sur le stand « outil de développement » (D11)