Transcript
Page 1: Sharepoint Application Lifecycle Management mit SPSF

è

è 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

Page 2: Sharepoint Application Lifecycle Management mit SPSF

è

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 è  [email protected] è  www.matthiaseinig.de è  Twitter: @mattein

Page 3: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 4: Sharepoint Application Lifecycle Management mit SPSF

è 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.”

Page 5: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 6: Sharepoint Application Lifecycle Management mit SPSF

è

21.06.11 6

Was ist SharePoint ALM?

Application Lifecycle

SharePoint +

ALM =

SPALM

Requirements Management

Solution Architecture

Development

Quality Assurance

Solution Deployment

Testing

Operate

Page 7: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 8: Sharepoint Application Lifecycle Management mit SPSF

è

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)

Page 9: Sharepoint Application Lifecycle Management mit SPSF

è

21.06.11 9

Besonderheiten

SharePoint-Erweiterungen werden im selben Ordner wie SharePoint selbst installiert

Erweiterungen

Standard SharePoint-Features

Page 10: Sharepoint Application Lifecycle Management mit SPSF

è

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

Page 11: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 12: Sharepoint Application Lifecycle Management mit SPSF

è Demo: Was kann VS OOTB?

VS SharePoint Tools

21.06.11 12

Page 13: Sharepoint Application Lifecycle Management mit SPSF

è

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

Page 14: Sharepoint Application Lifecycle Management mit SPSF

è

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

Page 15: Sharepoint Application Lifecycle Management mit SPSF

è

15

SharePoint Software Factory è  Code Generierung è  Refactoring è  Coding Conventions

Demo

Page 16: Sharepoint Application Lifecycle Management mit SPSF

è SharePoint Software Factory

Verfügbar auf CodePlex http://spsf.codeplex.com

21.06.11 16

Page 17: Sharepoint Application Lifecycle Management mit SPSF

è

21.06.11 17

SharePoint Quality Assurance

^ Application

Lifecycle

SharePoint +

ALM =

SPALM

Requirements Management

Solution Architecture

Development

Quality Assurance

Solution Deployment

Testing

Operate

Page 18: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 19: Sharepoint Application Lifecycle Management mit SPSF

è

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.)

Page 20: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 21: Sharepoint Application Lifecycle Management mit SPSF

è

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?

Page 22: Sharepoint Application Lifecycle Management mit SPSF

è

22

Anwendungsfälle

Prüfung einer Application auf unterstützte Supportlevel (Silver, Gold, Platinum), z.B. zu Microsoft Customization Policy

21.06.11

Page 23: Sharepoint Application Lifecycle Management mit SPSF

è 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!

Page 24: Sharepoint Application Lifecycle Management mit SPSF

è

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

Page 25: Sharepoint Application Lifecycle Management mit SPSF

è

25

ShareCop è  SharePoint Code Analyse è  Report

Demo

Page 26: Sharepoint Application Lifecycle Management mit SPSF

è

26

SharePoint Software Factory è  Code Analyse in SPSF Projekten è  Integration im Release Build

Demo

Page 27: Sharepoint Application Lifecycle Management mit SPSF

è

21.06.11 27

SharePoint Solution Deployment

^ Application

Lifecycle

SharePoint +

ALM =

SPALM

Requirements Management

Solution Architecture

Development

Quality Assurance

Solution Deployment

Testing

Operate

Page 28: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 29: Sharepoint Application Lifecycle Management mit SPSF

è 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.

Page 30: Sharepoint Application Lifecycle Management mit SPSF

è SharePoint Staging

21.06.11 30

Admin kopiert und installiert Dateien manuell in alle Staging Umgebungen (für jedes Release!)

Test Integration Production

Page 31: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 32: Sharepoint Application Lifecycle Management mit SPSF

è

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“

Page 33: Sharepoint Application Lifecycle Management mit SPSF

è

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

Page 34: Sharepoint Application Lifecycle Management mit SPSF

è 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

Page 35: Sharepoint Application Lifecycle Management mit SPSF

è

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

Page 36: Sharepoint Application Lifecycle Management mit SPSF

è

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

Page 37: Sharepoint Application Lifecycle Management mit SPSF

è

37

SP Application Deployer

Demo

Page 38: Sharepoint Application Lifecycle Management mit SPSF

è

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.

Page 39: Sharepoint Application Lifecycle Management mit SPSF

è

21.06.11 39

Kontakt

è  www.spalmblogger.de è 

http://spalm.codeplex.com

è  www.xing.com/net/spalm

è  @SharePointALM @SPALMSPSF @mattein

è  [email protected]


Recommended