Post on 08-Dec-2014
description
transcript
è
è 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
SP Application 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