SlideShare a Scribd company logo
1 of 39
Download to read offline
è
è www.steria-mummert.de
© Steria Mummert Consulting AG
SharePoint Entwicklung mit SPSF
Schnellere und standardisierte SharePoint Entwicklung mit der
SharePoint Software Factory 2010
© Steria Mummert Consulting AG
è
21.06.11 2
Vorstellung
Matthias Einig
è  Diplom-Informatiker(FH)
è  Seit 2008 bei Steria Mummert Consulting
è  6 Jahre SharePoint-Erfahrung als Berater, Architekt, Entwickler
Kernkompetenzen
è  Architekturen von großen, globalen SharePoint-Farmen
è  Einführung von SharePoint-Entwicklungsprozessen in Unternehmen
Kontakt
è  matthias.einig@steria.de
è  www.matthiaseinig.de
è  Twitter: @mattein
è Was läuft schief in SharePoint Projekten?
Ergebnis
è  Projekte können häufig Zeit- und Budgetplanung nicht einhalten
è  Anforderungen können nicht zeitnah umgesetzt werden
è  Akzeptanz von SharePoint im Unternehmen leidet
21.06.11 3
Fehlende
Transparenz
§  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?
Viele manuelle
Schritte
§  Manuelle Installation der Lösungen in SharePoint
§  Manueller Build des Lösungen
§  Manuelles Testing
§  etc.
Oft mangelnde
Qualität
§  Schlechte Performance und Stabilität
§  Geringe Code Qualität (Namenskonventionen, Coding Style)
§  Fehlende Tests (Unitests, Webtests, Smoketest)
§  etc.
SharePoint Entwicklung macht oft keinen Spass! L
è Was ist Application Lifecycle Management?
21.06.11 4
Application
Lifecycle
Requirements
Management
Solution
Architecture
Development
Quality
Assurance
Solution
Deployment
Testing
Operate
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.”
è Was ist SharePoint ALM?
21.06.11 5
Application
Lifecycle
Requirements
Management
Solution
Architecture
Development
Quality
Assurance
Solution
Deployment
Testing
Operate
SharePoint
+
ALM
=
SPALM No Code Analysis
Complex
Development
Complex
Deployment
Complex
Webtesting
No Code Metrics
Complex
UnitTesting
è
21.06.11 6
Was ist SharePoint ALM?
Application
Lifecycle
SharePoint
+
ALM
=
SPALM
Requirements
Management
Solution
Architecture
Development
Quality
Assurance
Solution
Deployment
Testing
Operate
è Ziele
Implementierung des Codes auf Basis einer
technischen Architektur
è  Konformität des Codes zu Microsoft Guidelines
è  Konformität zu Namenskonventionen und firmenspezifischen Coding
Guidelines
è  Hohe Qualität (Stabilität, Performance)
è  Testbarkeit, Installierbarkeit, Build to change
21.06.11 7
SharePoint Development
è
21.06.11 8
Herausforderung bei der SharePoint
Development
Feature (.XML) (generated)
SharePoint Code besteht aus vielen einzelnen Dateien
Beispiel: Visual Webpart, in Feature mit
FeatureReceiver, Mehrsprachig
FeatureReceiver Code (.CS)
Resource-file for multilanguage, (.RESX)
Manifest (.XML) (generated)
WebPart description (.WEBPART)
Feature Icon (.GIF)
CAS-Policy for BIN deployment (.XML)
ControlTemplate (UserControl) (.ASCX)
ElementsManifest (.XML)
WebPart Code (.CS)
è
21.06.11 9
Besonderheiten
SharePoint-Erweiterungen werden im selben Ordner wie SharePoint
selbst installiert
Erweiterungen
Standard
SharePoint-
Features
è
21.06.11 10
Besonderheiten
è  Code besteht aus viel
XML-Code, der häufig
manuell erstellt
werden muss
z.B feature.xml
è  Eine SharePoint
Solution hat viele
Abhängigkeiten
z.B. GUIDs,
Ressourcen,
Assemblies,
ManifestFiles,
ContentTypeIds
è SharePoint Tools in Visual Studio 2010
Neue Funktionen für SharePoint 2010
è  Package Explorer
è  Feature Designer
è  Mapped Folders
è  Neue Templates, BCS
è  Import von Workflows und WSPs
è  Server Explorer
è  Postbuild-Steps (Activate Feature)
Nachteile:
è  Nur SharePoint 2010
è  Nur für lokales Deployment geeignet
è  Nur für kleine Projekte geeignet
è  Nur begrenzter Umfang an Templates
21.06.11 11
è Demo: Was kann VS OOTB?
VS SharePoint Tools
21.06.11 12
è
21.06.11 13
SMC 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)
è  Open Source
è
21.06.11 14
SharePoint Software Factory
Vorteile für SharePoint Projects
è  Generierter Code bricht keine
Regeln von FxCop und StyleCop
è  Code respektiert SharePoint
Namenskonventionen und Style
Richtlinien
è  Alle Entwickler im Team verwenden
das gleiche Tool mit den gleichen
Templates
è  Funktionalität ist einfach zu
erweitern
è  Führt SharePoint Anfänger durch
die SharePoint Entwicklung
è
15
SharePoint Software Factory
è  Code Generierung
è  Refactoring
è  Coding Conventions
Demo
è SharePoint Software Factory
Verfügbar auf CodePlex http://spsf.codeplex.com
21.06.11 16
è
21.06.11 17
SharePoint Quality Assurance
^
Application
Lifecycle
SharePoint
+
ALM
=
SPALM
Requirements
Management
Solution
Architecture
Development
Quality
Assurance
Solution
Deployment
Testing
Operate
è Ziele
Sicherstellung hoher Qualität von SharePoint Lösungen
è  Erkennung von Schwachstellen im Code (Redundanzen,
Architekturprobleme, Stabilitätsprobleme)
è  Wartbarkeit des Codes sicherstellen (z.B. Coding guidelines)
è  Code gegen SharePoint spezifische Regeln und Policies validieren
è  Validierung des Codes gegen eine Zielkonfiguration
è  Unnötige Abhängigkeiten bereinigen
21.06.11 18
SharePoint Quality Assurance
è
21.06.11 19
Besonderheiten
è  Entwicklungsergebnis besteht
nur zu einem Teil aus DLL
è  Großer Teil besteht aus XML
(feature.xml, manifest.xml,
usw.)
è  Entwicklung ist verteilt auf viele
einzelne Artefakten (XML,
Bilder, CSS, DLL usw.)
è Code Analysis Tools
Geprüfte Elemente Ziel Tool
Assembly Code
(.dll)
Prüfung des Codes auf
Qualität, Redundanzen,
Strukturierung usw.
Microsoft FxCop
Quellcode (C#) Konformität zu Coding
Guidelines
Microsoft StyleCop
Assembly Code
(.dll)
Prüfung auf Speicherlecks Microsoft SPDisposeChecker
Assembly Code
(.dll) + SharePoint
Code (XML, ASPX)
Prüfung auf Konformität zu
- Customization Policy
- Security-Richtlinien
- Schema-Vorschriften
- Best Practices
- Lizenzbestimmungen
- usw.
Kein Tool L
è
Gefährdet der Code die
Sicherheit der Farm, z.B.
durch CAS-Policies,
RunWithElevatedPrivileges
etc.?
21.06.11 21
Anwendungsfälle
Verstößt der Code
gegen Microsoft
Vorgaben oder Best
practices?
Kann die Application
auch als Sandboxed
Solution installiert
werden?
Hat die Applikation
Abhängigkeiten zu
MOSS Enterprise
Features?
Verstößt die
Application gegen
Unternehmens-
richtlinien, z.B.
Mehrsprachigkeit,
Guidelines?
Gefährden wir durch
Installation den Support
von Microsoft, z.B. durch
Überschreiben von
Systemdateien?
è
22
Anwendungsfälle
Prüfung einer Application auf unterstützte
Supportlevel (Silver, Gold, Platinum), z.B. zu
Microsoft Customization Policy
21.06.11
è Herausforderung: Korrekter SharePoint Code
: XML in Visual Studio Projekten wird nicht im Build validiert.
21.06.11 23
MSDN: “The ActivateOnDefault attribute does not apply to
site collection (Site) or Web site (Web) scoped Features.”
Fehlerhafter Code… ...aber keine Fehler im Build.
Fehlerhafter SharePoint Code führt zu Problemen bei:
§  Build? Nein
§  FxCop Code Analysis? Nein
§  Installation? Nein
§  Ausführung? Ja!
è
21.06.11 24
SMC ShareCop
Toolbasierte Code Analyse mit
„ShareCop“
è  Eigenentwicklung von SMC, da
keine vergleichbare Lösung in
VS.NET
è  Überprüfung von WSP-Solutions
auf Verstöße gegen bestimmte
Regeln
è  Integration in Build
Open Source (noch nicht
veröffentlicht)
http://sharecop.codeplex.com
è
25
ShareCop
è  SharePoint Code Analyse
è  Report
Demo
è
26
SharePoint Software Factory
è  Code Analyse in SPSF Projekten
è  Integration im Release Build
Demo
è
21.06.11 27
SharePoint Solution Deployment
^
Application
Lifecycle
SharePoint
+
ALM
=
SPALM
Requirements
Management
Solution
Architecture
Development
Quality
Assurance
Solution
Deployment
Testing
Operate
è Ziele
Automatisierte Installation einer Applikation in einer
SharePoint Farm
è  Vollständige Installation der Applikation (inkl. notwendiger
Konfigurationsschritte)
è  Automatisierte Installation
è  Bei Bedarf auch Deinstallation möglich
è  Aktualisierung einer vorherigen Version möglich
21.06.11 28
SharePoint Deployment
è SharePoint Staging
Problem: Häufig erfolgt das Deployment manuell durch den Betrieb
21.06.11 29
Manuelle Installation
Manuelles Setup von
WebApps & Site
Collections
Manuelle Tests zusammen
mit Fachanwender
Manuelle Konfiguration von
Sucher, Service Apps etc.
è SharePoint Staging
21.06.11 30
Admin kopiert und installiert Dateien manuell in
alle Staging Umgebungen (für jedes Release!)
Test Integration Production
è 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.)
21.06.11 31
Test Integration Produktion
è
21.06.11 32
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“
…
è
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
è  …
21.06.11 33
Besonderheiten
Inhalt
•  2 Neue ContentTypes
•  Bei bestehenden
ContentType Spalte
entfernen
•  Bei bestehenden
ContentType Spalte
ergänzen
Version 1.0
Version 1.1
Version 2.0
è 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
21.06.11 34
è
21.06.11 35
SMC Best Practices
Deployment Prozess durchführen mit MSBUILD
§  Ausführbar auf jedem Rechner mit .NET 2.0 (keine
Installation)
§  Leicht erweiterbar durch eigene MSBUILD-Tasks
§  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
è
21.06.11 36
SMC SP Application Deployer
Deployment Projekt für SharePoint
Lösungen
è  Eigenentwicklung von SMC
è  „Sammelt“ alle WSPs der VS
Solution in ein Deployment
Projekt
è  MSBuild Tasks + Batches für
Deployment Prozess
Open Source (noch nicht
veröffentlicht)
http://spappdeploy.codeplex.com
è
37
SPApplication Deployer
Demo
è
Ergebnis:
è  Projekte in Kosten und Zeit
è  Business Requirements werden schneller in höherer Qualität umgesetzt
è  Akzeptanz von SharePoint im Unternehmen steigt.
SharePoint Entwicklung macht Spaß! J
Zusammenfassung
21.06.11 38
Volle Transparenz
§  Welche Requirements werden im nächsten Release umgesetzt?
§  Welche Bugs wurden gefunden und wann werden sie gelöst?
§  Wie lange wird das Projekt noch dauern?
§  etc.
Weniger manuelle
Schritte
§  Automatisches Deployment von Applikationen
§  Automatischer Build von Solutions
§  Automatische Qualtiätschecks
§  etc.
Gesteigerte
Qualität
§  Höhere Performance und Stabilität
§  Höhere Code Qualität
§  Einhaltung von Konventionen
§  etc.
è
21.06.11 39
Kontakt
è  www.spalmblogger.de
è 
http://spalm.codeplex.com
è 
www.xing.com/net/spalm
è 
@SharePointALM @SPALMSPSF @mattein
è  matthias.einig@steria.de

More Related Content

Viewers also liked

Viewers also liked (20)

Concepto de integración curricular maestria
Concepto de integración curricular  maestriaConcepto de integración curricular  maestria
Concepto de integración curricular maestria
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
computo
computocomputo
computo
 
Caperucita blanca
Caperucita blancaCaperucita blanca
Caperucita blanca
 
Canal digital
Canal digitalCanal digital
Canal digital
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
 
EXOTICA HOUSING, GURGAON
EXOTICA HOUSING, GURGAONEXOTICA HOUSING, GURGAON
EXOTICA HOUSING, GURGAON
 
Graficos estadisticos, blog
Graficos estadisticos, blogGraficos estadisticos, blog
Graficos estadisticos, blog
 
Familia de valenzuela
Familia de valenzuelaFamilia de valenzuela
Familia de valenzuela
 
Estudios de audiencia : Radio Esport
Estudios de audiencia : Radio EsportEstudios de audiencia : Radio Esport
Estudios de audiencia : Radio Esport
 
Ujian semester tip fany sheet 2
Ujian semester tip fany sheet 2Ujian semester tip fany sheet 2
Ujian semester tip fany sheet 2
 
Ecoturismo en veraguas 3
Ecoturismo en veraguas 3Ecoturismo en veraguas 3
Ecoturismo en veraguas 3
 
Presentación1
Presentación1Presentación1
Presentación1
 
La contaminación-ambiental
La contaminación-ambiental La contaminación-ambiental
La contaminación-ambiental
 
Habilidades comunicativas
Habilidades comunicativasHabilidades comunicativas
Habilidades comunicativas
 
Presentación1
Presentación1Presentación1
Presentación1
 
Diabetes Mellitus tipo 2
Diabetes Mellitus tipo 2Diabetes Mellitus tipo 2
Diabetes Mellitus tipo 2
 
Workshop Adobe® Formulare für SAP Business ByDesign 30.04.2015
Workshop Adobe® Formulare für SAP Business ByDesign 30.04.2015Workshop Adobe® Formulare für SAP Business ByDesign 30.04.2015
Workshop Adobe® Formulare für SAP Business ByDesign 30.04.2015
 
Trabajo motores de busqueda.
Trabajo motores de busqueda.Trabajo motores de busqueda.
Trabajo motores de busqueda.
 
Manual slideshare
Manual slideshareManual slideshare
Manual slideshare
 

More from Matthias Einig

Organisational Considerations for Customising SharePoint and Office 365
Organisational Considerations for Customising SharePoint and Office 365Organisational Considerations for Customising SharePoint and Office 365
Organisational Considerations for Customising SharePoint and Office 365Matthias Einig
 
The Evolution of SharePoint
The Evolution of SharePointThe Evolution of SharePoint
The Evolution of SharePointMatthias Einig
 
Transforming SharePoint Farm Solutions to the App Model
Transforming SharePoint Farm Solutions to the App ModelTransforming SharePoint Farm Solutions to the App Model
Transforming SharePoint Farm Solutions to the App ModelMatthias Einig
 
SPS Helsinki: Transforming SharePoint Farm Solutions to the App Model
SPS Helsinki: Transforming SharePoint Farm Solutions to the App ModelSPS Helsinki: Transforming SharePoint Farm Solutions to the App Model
SPS Helsinki: Transforming SharePoint Farm Solutions to the App ModelMatthias Einig
 
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23Matthias Einig
 
Developing high quality SharePoint solutions/apps with SPCAF #SP24
Developing high quality SharePoint solutions/apps with SPCAF #SP24Developing high quality SharePoint solutions/apps with SPCAF #SP24
Developing high quality SharePoint solutions/apps with SPCAF #SP24Matthias Einig
 
Keynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapKeynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapMatthias Einig
 
SPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsSPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsMatthias Einig
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellMatthias Einig
 
SPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerSPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerMatthias Einig
 
SSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementSSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementMatthias Einig
 

More from Matthias Einig (12)

Organisational Considerations for Customising SharePoint and Office 365
Organisational Considerations for Customising SharePoint and Office 365Organisational Considerations for Customising SharePoint and Office 365
Organisational Considerations for Customising SharePoint and Office 365
 
The Evolution of SharePoint
The Evolution of SharePointThe Evolution of SharePoint
The Evolution of SharePoint
 
Transforming SharePoint Farm Solutions to the App Model
Transforming SharePoint Farm Solutions to the App ModelTransforming SharePoint Farm Solutions to the App Model
Transforming SharePoint Farm Solutions to the App Model
 
SPS Helsinki: Transforming SharePoint Farm Solutions to the App Model
SPS Helsinki: Transforming SharePoint Farm Solutions to the App ModelSPS Helsinki: Transforming SharePoint Farm Solutions to the App Model
SPS Helsinki: Transforming SharePoint Farm Solutions to the App Model
 
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
 
Developing high quality SharePoint solutions/apps with SPCAF #SP24
Developing high quality SharePoint solutions/apps with SPCAF #SP24Developing high quality SharePoint solutions/apps with SPCAF #SP24
Developing high quality SharePoint solutions/apps with SPCAF #SP24
 
Keynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapKeynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recap
 
SPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsSPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutions
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShell
 
Developing for SP2013
Developing for SP2013Developing for SP2013
Developing for SP2013
 
SPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerSPSD SharePoint Solution Deployer
SPSD SharePoint Solution Deployer
 
SSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementSSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle Management
 

Sharepoint Application Lifecycle Management mit SPSF

  • 1. è è www.steria-mummert.de © Steria Mummert Consulting AG SharePoint Entwicklung mit SPSF Schnellere und standardisierte SharePoint Entwicklung mit der SharePoint Software Factory 2010 © Steria Mummert Consulting AG
  • 2. è 21.06.11 2 Vorstellung Matthias Einig è  Diplom-Informatiker(FH) è  Seit 2008 bei Steria Mummert Consulting è  6 Jahre SharePoint-Erfahrung als Berater, Architekt, Entwickler Kernkompetenzen è  Architekturen von großen, globalen SharePoint-Farmen è  Einführung von SharePoint-Entwicklungsprozessen in Unternehmen Kontakt è  matthias.einig@steria.de è  www.matthiaseinig.de è  Twitter: @mattein
  • 3. è Was läuft schief in SharePoint Projekten? Ergebnis è  Projekte können häufig Zeit- und Budgetplanung nicht einhalten è  Anforderungen können nicht zeitnah umgesetzt werden è  Akzeptanz von SharePoint im Unternehmen leidet 21.06.11 3 Fehlende Transparenz §  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? Viele manuelle Schritte §  Manuelle Installation der Lösungen in SharePoint §  Manueller Build des Lösungen §  Manuelles Testing §  etc. Oft mangelnde Qualität §  Schlechte Performance und Stabilität §  Geringe Code Qualität (Namenskonventionen, Coding Style) §  Fehlende Tests (Unitests, Webtests, Smoketest) §  etc. SharePoint Entwicklung macht oft keinen Spass! L
  • 4. è Was ist Application Lifecycle Management? 21.06.11 4 Application Lifecycle Requirements Management Solution Architecture Development Quality Assurance Solution Deployment Testing Operate 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.”
  • 5. è Was ist SharePoint ALM? 21.06.11 5 Application Lifecycle Requirements Management Solution Architecture Development Quality Assurance Solution Deployment Testing Operate SharePoint + ALM = SPALM No Code Analysis Complex Development Complex Deployment Complex Webtesting No Code Metrics Complex UnitTesting
  • 6. è 21.06.11 6 Was ist SharePoint ALM? Application Lifecycle SharePoint + ALM = SPALM Requirements Management Solution Architecture Development Quality Assurance Solution Deployment Testing Operate
  • 7. è Ziele Implementierung des Codes auf Basis einer technischen Architektur è  Konformität des Codes zu Microsoft Guidelines è  Konformität zu Namenskonventionen und firmenspezifischen Coding Guidelines è  Hohe Qualität (Stabilität, Performance) è  Testbarkeit, Installierbarkeit, Build to change 21.06.11 7 SharePoint Development
  • 8. è 21.06.11 8 Herausforderung bei der SharePoint Development Feature (.XML) (generated) SharePoint Code besteht aus vielen einzelnen Dateien Beispiel: Visual Webpart, in Feature mit FeatureReceiver, Mehrsprachig FeatureReceiver Code (.CS) Resource-file for multilanguage, (.RESX) Manifest (.XML) (generated) WebPart description (.WEBPART) Feature Icon (.GIF) CAS-Policy for BIN deployment (.XML) ControlTemplate (UserControl) (.ASCX) ElementsManifest (.XML) WebPart Code (.CS)
  • 9. è 21.06.11 9 Besonderheiten SharePoint-Erweiterungen werden im selben Ordner wie SharePoint selbst installiert Erweiterungen Standard SharePoint- Features
  • 10. è 21.06.11 10 Besonderheiten è  Code besteht aus viel XML-Code, der häufig manuell erstellt werden muss z.B feature.xml è  Eine SharePoint Solution hat viele Abhängigkeiten z.B. GUIDs, Ressourcen, Assemblies, ManifestFiles, ContentTypeIds
  • 11. è SharePoint Tools in Visual Studio 2010 Neue Funktionen für SharePoint 2010 è  Package Explorer è  Feature Designer è  Mapped Folders è  Neue Templates, BCS è  Import von Workflows und WSPs è  Server Explorer è  Postbuild-Steps (Activate Feature) Nachteile: è  Nur SharePoint 2010 è  Nur für lokales Deployment geeignet è  Nur für kleine Projekte geeignet è  Nur begrenzter Umfang an Templates 21.06.11 11
  • 12. è Demo: Was kann VS OOTB? VS SharePoint Tools 21.06.11 12
  • 13. è 21.06.11 13 SMC 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) è  Open Source
  • 14. è 21.06.11 14 SharePoint Software Factory Vorteile für SharePoint Projects è  Generierter Code bricht keine Regeln von FxCop und StyleCop è  Code respektiert SharePoint Namenskonventionen und Style Richtlinien è  Alle Entwickler im Team verwenden das gleiche Tool mit den gleichen Templates è  Funktionalität ist einfach zu erweitern è  Führt SharePoint Anfänger durch die SharePoint Entwicklung
  • 15. è 15 SharePoint Software Factory è  Code Generierung è  Refactoring è  Coding Conventions Demo
  • 16. è SharePoint Software Factory Verfügbar auf CodePlex http://spsf.codeplex.com 21.06.11 16
  • 17. è 21.06.11 17 SharePoint Quality Assurance ^ Application Lifecycle SharePoint + ALM = SPALM Requirements Management Solution Architecture Development Quality Assurance Solution Deployment Testing Operate
  • 18. è Ziele Sicherstellung hoher Qualität von SharePoint Lösungen è  Erkennung von Schwachstellen im Code (Redundanzen, Architekturprobleme, Stabilitätsprobleme) è  Wartbarkeit des Codes sicherstellen (z.B. Coding guidelines) è  Code gegen SharePoint spezifische Regeln und Policies validieren è  Validierung des Codes gegen eine Zielkonfiguration è  Unnötige Abhängigkeiten bereinigen 21.06.11 18 SharePoint Quality Assurance
  • 19. è 21.06.11 19 Besonderheiten è  Entwicklungsergebnis besteht nur zu einem Teil aus DLL è  Großer Teil besteht aus XML (feature.xml, manifest.xml, usw.) è  Entwicklung ist verteilt auf viele einzelne Artefakten (XML, Bilder, CSS, DLL usw.)
  • 20. è Code Analysis Tools Geprüfte Elemente Ziel Tool Assembly Code (.dll) Prüfung des Codes auf Qualität, Redundanzen, Strukturierung usw. Microsoft FxCop Quellcode (C#) Konformität zu Coding Guidelines Microsoft StyleCop Assembly Code (.dll) Prüfung auf Speicherlecks Microsoft SPDisposeChecker Assembly Code (.dll) + SharePoint Code (XML, ASPX) Prüfung auf Konformität zu - Customization Policy - Security-Richtlinien - Schema-Vorschriften - Best Practices - Lizenzbestimmungen - usw. Kein Tool L
  • 21. è Gefährdet der Code die Sicherheit der Farm, z.B. durch CAS-Policies, RunWithElevatedPrivileges etc.? 21.06.11 21 Anwendungsfälle Verstößt der Code gegen Microsoft Vorgaben oder Best practices? Kann die Application auch als Sandboxed Solution installiert werden? Hat die Applikation Abhängigkeiten zu MOSS Enterprise Features? Verstößt die Application gegen Unternehmens- richtlinien, z.B. Mehrsprachigkeit, Guidelines? Gefährden wir durch Installation den Support von Microsoft, z.B. durch Überschreiben von Systemdateien?
  • 22. è 22 Anwendungsfälle Prüfung einer Application auf unterstützte Supportlevel (Silver, Gold, Platinum), z.B. zu Microsoft Customization Policy 21.06.11
  • 23. è Herausforderung: Korrekter SharePoint Code : XML in Visual Studio Projekten wird nicht im Build validiert. 21.06.11 23 MSDN: “The ActivateOnDefault attribute does not apply to site collection (Site) or Web site (Web) scoped Features.” Fehlerhafter Code… ...aber keine Fehler im Build. Fehlerhafter SharePoint Code führt zu Problemen bei: §  Build? Nein §  FxCop Code Analysis? Nein §  Installation? Nein §  Ausführung? Ja!
  • 24. è 21.06.11 24 SMC ShareCop Toolbasierte Code Analyse mit „ShareCop“ è  Eigenentwicklung von SMC, da keine vergleichbare Lösung in VS.NET è  Überprüfung von WSP-Solutions auf Verstöße gegen bestimmte Regeln è  Integration in Build Open Source (noch nicht veröffentlicht) http://sharecop.codeplex.com
  • 25. è 25 ShareCop è  SharePoint Code Analyse è  Report Demo
  • 26. è 26 SharePoint Software Factory è  Code Analyse in SPSF Projekten è  Integration im Release Build Demo
  • 27. è 21.06.11 27 SharePoint Solution Deployment ^ Application Lifecycle SharePoint + ALM = SPALM Requirements Management Solution Architecture Development Quality Assurance Solution Deployment Testing Operate
  • 28. è Ziele Automatisierte Installation einer Applikation in einer SharePoint Farm è  Vollständige Installation der Applikation (inkl. notwendiger Konfigurationsschritte) è  Automatisierte Installation è  Bei Bedarf auch Deinstallation möglich è  Aktualisierung einer vorherigen Version möglich 21.06.11 28 SharePoint Deployment
  • 29. è SharePoint Staging Problem: Häufig erfolgt das Deployment manuell durch den Betrieb 21.06.11 29 Manuelle Installation Manuelles Setup von WebApps & Site Collections Manuelle Tests zusammen mit Fachanwender Manuelle Konfiguration von Sucher, Service Apps etc.
  • 30. è SharePoint Staging 21.06.11 30 Admin kopiert und installiert Dateien manuell in alle Staging Umgebungen (für jedes Release!) Test Integration Production
  • 31. è 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.) 21.06.11 31 Test Integration Produktion
  • 32. è 21.06.11 32 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“ …
  • 33. è 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 è  … 21.06.11 33 Besonderheiten Inhalt •  2 Neue ContentTypes •  Bei bestehenden ContentType Spalte entfernen •  Bei bestehenden ContentType Spalte ergänzen Version 1.0 Version 1.1 Version 2.0
  • 34. è 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 21.06.11 34
  • 35. è 21.06.11 35 SMC Best Practices Deployment Prozess durchführen mit MSBUILD §  Ausführbar auf jedem Rechner mit .NET 2.0 (keine Installation) §  Leicht erweiterbar durch eigene MSBUILD-Tasks §  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
  • 36. è 21.06.11 36 SMC SP Application Deployer Deployment Projekt für SharePoint Lösungen è  Eigenentwicklung von SMC è  „Sammelt“ alle WSPs der VS Solution in ein Deployment Projekt è  MSBuild Tasks + Batches für Deployment Prozess Open Source (noch nicht veröffentlicht) http://spappdeploy.codeplex.com
  • 38. è Ergebnis: è  Projekte in Kosten und Zeit è  Business Requirements werden schneller in höherer Qualität umgesetzt è  Akzeptanz von SharePoint im Unternehmen steigt. SharePoint Entwicklung macht Spaß! J Zusammenfassung 21.06.11 38 Volle Transparenz §  Welche Requirements werden im nächsten Release umgesetzt? §  Welche Bugs wurden gefunden und wann werden sie gelöst? §  Wie lange wird das Projekt noch dauern? §  etc. Weniger manuelle Schritte §  Automatisches Deployment von Applikationen §  Automatischer Build von Solutions §  Automatische Qualtiätschecks §  etc. Gesteigerte Qualität §  Höhere Performance und Stabilität §  Höhere Code Qualität §  Einhaltung von Konventionen §  etc.