SharePoint Development Sebastian Weber

Slides:



Advertisements
Ähnliche Präsentationen
Was gibt´s neues im Bereich Sicherheit
Advertisements

Sichere Anbindung kleiner Netze ans Internet
ASP.NET Tips & Tricks Uwe Baumann
Daten fließen lassen XML in Microsoft Office 2003 Lorenz Goebel Frank Fischer
Zusammenarbeit in Office mit den SharePoint Technologien Michael Carpi
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Design- und Entwicklungswerkzeuge
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
Office XP und XML Web Services Dariusz Parys.NET Strategy & Developer Group
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Microsoft Academic Program Die Macht der WebParts Bernd Malter Student Technology Conference 2005.
SPS / WSS Entwicklung Martin Saternus Technical Student Consultant Microsoft Deutschland GmbH
Systemverwaltung wie es Ihnen gefällt.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Erweiterung B2B Usermanagement / LDAP-Anbindung
Intranet-Portal mit Microsoft SharePoint Portal Server
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
Introducing the .NET Framework
SharePoint Portal Server 2003 Überblick und Einblick in ein Migrationsprojekt.
Mono und andere freie.NET Implementierungen. Implementierungen Microsoft.NET Framework Win32, Win64? Microsoft.NET Compact Framework WinCE (Mobile, Phone)
Erstellen von WebServices mit Visual FoxPro 9.0
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Uwe Habermann VFX 10.0 Visual Extend Produktaktivierung.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Aichinger Christian, Strasser Jürgen
Oliver Schnider Peaches Industries GmbH Its time to be ready for May 12th.
EIN CMS MACHT SCHULE Tina Gasteiger.
Migrieren eines Sharepoint Designer Workflows zu Visual Studio .NET
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Microsoft Internet Information Services (IIS)
Best Practices in der Datenbank-programmierung
SharePoint 2010 for Information Architects
1 Teil 2 Einblicke in Exchange 2003 (Basis Beta 2)
SQL Server 2005 CLR-Integration
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Präsentation von Sonja Pathe
Brand my SharePoint Grafische Gestaltung von SharePoint-Webseiten
Tools und Verfahren Steffen Krause Technologieberater Microsoft Deutschland GmbH
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
… und was man damit machen kann.
Windows Server 2012 R2 Upgrade-Potential
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
Warum IIS? Best of Microsoft Webserver
MSDN TechTalk Anwendungen integrieren in Microsoft Dynamics CRM 4.0.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
7.-8. März 2013, Rosenheim Brand my SharePoint grafische Gestaltung von SharePoint 2013-Webseiten Fabian Moritz | MVP SharePoint Server.
Oracle Portal think fast. think simple. think smart. Dieter Lorenz, Christian Witt.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Microsoft Student Partner
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
Campus Bern Patrick Mäschli, Software Architect
SOFTWARE- UND WEB-LÖSUNGEN
 Präsentation transkript:

SharePoint Development Sebastian Weber

SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de

Sebastian Weber Software Engineer bei der Platinion GmbH, einer Tochter der Boston Consulting Group Über 10 Jahre Erfahrung in der Softwareentwicklung im Microsoft Umfeld Autor und Sprecher mit den Schwerpunkten .NET Architektur und Technologien (SQL Server und SharePoint)

Warum selber programmieren ...? SharePoint um eigene Module (Web Parts) erweitern Issue-Tracker, Helpdesk, Weblog, Wiki, ... SharePoint programmatisch administrieren Web Parts installieren, Seiten erzeugen, Themen zuweisen ... SharePoint Funktionen/Daten in eigener Anwendung nutzen Zugriff auf SharePoint Dokumentenbibliothek aus eigener (Windows) Anwendung heraus, ...  ... um alles aus SharePoint herauszuholen!

Beispiel 1: Intranet aufbauen „Altes“ HRMS (J2EE) HRMS Staffing HRMS Timesheet

Beispiel 2: Daten extern nutzen Firmen-Homepage Externe News Web Service Intranet Externe News Zentrale Verwaltung aller News (intern und extern)

... wie ist das mit SharePoint realisierbar? Aber ... ... wie ist das mit SharePoint realisierbar?

Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

Systemumgebung „Eine Maschine“ „Zwei (oder mehrere) Maschinen“ Direkt auf Windows Server 2003 arbeiten http://www.msfn.org/win2k3/ „Zwei (oder mehrere) Maschinen“ Entwicklung auf Windows XP Deployment auf Windows Server 2003 Virtual PC oder externes System

Entwicklungsumgebung Visual Studio .NET SharePoint DLLs kopieren (bei „Mehr-Maschinen-Modell“) C:\Program Files\Common Files\Microsoft Shared \web server extensions\60\ISAPI Microsoft.SharePoint.DLL Microsoft.SharePoint.Portal.DLL Microsoft.SharePoint.Portal.SingleSignon.DLL Microsoft.SharePoint.Portal.SingleSignon.Security.DLL Web Part Projektvorlage für Visual Studio .NET http://msdn.microsoft.com/sharepoint

Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

SharePoint Architektur Objektmodell Web Services Areas SSO ... .NET Framework Objektmodell Web Services Web Part WebDAV FP RPC Sites Webs ... Docs Lists WebPart SharePoint 2001 (Unmanaged) Code

Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

Was sind Web Parts? Aus der Sicht des Anwenders Bausteine für modulare Webseiten Einbindung in Webseite zur Laufzeit möglich Aus der Sicht des Entwicklers ASP.NET Server Controls, als Assembly deployed Haben vollen Zugriff auf die .NET Base Class Library Unterstützung durch Visual Studio .NET Projekt Template

Das „Hello World!“ Web Part namespace MyWebParts { using Microsoft.SharePoint; using Microsoft.SharePoint.WebPartPages; public class HelloWorld : WebPart { protected override void RenderWebPart (HtmlTextWriter output){ output.Write(“Hello World!”); }  ... wie ASP.NET Server Control Entwicklung!

Web Part Deployment – Option 1 Windows Server IIS Virtual Server \bin\ - Ordner Web.config „Safe Control“ Web Part Assembly (DLL) Assembly für jeden Virtual Server einzeln installieren Assembly muß als „Safe“ in der Web.config registriert sein IIS Virtual Server \bin\ - Ordner Web.config „Safe Control“

Web Part Deployment – Option 2 Windows Server Global Assembly Cache (GAC) Web Part Assembly (DLL) IIS Virtual Server Assembly global für alle Virtual Server installieren Assembly im GAC ist immer „Safe“ (strong name) IIS Virtual Server IIS Virtual Server

Noch mehr Optionen ... Manuelle Installation CAB Datei erstellen Dateien kopieren Web.config anpassen CAB Datei erstellen Dateien in CAB kopieren STSADM.EXE aufrufen MSI Paket erstellen WPPackager.EXE Tool verwenden! http://msdn.microsoft.com/SharePoint

demo Kalender Web Part

Weitere Features ... Web Part Connections Event-gesteuerter Datenaustausch Nur Implementierung der Consumer/Provider Interfaces und Methoden nötig IList, IRow, ICell, IFilter, IParams, Transformers

Zukunft der Web Parts Visual Studio .NET 2005 („Whidbey“) „Whidbey“ Web Parts ≠ SharePoint Web Parts ASP.NET Team wird einen Wrapper bereitstellen, mit dem Whidbey Web Parts in SharePoint laufen Nächste SharePoint Version wird auf Basis von Whidbey Web Parts arbeiten!

Tipps, Tricks & Best Practices Fehlerbehandlung durchführen (try-catch), ansonsten Umleitung auf Fehlerseite durch SharePoint Immer HTMLEncode verwenden Öffentliche Eigenschaften über Attribute gut kommentieren SharePoint Caching-Mechanismen verwenden

Web Parts gut&schlecht Building Blocks der Zukunft für modulare Webseiten Integration vorhandener ASP.NET Steuerelemente Schlecht Kein Designer verfügbar Debugging derzeit umständlich Wrapper „SmartPart“ http://gotdotnet.com „Whidbey“

Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

Was ist das Objektmodell? Schnittstelle zu ... Windows SharePoint Services (WSS) SharePoint Portal Server (SPS) .NET Assemblies (managed DLLs) Objektmodell „erwartet“ SharePoint auf dem selben Rechner, kein Fernzugriff!

Objektmodell ist nur innerhalb des SharePoint Servers verwendbar Web Part Windows-Anwendung Web-Anwendung Objektmodelle

Windows SharePoint Services Klassen Beispiele List Data SPListCollection SPList SPListItemCollection SPListItem SPFieldCollection SPView Administration SPGlobalAdmin SPQuota SPVirtualServer Security SPGroupCollection SPGroup SPUserCollection SPUser Documents SPDocumentLibrary SPFileCollection  Insgesamt 18 Namensräume, davon stehen 9 für eigene Anwendungen zur Verfügung, Namensraum Microsoft.SharePoint.*

SharePoint Portal Server Klassen Insgesamt über 50 Namensräume, davon 16 heute in Verwendung Namensraum Microsoft.SharePoint.Portal.* Erweitert das WSS-Objektmodell um Audiences Areas Search Single Sign-on

Top-Level Objekte WSS-Objektmodell hat 4 Top-Level Objekte: SPWeb ( “Eine Site”) SPSite (“Eine SiteCollection”) SPVirtualServer SPGlobalAdmin Für sämtliche Datenoperationen (Listen, Dokumentenbibliotheken …) wird ein SPWeb benötigt!

SPWeb bietet Zugriff auf sämtliche Objekte einer Site Ermöglicht Zugriff auf Listen, Dokumente, Benutzer, Benachrichtigungen einer Site Eigenschaften (Beispiel): Web.Lists (liefert eine Collection aller Listen) Web.Title (liefert den Titel der Seite) Web.Users (liefert die Benutzer der Seite) Zugriff auf das aktuelle SPWeb Objekt geschieht mit SPControl über den Kontext: SPWeb web = SPControl.GetContextWeb(Context);

Beispiel: Zugriff auf Listen Liste über das Web-Objekt beziehen SPWeb web = SPControl.GetContextWeb(Context); SPList myList = web.Lists[“Aufgaben”]; Verweis auf die Einträge der Liste über die Items-Eigenschaft SPListItemCollection items = myList.Items; alternativ kann die Liste über ein SPQuery Objekt eingeschränkt werden SPListItemCollection items = myList.GetItems(query); Zugriff auf die Felder geschieht über den Indexer des SPListItem Objekts foreach(SPListItem item in items) { Response.Write(item[“Title"].ToString()); }

Zugriff auf Listen mit Objektmodell demo Zugriff auf Listen mit Objektmodell

Weitere Features ... Event Sinks Implementierung eigener Events möglich, bspw. bei check-in/-out von Dokumenten Event-Listener implementieren Deployment direkt in GAC Aktivierung unter SharePoint Oberfläche Ermöglicht Workflowunterstützung

Tipps, Tricks & Best Practices SPGlobalAdmin und SPSite sind die einzigen Klassen, die direkt mit „new“ instantiiert werden können foreach() ist schneller als Durchlauf per Index Ergebnis kostspieliger Aufrufe wie GetListItems() zwischenspeichern Überwachung der Aufrufe mit SQL Profiler möglich

Objektmodell gut&schlecht Sehr komfortabel in der Verwendung Sehr mächtig, nahezu alle Funktionen sind erreichbar Schlecht Nur auf dem SharePoint Server verfügbar, nicht von extern „by design“

Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

Was sind die Web Services? Eine weitere Schnittstelle zu ... Windows SharePoint Services (WSS) SharePoint Portal Server (SPS) Verwendet selbst die Objektmodell-Schnittstellen! Erreichbar unter http:// Server:Port / _vti_adm / ServiceName.asmx http:// Server:Port / _vti_bin / ServiceName.asmx http:// Server:Port / Sites / Site /_vti_bin / ServiceName.asmx Direkt in Visual Studio .NET verwendbar Ermöglicht den „Fernzugriff“ auf SharePoint

WebServices ermöglichen den Zugriff von „extern“ Fat-Client Anwendung Web-Anwendung (Web Part) Zugriff per SOAP Web Services

16 WSS Web Services (1-8) Name URL Administration Service /_vti_adm/Admin.asmx Alerts Web Service /[sites/][site/]_vti_bin/Alerts.asmx Document Workspace Web Service /_vti_bin/Dws.asmx Forms Web Service /[sites/][site/]_vti_bin/Forms.asmx Imaging Web Services /[sites/][site/]_vti_bin/Imaging.asmx List Data Retrieval Service /[sites/][site/]_vti_bin/DspSts.asmx Lists Web Service /[sites/][site/]_vti_bin/Lists.asmx Meeting Web Service /[sites/][site/]_vti_bin/Meetings.asmx

16 WSS Web Services (9-16) Name URL Permissions Web Service /[sites/][site/]_vti_bin/Permissions.asmx Site Data Web Service /[sites/][site/]_vti_bin/SiteData.asmx Sites Web Service /[sites/][site/]_vti_bin/Sites.asmx User & Groups Web Service /[sites/][site/]_vti_bin/UserGroup.asmx Versions Web Service /[sites/][site/]_vti_bin/Versions.asmx Views Web Service /[sites/][site/]_vti_bin/Views.asmx Web Part Pages Web Service /[sites/][site/]/_vti_bin/WebPartPages.asmx Webs Web Service /[sites/][site/]_vti_bin/Webs.asmx

3 SPS Web Services Name URL Area Web Service /_vti_bin/areaservice.asmx Query Web Service /_vti_bin/search.asmx User Profile Web Service /_vti_bin/UserProfileService.asmx

Beispiel: Zugriff auf Listen Web Reference hinzufügen Authentifizierung durchführen service.Credentials = CredentialCache.DefaultCredentials; Liste abholen XmlNode n = service.GetListItems("Aufgaben", "", null, null, "", null); Xml-Knoten durchlaufen foreach(XmlNode node in nodeList) output.Write(node.InnerText);

SharePoint Web Services Zugriff auf Listen demo SharePoint Web Services Zugriff auf Listen

Tipps, Tricks & Best Practices Roundtrips vermeiden, Xml-Ergebnisse zwischenspeichern Helper schreiben für Xml-Handling, XmlNode in XmlDocument überführen Pfade zu Webservices (.asmx) dynamisch halten, Generierung der WS Proxys manuell mit wsdl.exe

Web Services gut&schlecht Zugriff von jedem beliebigen System aus möglich (auch nicht-Windows) Schlecht Rückgabewerte erfolgen als XmlNode Nicht alle Funktionalitäten von SharePoint erreichbar (bspw. Dokumententransfer) „by design“

Wenn Web Services nicht ausreichen ... WebDAV und Frontpage RPC Verwenden HTTP Aufrufe Weitere Infos unter MSDN Direktzugriff auf die SharePoint Datenbank „keine gute Idee“ Implementierung eigener Web Services SharePoint kann „fremde“ Web Services hosten, müssen aber zuvor angemeldet werden Vom eigenen Web Service ist Zugriff auf Objektmodell möglich, „Tunneln des OM“

Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

Zusammenfassung Web Parts sind kombinierbare „Bausteine“ Der Zugriff auf SharePoint erfolgt über Objektmodell und/oder Web Services SPS ≠ WSS

Mehr Informationen Entwicklerseiten Produkt Third-Party Seiten http://msdn.microsoft.com/sharepoint http://gotdotnet.com/team/sharepoint http://code-zone.de Produkt http://microsoft.de/sharepoint Third-Party Seiten http://mysharepoint.de (Michael Greth) http://sharepointinfo.de (Markus Weisbrod) http://weblogs.mysharepoint.de/frankfi/ (Frank Fischer) http://sebastian-weber.org

Fragen und Antworten Vielen Dank! Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de

Ihr Potenzial. Unser Antrieb.