35
Veranstal ter: Partn er: 31. JAN.-1. FEB. 2012 SHAREPOINT 2010 – PRAXIS PUR! SharePoint als Entwicklungsplattfor m Applikationen auf Basis von SharePoint entwickeln Jörg Krause, www.joergkrause.de

SharePoint für Entwickler

Embed Size (px)

DESCRIPTION

Hintergrund, Motivation und Herausforderungen für den SharePoint Entwickler.

Citation preview

Page 1: 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

Page 2: SharePoint für Entwickler

Veranstalter: Partner:

Warum SharePoint?

Darum SharePoint!

Page 3: SharePoint für Entwickler

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

Page 4: SharePoint für Entwickler

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

Page 6: SharePoint für Entwickler

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

Page 7: SharePoint für Entwickler

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

Page 8: SharePoint für Entwickler

Veranstalter: Partner:

Office ist für den Anwender sichtbar!

Aber was liegt unter der Oberfläche?

Page 9: SharePoint für Entwickler

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

Page 10: SharePoint für Entwickler

Veranstalter: Partner:

Ist SharePoint die Antwort?

Page 11: SharePoint für Entwickler

Veranstalter: Partner:

Page 12: SharePoint für Entwickler

Veranstalter: Partner:

Und was kann ich als Entwickler tun?

Page 13: SharePoint für Entwickler

Veranstalter: Partner:

Page 14: SharePoint für Entwickler

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

Page 15: SharePoint für Entwickler

Veranstalter: Partner:

Entwickler Evolution

?

Page 16: SharePoint für Entwickler

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

Page 17: SharePoint für Entwickler

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

Page 18: SharePoint für Entwickler

Veranstalter: Partner:

Kenne Strategien…

• Developer Dashboard• Ereignisprotokoll• SharePoint Logs• Debugger an laufenden Prozess

anhängen• IIS Logs• Traces auswerten

Page 19: SharePoint für Entwickler

Veranstalter: Partner:

Aber vor allem…

Kenne SharePoint!

Page 20: SharePoint für Entwickler

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

Page 21: SharePoint für Entwickler

Veranstalter: Partner:

Philosophische Fragen…

• Konfigurieren oder Programmieren?• SharePoint Designer?• Visual Studio Workflows?• Client Object Model oder REST API?• Silverlight oder JavaScript?

…sind eher Randthemen

Page 22: SharePoint für Entwickler

Veranstalter: Partner:

Wichtige Themen

• Entwicklungsumgebung aufbauen• Tools• Deployment-Strategien, ALM• Erweiterungstechniken• Und:• Einstiegspunkte in die API• Coding Guidelines• SharePoint Governance

Page 23: SharePoint für Entwickler

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

Page 24: SharePoint für Entwickler

Veranstalter: Partner:

Die Entwicklungsumgebung

Tipp

Page 25: SharePoint für Entwickler

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

Page 26: SharePoint für Entwickler

Veranstalter: Partner:

31. JAN.-1. FEB. 2012

SHAREPOINT 2010 – PRAXIS PUR!

“Toooools”“Fiddler”“F12”“Developer Dashboard”“14 Hive / LOGS”“ILSpy || Reflector”

Page 27: SharePoint für Entwickler

Veranstalter: Partner:

Wie komme ich eigentlich an die API?

Page 28: SharePoint für Entwickler

Veranstalter: Partner:

Der Seitenkontext

• SPSite als typischer Einstiegspunkt• Laufzeitumgebung beachten:• Web Application, Silverlight (ASP.NET)• SharePoint Instanz (Web Part, Feature,

…)• Konsolenapplikation, Windows Forms,

WPF, …

Page 29: SharePoint für Entwickler

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;

Page 30: SharePoint für Entwickler

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();

Page 31: SharePoint für Entwickler

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

Page 32: SharePoint für Entwickler

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

Page 33: SharePoint für Entwickler

Veranstalter: Partner:

31. JAN.-1. FEB. 2012

SHAREPOINT 2010 – PRAXIS PUR!

“Get the Context”“Dispose Pattern”“Retrieve Data”“Event Receiver”

Page 34: SharePoint für Entwickler

Veranstalter: Partner:

Page 35: SharePoint für Entwickler

Veranstalter: Partner:

31. JAN.-1. FEB. 2012

SHAREPOINT 2010 – PRAXIS PUR!

Vielen Dank!Jörg Krause