SharePoint bringt eine Reihe von eigenen Controls mit, die auch in den Eigenentwicklungen genutzt werden können. Die folgenden Seiten bieten einige Beispiele für die Einbindung und Benutzung dieser Controls.

René Hézser stellt eine Klasse mit diversen Webcontrols zur Verfügung, wobei das benötigte Control anhand des SPFieldType ermittelt wird

René Hézser zeigt außerdem die Verwendung von TextField bzw. RichTextField, welche “webübergreifend” agieren

Karine Bosch zeigt die einfache Verwendung von SharePoint User Controls und SharePoint Server Controls, unter anderem “InputForm Controls”, “DateTime Control”, “PeopleEditor Control”, “SPGridView Control”, “Validator Controls”…

Reza Alirezaei zeigt die Benutzung einer Standard SharePoint Toolbar in Webparts

 

Gerade hatte ich das Problem, einen Benutzer aus dem AD auszulesen und im Sharepoint zu berechtigen. Das Problem hierbei war, das man aus dem sAMAccountName nur den Teil des Namens bekommt und nicht etwa die Domain dazu.

Es wird aber für web.EnsureUser() genau der komplette Loginname benötigt.

Des Rätsels Lösung:

public static string GetLoginName(string alias)
{
            NTAccount nt = new System.Security.Principal.NTAccount(alias);
            SecurityIdentifier sid = (SecurityIdentifier)nt.Translate(typeof(SecurityIdentifier));
            nt = (NTAccount)sid.Translate(typeof(NTAccount));
            return nt.Value;
}

gefunden bei Dan

Hat mir jedenfalls eine Menge gefrickel erspart! Danke Dan

 

Bei der Webpart Entwicklung ist es oft notwendig, die darzustellenden Labels, Hinweistexte und sonstige Schriftzüge in verschiedenen Sprachen zu halten. Sei es ein freies Webpart, welches für die breite Community gedacht ist, ein Kundenwunsch, weil er mehrere Standorte in verschiedenen Ländern und somit auch anderssprachige Mitarbeiter hat oder sonst ein beliebiger Grund wie z.B. Langeweile.

Bei mir trifft heute der zweite Punkt zu und daher möchte ich kurz auf die Lokalisierung eingehen. (kurz deshalb, weil es gar nicht soviel ist :) )

Man nehme ein Webpart seiner Wahl und beginnt zu entwickeln.

Beispiel: Wir möchten einen String ausgeben, welches uns in verschiedenen Sprachen begrüßt. Diese Texte sollen in Deutsch und in Englisch erscheinen.

Zuerst legen wir 3 Resourcendateien an, welche beim SharePoint im Verzeichnis 12/Resources/ liegen.
Diese Datei nennen wir Beispiel.resx, Beispiel.en-us.resx und Beispiel.de-de.resx.

Inhalt Beispiel.resx und Beispiel.en-us.resx

<?xml version="1.0" encoding="utf-8"?>
<!-- _lcid="1033" _version="12.0.4518.1014" _dal="1" -->
<!-- _LocalBinding -->
<root>
  <Data Name="wphallotext">
    <Value>Hello WebPart</Value>
  </Data>
</root>

Inhalt Beispiel.de-de.resx

<?xml version="1.0" encoding="utf-8"?>
<!-- _lcid="1031" _version="12.0.4518.1014" _dal="1" -->
<!-- _LocalBinding -->
<root>
  <Data Name="wphallotext">
    <Value>Hallo WebPart</Value>
  </Data>
</root>

Hierbei ist der einzige Unterschied die LCID und der Wert unseres Keys. Die ersten beiden Dateien sind sogar komplett gleichen Inhalts, worauf ich später nochmal eingehe.

Wenn diese 3 Dateien nun fertig im Verzeichnis hinterlegt sind, können wir diese Strings nun zur Laufzeit im Webpart laden. Dazu bietet das Objektmodell des SharePoints bereits eine Methode, welche 3 Parameter erwartet.

string str = SPUtility.GetLocalizedString("$Resources:wphallotext", "Beispiel", 1033);
  • den Source (string)
  • Resourcenfile (string)
  • LCID (uint)

"wphallotext" ist der Key, welcher in den Dateien definiert ist

"Beispiel" ist das Ressourcenfile (ohne die spezifische Sprachendung)

"1033" steht für die Englisch (natürlich sollte dies nicht hartcodiert sein, sondern z.B. per SPContext.Current.Web.Language ermittelt werden :) )

Tja das war es dann auch schon. Kompilieren, anschauen und freuen wie einfach es doch ist.

Aber wozu werden denn nun 3 Dateien gebraucht wenn es nur 2 Sprachen gibt und warum sind Beispiel.resx und Beispiel.en-us.resx komplett gleich? Die Datei Beispiel.resx ist das Default-Resourcenfile und wird benutzt, wenn eine Sprache nicht verfügbar ist. Da Englisch eine Weltsprache ist macht es hier Sinn, diese in die Default Resource zu packen. Wird nun die Webseite in Russisch geladen und wir haben keine Beispiel.ru-ru.resx hinterlegt, wird unser Text in Englisch angezeigt.

 

*SCHNIEF*

Soeben habe ich auf dem Microsoft SharePoint Team Blog gelesen, das es keinen MOSS mehr geben wird. Allerdings müssen wir uns nur eine neue Abkürzung ausdenken, denn der “Office” – Teil im Namen wird in der zukünftigen Version verschwinden. Auch heißt die kommende Version nicht mehr Microsoft SharePoint “14” sondern Microsoft SharePoint 2010. MSS (Microsoft SharePoint Server 2010) ist als Synonym schon für den Search Server vergeben – geht also auch nicht…

Das der “Office” – Teil im Namen entfallen ist hängt damit zusammen, das viele Leute mit “Microsoft Office” die Clientapplikationen in Zusammenhang bringen und das ist natürlich nicht gewollt. Eine kräftige und viel bessere Unterstützung bringt der Server natürlich trotzdem für die Office Produkte mit.

An der v4 der Windows SharePoint Services wird auch kräftig gearbeitet, aber dazu gab es zu diesem Zeitpunkt keine genaueren Infos.

Tja, wie nennt denn die Community nun die neue Version? Ausschreiben wird auf Dauer zu langwierig..

MSPS? Weiterhin MOSS 2010? SharePoint 14?

 

Link zum Artikel

 

Als ich die News in einigen Sharepoint Blogs (unter anderem bei Rene Hezser) gelesen habe, dachte ich noch an einen Aprilscherz. Das Datum, 1. April wurde vorausgesagt und passte ja perfekt als kleiner Scherz, um neuen Gesprächsstoff in der Community zu erwecken. Allerdings wurde aus diesem Gerücht die Wahrheit und der Designer ist ab sofort im kostenlosen Download verfügbar!

Der Sharepoint Designer kann unter http://www.microsoft.com heruntergeladen werden.

Du kennst den Sharepoint Designer gar nicht und fragst dich was das sein soll? Du bist über die Suchmaschine deines Vertrauens auf diese Seite gelangt, weil du nach “kostenlos” gesucht hast und willst nun wissen ob sich der Download lohnt? Michael Greth (Sharepoint MVP) hat einige Tipps zur Verwendung des Sharepoint Designers und weitere Quellen zusammengefasst (22+ Stück).

image

Update: Auch der Microsoft SharePoint Designer 2010 ist kostenlos und hier in den 2 Varianten erhältlich

Microsoft SharePoint Designer 2010 (32 bit)

Microsoft SharePoint Designer 2010 (64 bit)

 

Und wieder sind 2 neue Blogs mit dem hauptsächlichen Thema "Entwicklung" ganz frisch im WWW.
Beide Blogs stammen von meinen Kollegen, die sich hauptsächlich den Themen Sharepoint - allgemein, Webparts, Webservices, Workflows oder Infopath widmen und mit Sicherheit einige tolle Code Snippets und Tipps dort veröffentlichen werden.

Steffen hat bereits seinen Blog mit dem Beitrag -> Image per WebService ins InfoPath Formular gestartet.

Markus ist mit seinem "nächsten Blog" schon um ein paar Beiträge reicher!

Markus Blog
Steffens Blog

na dann Happy Blogging

 

Wir hatten in den letzten beiden Tagen eine Menge Stress auf Arbeit, da bei 2 Kunden mehrere Webparts, nach dem einspielen der neuesten Updates, mit dem Fehler “401 Unauthorized” nicht mehr funktionierten. Natürlich war es bei beiden Kunden super dringend den Fehler zu lokalisieren und vor allem zu beheben!

Mit mehreren Leuten wurden alle Updates einzeln unter die Lupe genommen, im Internet nach der Fehlermeldung recherchiert und die Quellcodes angesehen.
Da die Entwicklungen von 3 verschiedenen Entwicklern stammten, war hier ein Folgefehler ausgeschlossen. Allerdings hatten alle Webparts dasselbe Problem – sie konnten keine entfernten Dateien per Request abrufen. Unterschiede gab es bei den Zugriffen:

  • RunWithElevatedPrivileges()
  • eigenständigen Impersonator (Username und Passwort)
  • nachladen ohne Authentifizierung

Die Request waren ebenfalls unterschiedlich:

  • Zugriff auf Webservice
  • Aufruf einer aspx Seite
  • Stream eines Bildes

Alle meldeten die oben genannte Fehlermeldung… aber lange Rede kurzer Sinn…

Nach der Recherche kam heraus, das der Fehler nicht von einem der Sharepoint Kumulativ Updates kam, sondern von .NET Framework 3.5 SP1.

Dieses Update führt einen Loopback Check ein, welcher jedoch nicht auf StandAlone Servern auftritt bzw. wenn der Servername und nicht die Loadbalancer URL aus dem Coding benutzt wird.

Eine mögliche Lösung die bei uns geholfen hat war folgende:

  • Hinzufügen des DisableLoopbackCheck in der Registry mit anschließendem Reboot der Server

Der KnowledgeBase Artikel ist hier zu finden: Microsoft KB Artikel

 

Leider hat die Lösungsfindung ein Weilchen gedauert und ich kann hiermit einigen helfen das Problem schneller zu lösen.

 

Jeder kennt sicherlich den Source Parameter, den Sharepoint bei Aufrufen in der URL übergibt, um anschließend wieder zu dieser Seite zurückzukehren.
Ich erstelle gerade eine neue Sitedefinition, welches ein Content Editor Webpart mit einigen Links enthalten soll und habe den Platzhalter für die aktuelle Seite vergessen. Also die Suchmaschine meines Vertrauens abgefragt und was finde ich hier

ONCLICK="GoToLink(this);return false;

Eine einfache Javascript Methode die der Sharepoint zur Verfügung stellt und selbstständig die Source als Parameter anhängt..

Ab sofort erspare ich mir doch Sachen wie beispiel.aspx?Source=" + web.ServerRelativeUrl; oder beispiel.aspx?Source={SiteUrl} den ich nun auch gefunden habe :)

 

Am 13.01.2009 (heute!!!) endet der offizielle Support für MOSS 2007 ohne SP1. Jeder sollte angehalten sein, spätestens jetzt das SP1 und das Infrastrukturupdate zu installieren!

 

Morgen wird ein Webcast zum Thema Webpartentwicklung mit Visual Studio 2010 veröffentlicht.

So eigentlich erst mal nichts spannendes aber eine Besonderheit gibt es doch!
Es wird endlich eine visuelle Unterstützung geben. *Begeisterung macht sich breit*

Lang ersehnt, immer wieder mit Kopfschmerzen ins Bett weil man nicht weiß wie man das wieder realisieren soll und nun geht's doch so einfach... Ich bin gespannt und freue mich drauf. Mal sehen wann er morgen da ist.
Der Link zum Webcast wird dann hier als Update bereitgestellt.

Update: Hier der Link http://channel9.msdn.com/posts/VisualStudio/Sharepoint-Development-with-Visual-Studio-2010/

© 2012 Daniel Buschke - Blog Suffusion theme by Sayontan Sinha