Upload
david-schneider
View
807
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Damit die Tester schneller ran können.Daily Builds mit SharePoint
David Schneider
David Schneider: [email protected]
Blog: http://blog.sharepoint.chisolutions AG: http://www.isolutions.ch
About the Speaker
Agenda Paketierung Team Foundation Server Automatisches Deployment Build Quality, Versionierung, Continuous
Integration
Die Vision
«Jede Nacht wird der aktuelle Stand der Entwicklung auf unser Testsystem deployt.
Sämtliche Daten sind vorhanden, so dass die Tester sofort mit dem Test beginnen können.»
Agile Projekte, kurze Iterationen Jede Iteration muss getestet werden Die Lösung wird immer wieder deployt
Deployment muss schnell und einfach erfolgen (ansonsten laufen die Kosten aus dem Ruder)
Herausforderung
Build Automation is not…
F5
SharePoint Solutions
Code (Web Parts, Event Receivers)
Composites (SharePoint
Designer, Customizations)
Content (Sitestruktur, Listeninhalte,
Berechtigungen)
Deployment von Code Solutions «Deployment» von No-Code Customizations Erstellen der Site Struktur Einrichten der Sites Erfassen von Stammdaten Vergeben von Berechtigungen
Umfang des Deployments
DEV
TEST
INT
PROD
Ziel
Deployment erfordert wenige manuelle Schritte
Paketierung als WSP Manipulationen per
Skript
Was lässt sich als WSP deployen…Co
de • Web Parts• Event
Handlers• Coded
Workflows• JavaScript
Des
gin • Master
Page• Page
Layouts• CSS• Themes Cu
stom
izatio
ns • Content Types
• Site Columns
• Ribbon
Visual Studio 2010 Projekt Features für Master Page, Page Layouts und Ressourcen Site Columns und Content Types
Visual Studio Add In http://cksdev.codeplex.com/
WSP einfach & schnell erstellen
Wofür schreibt man ein Script…St
rukt
ur • Site Collections• Sites• Listen• Basisdaten
Funk
tione
n • Features aktivieren
• Master Pages setzen Zu
gang • Berechtigungen
• Navigation
Site Template («Save as Template»)• Nur innerhalb einer Site Collection• Import nach Visual Studio bringt viel Ballast mit
Site Definition• Aufwändig, auch Microsoft rät davon ab
Web Templates• Delta zu OOTB Site Definition als Feature• Elements.xml und (vereinfachtes) ONET.XML
Deployment von Site Templates
Workflows, BCS, Customized Forms, etc. Speichern als Sandbox Solution Deployment der Sandbox Solution mittels
PowerShell Script
Deployment von SPD Customizations
Demo
Content Benutzer Farm Design Language Packs Patch Level Service Applications• Profiles, MySite, Search, Managed Metadata
Alternate Access Mapping
Integrationsumgebung
Produktentwicklung Mehrere Iterationen Team > 2 Entwickler Projektdauer > 2 Monate Verteilte Teams
Lohnt sich der Aufwand?
Aufwand für Deployment ist gering Automatisches Deployment ist getestet Konsistente Builds
Gewinn
Team Foundation Server 2010David Schneider
Visual Studio Team System 2010
Server Umgebung
TFS Build Process
• Workflow Foundation 4.0Code zusammenstellen
• MSBuild 4.0Kompilieren
• Workflow Foundation 4.0Testing
• Workflow Foundation 4.0Deploying
Team Build in SharePoint Projekten
David Schneider
MSBuild Argument /p:IsPackaging=True
WSP generieren…
Keine OOTB Unterstützung WF Activity PowerShell• z.B. http://sharepointci.codeplex.com/
Deployment der Lösung
PowerShell Remoting erlaubenEnable-PSRemoting
Credentialsübergabe via CredSSP einschalten Enable-WSManCredSSP –Role Server
PowerShell Memory auf 1 GBSet-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024
Vorbereitung Integrationssystem
LocalAdmin auf Integrationssystem Farm Administration Group Zugriff auf PowerShell
Add-SPShellAdmin
Berechtigungen Build Account
PowerShell execution policySet-ExecutionPolicy RemoteSigned
Credentialsübergabe via CredSSPEnable-WSManCredSSP -Role client -DelegateComputer “SPServer”
Vorbereitung Build Agent
Build Server Integrationsystem Enter-PSSession –ComputerName
“SPServer” Enter-PSSession -ComputerName
“SPServer” -Authentication CredSSP –Credential Get-Credential
Zugriff testen
SharePoint/TFS Continuous Integration Starter Pack
David Schneider
Build Prozess mit SharePoint CI
PowerShell Script, welches die gesamte Lösung erstellt und konfiguriert.
Site Provisioning
Site Provisioning
Herausforderung: neuer Release einer bestehenden Lösung
Mögliche Lösung: Bei jedem Deployment Content DB löschen und neu attachen Upgrade Prozess durchlaufen
Version 1.1?
Builds versionierenDavid Schneider
Assembly Version wird referenziert (Web Parts, Web Controls, Event Handlers) und kann daher nicht geändert werden
Alternative: Assembly File Version Anzeige als Product Version
http://tfssimpleversioning.codeplex.com/
Versionierung der Assemblies
Weitere Qualitätsindikatoren
David Schneider
Build Quality Indicators Failed/passed Tests Code Churn Code Coverage Active Bugs
Code Analysis SPDisposeCheck
TFS Reports
Build und Deploy nach jedem Check In Deployment auf eigenes Test System,
welches nicht von den Tester verwendet wird
Automated UI Tests ausführen
Continuous Integration
Paketierung von SharePoint Solutions Build mit TFS Deployment mit PowerShell Scripts
Zusammenfassung
HERZLICHEN DANK
David Schneider: [email protected]
Blog: http://blog.sharepoint.chisolutions AG: http://www.isolutions.ch
Kontaktdaten