www.steria-mummert.de Team Development and ALM for SharePoint projects Proven approach and best practices Steria Mummert Consulting AG
Vorstellung Torsten Mandelkow Diplom-Informatiker(FH) Seit 2007 bei Steria Mummert Consulting Mehrjährige SharePoint-Erfahrung als Berater, Architekt, Entwickler Kernkompetenzen Architekturen von großen, globalen SharePoint-Farmen Einführung von SharePoint-Entwicklungsprozessen in Unternehmen Kontakt: torsten.mandelkow@steria-mummert.de www.spalmblogger.de 24.02.2011 2
Das Unternehmen Steria: Beratung, IT- und Outsourcing Services Off-/Nearshore in Indien, Osteuropa und Marokko Belgien Dänemark Präsenz in Deutschland 16 Ländern... Frankreich Hongkong Präsenz in Europa Indien Vor Ort in Asien Luxemburg Marokko Norwegen Österreich Polen Singapur Spanien Schweden Schweiz UK 24.02.2011 3
Das Unternehmen Ein Top 10 Player in Europa 1,8 Mrd. Umsatz (Top 10 in Europa) 19.000 Mitarbeiter Präsenz in Europa 25% Mitarbeiter in Indien (größter Anteil für ein europäisches Unternehmen) Off-/Nearshore in Indien, Osteuropa und Marokko Vor Ort in Asien 24.02.2011 4
Das Unternehmen Leistungsstarke, kundennahe Organisation Präsenz in Deutschland und Österreich Off-/Nearshore in Indien, Osteuropa und Marokko Präsenz in Europa Vor Ort in Asien Berlin Düsseldorf Frankfurt Hamburg Köln Leipzig München Münster Wien 24.02.2011 5
Einleitung Kompetenzen in Sharepoint ALM SharePoint Kompetenzen SharePoint Architektur SharePoint Development SharePoint Migration Microsoft Partnership Information Worker Custom Development ALM Kompetenzen Einführung von ALM Prozessen Einführung von Team Foundation Server Customizing vontfs Microsoft Partnership TFS InnerCircle Partner Team System Quality Board member SharePoint Application Lifecycle Management 24.02.2011 6
Einleitung Was läuft schief in SharePoint Projekten? Oft mangelnde Qualität Viele manuelle Schritte Fehlende Transparenz Schlechte Performance und Stabilität Geringe Code Qualität (Namenskonventionen, Coding Style) Fehlende Tests (Unitests, Webtests, Smoketest) etc. Manuelle Installation der Lösungen in SharePoint Manueller Build des Lösungen Manuelles Testing etc. Welche Anforderungen wurden in welchem Release umgesetzt? Welche Bugs wurden gefunden und wurden sie auch gelöst? Welche Testfälle testen welche Anforderung? Wer hat wann welchen Code geändert und warum? Ergebnis Projekte können häufig Zeit- und Budgetplanung nicht einhalten SharePoint Anforderungen können Entwicklung nicht zeitnah macht umgesetzt oft werden keinen Spass! Akzeptanz von SharePoint im Unternehmen leidet 24.02.2011 7
Team Foundation Server Overview TFS 2010 is included with 24.02.2011 8
Team Foundation Server 2010 Retails for $499 USD Five users without CALs Add users with CALs
Team Foundation Server Overview Team Foundation Server 2010 Visual Studio and Team Foundation Server Development Roles and Responsibilities Visual Studio Editions Process Guidance Work Item Tracking Version Control Code Analysis Build Management Reporting 24.02.2011 10
Team Foundation Server Team Foundation Server 2010
Team Foundation Server Development Rollen und Verantwortlichkeiten Project Managers Project Planning Task Assignment Bug Tracking Business Analysts Requirements Management QoS Management Requirements Analysis Development Execs Portfolio Management Project Organization Stakeholder Communication Architects Architecture Modeling Analysis and Design Design for Deployment Operations Customer Support Infrastructure Architecture Infrastructure Deployment Testers Developers Designers UI Design UI Prototyping UI Flow Modeling Test Case Management Manual Testing Load Testing Automated Testing Code Analysis Unit Testing Version Control
Team Foundation Server Team Foundation Server Team Foundation Server: The Big Picture Process Focused Version Control Integrated Work Item Tracking Check-in Manage work Build Automation Reporting Process Templates SharePoint Customizable Check-in Policies Shelving Bugs, Tasks, Requirements, Stories, Risks, etc. Very Extensible Continuous Integration Scheduled Ad Hoc Decision Support Track Project Progress
Team Foundation Server Prozess Guidance Guidance während der Entwicklung Auswahl an Prozess Templates MSF for CMMI, MSF for Agile, Scrum Anpassbare Templates 24.02.2011 14
Team Foundation Server Source Control & Version Control Changesets Identifizierung von Änderungen Integrated Check-In Check-in policy: Einchecken von Code nur unter bestimmten Bedingungen möglich Shelvesets Temporäre Ablage von Änderungen in TFS Branching and Merging Wichtig z.b. bei mehreren Releases 24.02.2011 15
Team Foundation Server Work Item Tracking Speicherung jeder Art von Information Bug, task, user story, requirement, scenario, change request, issue Anpassbar Dialog, fields, workflow, states, transitions, Verschiedene Zugriffstools Visual Studio, Excel, Project, Team Web Access Verlinkbar Link to work items, version control, test results, 24.02.2011 16
Team Foundation Server Reporting 24.02.2011 17
Agenda Team Foundation Server Basics SharePoint Application Lifecycle Management 24.02.2011 18
Einleitung Was ist Application Lifecycle Management Application Lifecycle Management is a continuous process of managing the life of an application through governance, development and maintenance ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management. 24.02.2011 19
Einleitung Was ist Application Lifecycle Management Application Lifecycle Management is a continuous process of managing the life of an application through governance, development and maintenance ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management. Solution Deployment Quality Assurance Operate Application Lifecycle Testing Requirements Management Solution Architecture Development 24.02.2011 20
Agenda SharePoint Requirements Management SharePoint Solution Deployment SharePoint Quality Assurance Operate SharePoint Application Lifecycle SharePoint Testing SharePoint Requirements Management SharePoint Solution Architecture SharePoint Development 24.02.2011 21
SharePoint Requirements Management Ziele SharePoint Requirements Management Detailierte Ergebung und Analyse von fachlichen und nichtfachlichen Anforderungen in einer Anforderungsspezifikation Enthält Stakeholder Analyse: Wer hat Anforderungen an ein System Anforderungsanalyse: Erhebung der Anforderungen, Kategorisierung, Priorisierung, Duplikate und Widersprüche erkennen Basis für die Release Planung 24.02.2011 22
SharePoint Requirements Management Demo Demo Requirements Management 24.02.2011 23
SharePoint Requirements Management Wie Visual Studio hilft 24.02.2011 24
Agenda SharePoint Architektur SharePoint Solution Deployment SharePoint Quality Assurance Operate SharePoint Application Lifecycle SharePoint Testing SharePoint Requirements Management SharePoint Solution Architecture SharePoint Development 24.02.2011 25
SharePoint Architektur Ziele SharePoint Architektur Erstellung der technischen Spezifikation basierend auf den Anforderungen Ziele - Wiederverwendbarkeit von Lösungen ermöglichen - Nah am Standard, Support nicht gefährden - Stabilität und Performance - Testbarkeit einer Lösung ermöglichen 24.02.2011 26
SharePoint Architektur Visual Studio Architektur Tools Layer Diagram für den Entwurf von Software, Schicktenmodellen usw. 24.02.2011 27
SharePoint Architektur SharePoint Architektur SharePoint Guidance: Pattern, Referenzimplementierungen, see: http://spg.codeplex.com Sandboxed in 2010: Hilfsmittel in der Architektur von Lösungen 24.02.2011 28
Agenda SharePoint Development SharePoint Solution Deployment SharePoint Quality Assurance Operate SharePoint Application Lifecycle Test SharePoint Testing Test Results SharePoint Requirements Management SharePoint Solution Architecture SharePoint Development 24.02.2011 29
SharePoint Development Ziele SharePoint Development Umsetzung der technischen Architektur in Code Ziele: Konformität des erstellten Codes zur Microsoft Vorgaben sicherstellen Konformität zu Unternehmensvorgaben (Aufbau der Projekte, Namenskonventionen) sicherstellen Hohe Codequalität (Performance, Stabilität) erreichen Automatisierung wiederkehrender Aufgaben Weitergabe von Best Practices 24.02.2011 30
Bisherige Entwicklungswerkzeuge Visual Studio 2005/2008/2010 SharePoint Designer 2007 Templates für Visual Studio WSPBuilder (Codeplex) VS.NET Extensions 1.0 (MS) VS.NET Extensions 1.1 (MS) WebPart Templates STSDEV SharePoint SmartTemplates SharePoint Visual Studio Project Templates (CodePlex) uvm. Andere Tools.STP Language Converter Stramit SharePoint 2007 Caml Viewer U2U CAML Builder App Pool Recycler for SharePoint uvm. Admin Tools Site Provisioning Assistant SharePoint Spy SharePoint Tips Utility Pack SharePoint Manager 2007 SharePoint Inspector SharePoint Explorer for WSS3 SharePoint SUSHI SharePoint Toolbox Deployment Tools SharePoint Solution Installer (CodePlex) User Profile Importer (CodePlex) SharePoint Builder (CodePlex) SharePoint Content Deployment Wizard uvm. 24.02.2011 31
Entwicklung Besonderheiten SharePoint Code besteht aus vielen einzelnen Dateien, die untereinander referenziert sind (viel Spezialwissen notwendig) Beispiel: Visual Webpart, in Feature mit FeatureReceiver, Mehrsprachig 24.02.2011 32 Resource-File für Mehrsprachigkeit, (.RESX) ControlTemplate (UserControl), (.ASCX) WebPart-Beschreibung (.WEBPART) Feature (.XML) WebPart Icon (.GIF) WebPart Code (.CS) FeatureReceiver Code (.CS) CAS-Policy für BIN-Deployment (.XML)
Entwicklung Besonderheiten SharePoint-Erweiterungen werden im selben Ordner wie SharePoint selbst installiert Standard SharePoint- Features Erweiterungen 24.02.2011 33
Entwicklung Besonderheiten Code besteht viel aus XML-Code, der häufig manuell erstellt werden muss Beispiel: feature.xml 24.02.2011 34
Entwicklung Demo Vorstellung SPSF SharePoint Software Factory Eigenentwicklung von SMC Integriert sich in Visual Studio beim Entwickler Erzeugt SharePoint Code mit Hilfe von Wizards basiert auf Microsoft Guidance Automation Extensions (GAX, kostenlos herunterladbar) 24.02.2011 35
Build Ziele Build Zentraler Build einer Lösung Erzeugung eines installierbaren Packages Ablage und Versionierung des Buildergebnisse, um es jederzeit verwenden zu können Build gegen eine Konfiguration analog zur produktiven Farm (keine zusätzlichen DLLs) Build mit Konfiguration Release (keine Debug -Lösung geht produktiv) 24.02.2011 36
Build Team Build in Visual Studio 2010 Kompiliert den Code in WSP gegen entsprechende Konfiguration Führt optional Unittests nach dem Build durch Integriert den Entwicklungsstand aller Entwickler in einem Build- Ergebnis Nachteile für SharePoint: spezielle Konfiguration im TFS notwendig, damit SharePoint-Projekte TeamBuild-fähig sind Team Build 24.02.2011 37
Demo TeamBuild 24.02.2011 38
Agenda SharePoint Test Ziele: Möglichst hohe Automatisierung von Tests Regressionstests: Funktionieren noch alle bestehenden Applikationen, wenn neue Applikationen oder ein Patch installiert werden Funktionale Tests: sind die Anforderungen des Business erfüllt Smoke Tests: Minimaler Test, um die Grundfunktionen zu testen, z.b. nach einem Deployment Performance Tests: Wie verändert sich die Performance durch Installation einer Applikation oder Veränderung der Konfiguration Operate Applicaton Services Deploy Rollout package Optimize Feedback Application Lifecycle Test Test Results Requirements Feature specification Develop Code Executalbes Design Architecture 24.02.2011 39
Agenda SharePoint Deployment Operate Applicaton Services Deploy Rollout package Optimize Feedback Application Lifecycle Test Test Results Requirements Feature specification Develop Code Executalbes Design Architecture 24.02.2011 40
SharePoint Deployment Ziele SharePoint Deployment Automatisierte Installation einer Applikation in einer SharePoint Farm Ziel: Vollständige Installation der Applikation (inkl. notwendiger Konfigurationsschritte) Automatisierte Installation Bei Bedarf auch Deinstallation möglich Aktualisierung einer vorherigen Version möglich 24.02.2011 41
SharePoint Deployment SharePoint Staging Problem: Viele manuelle Schritte bei der Installation Manuelle Installation Manuelles Setup von WebApps & Site Collections Manuelle Konfiguration von Search, User profiles etc. Durchführung von manuellen Tests 24.02.2011 42
SharePoint Deployment SharePoint Staging Admin kopiert, installiert und konfiguriert Packages manuell Test Integration Production 24.02.2011 43
SharePoint Deployment Besonderheiten Verteilung eines Installationspakets durch mehrere Server (DEV, Staging, Produktion) Gleiches Paket muss automatisiert in verschiedenen Umgebungen installiert werden Installationsprozess muss deshalb parametrisierbar sein (z.b. für URLs von SharePoint Webapplikationen etc.) Test Integration Produktion 24.02.2011 44
SharePoint Deployment Besonderheiten Nachträgliche Konfigurationsschritte sind häufig notwendig, z.b. Aktivierung von Features Anpassungen der Suchkonfigurationen Installationsschritte 1. Deploy Solution to WebApp http://tfsrtm08 2. Activate Feature DE6E1F2D-6409 in Site collection http://tfsrtm08/root. 22. Create Quota Template Limit S 23. Create Managed Path intranet. 55. Enable Usage Analysis in SSP http://tfsrtm:13856 24.02.2011 45
SharePoint Deployment Besonderheiten Inhalt Bei Aktualisierung einer Applikation z.b. auf Version 2.0 sind häufig sehr lang laufende Aktualisierungen notwendig Aktivierung eines neuen Features in allen bestehenden Webs Aktualisierung eines Content Types in allen Site Collections 2 Neue ContentTypes Bei bestehenden ContentType Spalte entfernen Bei bestehenden ContentType Spalte ergänzen Version 2.0 Version 1.1 Version 1.0 24.02.2011 46
SharePoint Deployment Standardfunktionen für Deployments VS 2010 Ausführung von Aktionen nach dem Deployment möglich über Visual Studio Postbuild-Actions Kann erweitert werden um eigene Aktions Nachteil: Funktioniert nur auf der lokalen SharePoint-Farm Keine Packaging für Deployments in mehrere Umgebungen 24.02.2011 47
SharePoint Deployment SMC Best Practices Deployment Prozess durchführen mit MSBUILD Ausführbar auf jedem Rechner mit.net 2.0 (keine Installation) Standard von Microsoft Leicht erweiterbar durch eigene MSBUILD-Tasks (z.b. CreateManagedPath, CreateQuotaTemplate usw.) Wiederverwendbarkeit von Tasks Parametrisierbarkeit aller Tasks Detailliertes Logging aller Aktivitäten Integration in TFS Nachteil: XML-basiert mit schwer lesbarem XML-Code Alternativen: PowerShell, Batch, VBScript 24.02.2011 48
Demo SPSF Deployment Package 24.02.2011 49
Staging Automatisierte Verteilung einer Applikation in einer SharePoint Farm 24.02.2011 50
Zusammenfassung ALM ist wichtig für professionelle Entwicklung im Unternehmen VS 2010 ist unabdingbar für Entwicklung im Team und für große Projekte Besonderheiten von SharePoint machen durchgängiges ALM schwierig VS.NET 2010 bringt gute Unterstützung, aber es sind immer noch viele manuelle Tätigkeiten notwendig Operate Applicaton Services Deploy Rollout package Optimize Feedback Application Lifecycle Test Test Results Requirements Feature specification Develop Code Executalbes Design Architecture 24.02.2011 51
Wie geht s weiter? Folien und bisherige Vorträge auf www.spalmblogger.de Projekte auf Codeplex spalm.codeplex.com SPSF SharePoint Software Factory SPCop SharePoint Code Analyse ShareLog SharePoint Code Inspector Bitte anmelden und mit anderen Kunden austauschen: Xing-Gruppe SPALM www.xing.com/net/spalm Tools per Email: torsten.mandelkow@steria-mummert.de 24.02.2011 52