Aus der Praxis – Programmatischer Zugriff auf Dokumentversionen in SharePoint mit Hilfe der Klassen SPListItemVersion und SPFileVersion
avatar

Im ein oder anderen Anwendungsfall ist es sinnvoll und / oder notwendig, programmatische auf die Versionen eines Dokumentes in einer Dokumentbibliothek zuzugreifen. Zu diesem Zweck stellt die SharePoint API die Klassen SPListItemVersion und SPFileVersion bereit. Ein Dokument könnte z.B. in folgenden Versionen vorliegen: Nun kann man im Code entweder für das Listenelement (SPListItem) oder für…

Realisierung einer klassischen, websitesammlungsübergreifende Hauptnavigation in SharePoint 2010
avatar

Als einer unserer Kunden vor einiger Zweit mit dieser Anforderung auf uns zu kam, habe ich noch vermutet, dass diese Art der Navigation ein Spezialfall ist und Microsoft deshalb keine out-of-the-box-Lösung in Form eines Navigation Providers dafür bereitstellt. Der von Microsoft präferierte Ansatz diesbezüglich geht über die Verwendung der MySite als zentrales Medium, um anhand…

Aus der Praxis – Vorstellung der Klasse “Records”
avatar

Diese statische Klasse aus dem SharePoint Framework ist eine wahre Fundgrube. Sie versteckt sich im Namespace “Microsoft.Office.RecordsManagement.RecordsRepository” der Assembly “Microsoft.Office.Policy.dll”. Hier findet man einige sehr nützliche Methoden, wenn man im Umfeld des Records Management programmieren möchte. So erspart man sich die mühsame Eigenentwicklung bestimmter Methoden, die z.B. das Auslesen von (teilweise internen) Eigenschaften eines Listenelement…

Aus der Praxis – Ein einfaches Feld für die Anzeige berechneter Werte
avatar

Es gibt diverse Artikel zur Erstellung von Custom Field Types für SharePoint 2010, von denen einige auch berechnet Felder (Computed Fields) behandeln. Leider reichte keines dieser Beispiele für meine Anforderungen aus. Ich benötigte ein berechnetes Feld, das mit den von ihm errechneten Wert nicht nur darstellt, sondern soweit auch am Listenelement speichert, dass man ihn…

Aus der Praxis – Wo wird der Inhaltstyp noch verwendet?
avatar

Ein Inhaltstyp (Content Type) kann nicht aus der Galerie gelöscht werden, wenn er noch auf der Websitesammlung (Site Collection) verwendet wird. Wenn also eine entsprechende Fehlermeldung beim Löschen auftritt, stellt sich die Frage, wo wird der Inhaltstyp noch verwendet? Bei der Suche nach Verwendungen kann das folgende Skript helfen, es benutzt die Klasse SPContentTypeUsage. $site…

Kleine Helfer: Portal Struktur Generator
avatar

In all den Jahren, in denen ich nun erfolgreich SharePoint-Projekte umgesetzt habe, stand ich immer wieder vor der Herausforderung das SharePoint-Portal in meiner Entwicklungsumgebung so aufzusetzen, das es mit dem Test-, dem Staging- und dem Live-System möglichst identisch ist. Dieses Prozedere kann unter Umständen sehr viel Zeit und Nerven in Anspruch nehmen, da gerade im…

Aus der Praxis: Farmweite Informationsbereitstellung mit “Search based teasering”
avatar

Da sich mein letzter Artikel um das Thema SEO drehte, möchte ich die Thematik „Suche“ auch heute nicht gänzlich verlassen und einen Mechanismus vorstellen, der auf der SharePoint-Suche basierend, Inhalte global konsolidieren und in Teaserform (Banner) darstellen kann. Ein Anwendungsfall für einen derartigen Mechanismus wäre bspw. ein Teaser wie „My Documents“ oder „My Tasks“, der…

SEO und SharePoint – Aller guten Dingen sind drei!
avatar

In diesem Artikel möchte ich auf das Thema Search Engine Optimization näher eingehen und drei Bereiche aus dieser Thematik vorstellen, die auch im SharePoint-Umfeld eine relevante Rolle spielen. XML-Sitemap SEO Ping Robots.txt Zu jedem dieser drei Mechanismen möchte ich einen Weg zeigen, wie sich diese in SharePoint integrieren lassen und so den WebCMS-Auftritt in Punkto…

Aus der Praxis – Beschreibung für einen eigenen Timerjob vergeben
avatar

Die Entwicklung eines eigenen Timerjobs für SharePoint 2010 ist nicht sehr aufwendig, es gibt dazu diverse Anleitungen und Artikel (s.u.). Im folgenden Beispiel handelt es sich bei dem entwickelten Timerjob um eine Komponente, die zyklisch alle Aufgaben betrachtet und einen Status setzt, wenn ein bestimmter Zeitraum verstrichen ist. Der Code könnte wie folgt aussehen: public…

.Net Reflector ade! dotPeek juhe!
avatar

Decompiler sind oftmals die letzte Chance einen Fehler im Quelllcode einer Drittanbieter-Komponente ausfindig zu machen oder einen schnellen Blick unter die Haube zu werfen. Jahrelang gab es im .Net-Umfeld nur eine herausragende Komponente – Den Lutz Roeder .Net Reflector! Da der .Net Reflector mittlerweile nicht mehr kostenlos verfügbar ist, kommt dieses kleine, aber überaus mächtige…