Download - SharePoint für Entwickler
Veranstalter: Partner:
31. JAN.-1. FEB. 2012
SHAREPOINT 2010 – PRAXIS PUR!
SharePoint als Entwicklungsplattform
Applikationen auf Basis von SharePoint entwickeln
Jörg Krause, www.joergkrause.de
Veranstalter: Partner:
Warum SharePoint?
Darum SharePoint!
Veranstalter: Partner:
Praxis & Herausforderung
• Die Situation heute:• Heterogene Landschaften• Endlose Toolsammlungen
(brauchen wir alle; sind unersetzlich; bei uns ist alles anders als bei anderen Unternehmen)
• Ständige Anpassung und Erweiterung ist nötig
Veranstalter: Partner:
Wie die Praxis aussieht
• Es war einmal ein ganz normales Unternehmen…–…4000 Mitarbeiter–…viele gute Produkte–…lange am Markt–…gestandene IT-Experten
> 300 Tools, obwohl wesentliche
unternehmenskritische Applikationen im SAP liegen
Große Unternehmen haben bis zu 8000 (!sic) Tools im
Einsatz
Veranstalter: Partner:
Praxis & Herausforderung
• Abbildung kompletter Abläufe ist mit heutiger Technik realistisch
• Integration von heterogenen Tools
• Rapid Prototyping für die schnelle Entscheidungs-findung
Veranstalter: Partner:
Die Sicht der Anwender
• Überladene Benutzeroberflächen, komplexe Produkte
• Zerstreute Ablage von Mails, Dokumenten, Fax, Notizen etc.
• Geringe Anpassung an Einzelarbeitsplatz
• Langwierige Suche vonInformationen und Personen
• Viele Insellösungen ohne Integration
Office SuiteBrowser
Mailclient
Dateiablage
DBFrontend KalenderSAP
Client
Anwender ist Middleware
Veranstalter: Partner:
Vorteile SharePoint & Office
• Für Benutzer– Konsistente Benutzeroberfläche– Integration in Officeapplikationen
• Für Entwickler– Einheitliche Entwicklungsplattform– Interoperabilität, basiert auf .NET
• Für Administratoren– Einheitliche technische Infrastruktur– Einheitliches Benutzer- und Rollenmanagement
Veranstalter: Partner:
Office ist für den Anwender sichtbar!
Aber was liegt unter der Oberfläche?
Veranstalter: Partner:
Wofür wird Office heute eingesetzt?
Wieso nicht auch …
• zum Verwalten von Dokumenten?• zum Analysieren von
Geschäftsdaten?• zum Teilen von Wissen?• zur Identifikation von Personen?• zur Verknüpfung mit
Geschäftsprozessen?
• als UI für all die „crazy“ Tools ??
Rechnen Mail
PräsentierenSchreiben
Veranstalter: Partner:
Ist SharePoint die Antwort?
Veranstalter: Partner:
Veranstalter: Partner:
Und was kann ich als Entwickler tun?
Veranstalter: Partner:
Veranstalter: Partner:
Entwickler Evolution
1. Ablehnung: “Das darf nicht wahr sein! Ich lehne es ab zu glauben, dass dies der Weg ist eine ASP.NET-Anwendung zu entwickeln.”
2. Ärger: “Warum ich? Warum wurde ich ausgewählt? Das ist nicht fair! SharePoint-Entwickler werden so schlecht unterstützt. Das muss ein Witz sein.”
3. Geschäftstüchtig: ”Ich mach alles. Das ist mein Job. Nur ein wenig Hilfe bitte. Ein Werkzeug! Ein Programm! Irgendwas!”
4. Depression: ”Ich bin so traurig, warum soll mich das stören? Ich werde sterben, was spielt das noch für eine Rolle? “
5. Akzeptanz: “Es ist okay. Ich bin nicht allein. Jede ordentliche Anpassung funktioniert nur auf diesem Weg. Ich kann es schaffen, ich muss nur lernen wie.”
14
Veranstalter: Partner:
Entwickler Evolution
?
Veranstalter: Partner:
Verstehe SharePoint…
• Eine stabile, hoch skalierbar Plattform• Alles fürs Intranet „out-of-the-box“• Ist eine „multiple Persönlichkeit“
1. Eine Applikation für Benutzer2. Eine Umgebung für Power User3. Eine Plattform für die
Applikationsentwicklung4. Ein Framework für Softwareentwickler
Veranstalter: Partner:
Beherrsche Grundlagen…
• Betriebssystem: AD, Konfiguration, Firewall, …
• Protokolle: HTTP, TCP/IP, …• Framework: .NET 3.5 + ASP.NET + WF, …• Sprachen: HTML, CSS, JavaScript, XML,
C#/VB, …• Verfahren: AJAX, Cookies, Web Services,
…• Konzepte: OOP
Veranstalter: Partner:
Kenne Strategien…
• Developer Dashboard• Ereignisprotokoll• SharePoint Logs• Debugger an laufenden Prozess
anhängen• IIS Logs• Traces auswerten
Veranstalter: Partner:
Aber vor allem…
Kenne SharePoint!
Veranstalter: Partner:
Content Types Listen Bibliotheken WebParts Features Solutions Central Administration Sites Site Collection Publishing Services Excel Services Visio Services Provisioning Meta Data Service Taxonomien Terms Termsets Calendar Meeting Space Blog Wiki Templates Galeries Master Pages Application Pages Ribbon Config Database Content Database Records Management InfoPath Data Services Client Object Model Developer Dashboard SharePoint Designer Picture Library Asset Management Tag Cloud WebPart Views Lookups Recycle Bin Service Applications Access Services Business Data Connectivity Secure Store Health Service Word Automation Search Content Deploym
in no particular order
Veranstalter: Partner:
Philosophische Fragen…
• Konfigurieren oder Programmieren?• SharePoint Designer?• Visual Studio Workflows?• Client Object Model oder REST API?• Silverlight oder JavaScript?
…sind eher Randthemen
Veranstalter: Partner:
Wichtige Themen
• Entwicklungsumgebung aufbauen• Tools• Deployment-Strategien, ALM• Erweiterungstechniken• Und:• Einstiegspunkte in die API• Coding Guidelines• SharePoint Governance
Veranstalter: Partner:
Die Entwicklungsumgebung
• Plattform:• Windows Server 2008 x64• Windows Server 2008 R2 x64• Windows Vista x64• Windows 7 x64
• System• 4GB RAM Minimum, 8GB dringend empfohlen• x64 CPU• SQL Server separat empfohlen
Veranstalter: Partner:
Die Entwicklungsumgebung
Tipp
Veranstalter: Partner:
Die Entwicklungsumgebung• Standardinstallation– SharePoint Server 2010 + pre-requisites (Standalone)– Visual Studio 2010 Ultimate Edition– Silverlight 4 Tools for Visual Studio– Expression Studio 4 Ultimate– Open XML SDK– Visual Studio SDK– Visual Studio SharePoint Power Tools– Office 2010 Professional Plus– SharePoint Designer 2010– Visio 2010
• Tipps:- Fiddler 2- Reflector oder ILSpy
Veranstalter: Partner:
31. JAN.-1. FEB. 2012
SHAREPOINT 2010 – PRAXIS PUR!
“Toooools”“Fiddler”“F12”“Developer Dashboard”“14 Hive / LOGS”“ILSpy || Reflector”
Veranstalter: Partner:
Wie komme ich eigentlich an die API?
Veranstalter: Partner:
Der Seitenkontext
• SPSite als typischer Einstiegspunkt• Laufzeitumgebung beachten:• Web Application, Silverlight (ASP.NET)• SharePoint Instanz (Web Part, Feature,
…)• Konsolenapplikation, Windows Forms,
WPF, …
Veranstalter: Partner:
Der Seitenkontext
• Am einfachsten im Kontext einer Site
• Auf Application Pages• Sollten von LayoutsPageBase ableiten
SPSite oSiteCollection = SPContext.Current.Site;SPWeb oWebSite = SPContext.Current.Web;
SPWeb oWebSite = this.Web;
Veranstalter: Partner:
Der Seitenkontext
• Isolierter Programmierstil• SPSite Instanz wird explizit erstellt• Konsolen-App, WinForms, WPF, …• Nicht verwechseln mit Client Object
ModelSPSite site = new SPSite("http://meinserver");...site.Dispose();
Veranstalter: Partner:
Dispose Pattern
• Achte auf IDisposable• COM-Objekte hinter SharePoint-Instanzen• Speicherverbrauch überwachen
• Regeln• Selbst erstellte Objekte müssen entsorgt
werden• Von der API gelieferte Objekte in Ruhe
lassen
• Techniken• using verwenden• Dispose() im finally-Zweig
sicherstellen
Veranstalter: Partner:
Aktiv mit Daten arbeiten
• Daten ändern (Listelemente, Dateien)• SPList, SPFile, SPListItem
• Auf Ereignisse reagieren• SPListEventReceiver,
Before/After Events
• Das Datenmodell verändern• Auf Installationsvorgänge reagieren• Feature Receiver• Web Event Receiver
Veranstalter: Partner:
31. JAN.-1. FEB. 2012
SHAREPOINT 2010 – PRAXIS PUR!
“Get the Context”“Dispose Pattern”“Retrieve Data”“Event Receiver”
Veranstalter: Partner:
Veranstalter: Partner:
31. JAN.-1. FEB. 2012
SHAREPOINT 2010 – PRAXIS PUR!
Vielen Dank!Jörg Krause