DVWP, DFWP, LVWP, XLV, LFWP?

Wer sich als Entwickler in der SharePoint Welt bewegt muss schon ein wenig verrückt sein. Man ist zwar bereits aus der normalen .NET Welt jede Menge Kürzel gewohnt – aber SharePoint übertrifft hier alles. Was versteckt sich also hinter den oben genannten Kürzeln – und ist das Thema überhaupt noch aktuell? DVWP Das DataViewWebPart war in WSS 2.0 (Windows SharePoint Services 2.0) verantworlich für die Anzeige von Listen. Es arbeitete dabei im Hintergrund bereits mit XSLT. Heute im SharePoint 2010 wird es nicht mehr verwendet. DFWP Das DataFormWebPart löste das DVWP vollständing ab. Neben der Verwendung von XSLT zeichnet es sich durch die Nutzung von Standard ASP.NET DataSource Controls aus. (IDataSource bzw. IHierachialDataSource). Ebenso wird das Zurückschreiben von Daten unterstützt. SarePoint liefert neben dem Control auch noch eine Reihe von passenden DataSource Controls mit (SPDataSource, XmlUrlDataSource (REST), SoapDataSource) LVWP Neben dem DFWP existiert auch noch ein ListViewWebPart zur Darstellung der Listen im SharePoint. Dieses Webpart ist heute im SharePoint 2010 großteils durch das XLV abgelöst. XLV / XSLT-LVWP Das XsltListViewWebPart übernimmt im SharePoint 2010 die Standarddarstellung von LIsten. Es hat somit das LVWP weitgehend abgelöst. LFWP Zur Darstellung von Detailseiten im SharePoint wird das ListFormWebPart verwendet. Dieses Control ist sogar in der Lage Teile von XAML zu interpretieren!   Welche werden nun heute im SharePoint 2010 standardmäßig verwendet?   Liste Detailseite CustomList XLV LFWP DocumentLibrary XLV LFWP ExternalList XLV LFWP (via XAML)   Gerade der SharePoint Designer ist aber in seinen Dialogen noch auf das DFWP als Universalhelfer eingestellt. Schaffen Sie sich also einen Überblick welche Funktionen und Möglichkeiten die WebParts haben, um das optimale für Ihr Szenario auswählen zu können.

SharePoint Diagnostics - Tracing

Das Developer-Dashboard ist in SharePoint 2010 für den Einstieg ganz gelungen. Ein Entwickler aus der ASP.NET Welt vermisst jedoch schnell die normale Trace Anzeige. Ergänzt man nur in der Seite die folgende Angabe, wird ein Fehler angezeigt. <%@ Page Trace="true" ... Parser Error Message: The trace attribute on the page directive is not allowed in this page. Um das Feature zu aktivieren, ist es zusätzlich notwendig in der web.config der SharePoint-Seite das AllowPageLevelTrace Attribute auf true zu setzten. <Configuration> <SharePoint> <SafeMode AllowPageLevelTrace="true" ... Nun wird auf der Seite wie gewohnt am Ende die Trace-Anzeige eingeblendet - und man sieht mal wieviel SharePoint eigentlich arbeitet. Es werden extrem viele Angaben ausgegeben. Dies Feature daher am Besten nur zur Diagnose kontrekter Probleme oder zum Lernen anschalten.

Mehrspaltiges CheckBox Field in SharePoint 2010

Eine Kollegin kam mit der Frage zu mir, ob die Checkboxes eines Choice-Feldes im SharePoint 2010 auch nebeneinander liegen können. Nach kurzer Recherche im Code stellte ich mit entsetzen fest, dass dies in der Klasse CheckBoxChoiceField (Methode RenderFieldForInput) hart als Ausgabe einer Html Tabelle implementiert ist. Einen sauberen Weg sich dort mit einer alternativen Ausgabe einzuhängen habe ich leider nicht gefunden. Eine saubere Möglichkeit wäre die Entwicklung eines eigenen Feldes (CustomFieldType). Dies ist jedoch sehr aufwändig und bei bestehenden Listen nicht nutzbar. Eine weitere Möglichkeit ist die Verwendung von JavaScript im Browser. Im SharePoint 2010 kann bei jeder Liste das Aussehen der Dialoge angepasst werden. Durch das Ergänzen eines “HTML Form WebPart” in der Anlegenseite (New Form) kann dort JavaScript Code abgelegt werden. Folgender JQuery-Code erlaubt die Darstellung als Tabelle mit einer im Code definierter Anzahl von Spalten. Lediglich die Anpassung des Feldnamens, sowie der Spaltenanzahl ist erforderlich. <div> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $(function() { var columns = 2; // Anzahl der Spalten var text = "Feldname"; function findPrev(node, times) { return times === 0 ? node : findPrev(node.prev(), --times); } var labelNode = $("td[class='ms-formlabel'] h3[class='ms-standardheader'] nobr:contains('"+ text +"')"); var controlNode = labelNode.parents("td").next(); var list = $("td",$(controlNode).children().first().children()); for(var i = list.length-1; i>0; i--) { var item = $(list[i]); var j = i % columns; var newOne = j > 0 ? findPrev(item.parent(),j) : undefined; if(newOne) item.insertAfter(newOne.children().first()); } }); </script> </div> Wird die Seite nun im Browser angezeigt, stellt das JQuery Script nach dem Laden der Seite die Anzeige auf eine gewünschte Tabelle um. Da man im Anlegendialog das HTML FormWebPart vermutlich nicht sehen will, empfiehlt es sich noch wie bei mir die Darstellung auf Hidden zu setzen.

Call for Papers ASP-konferenz SDS

die ppedv AG veranstaltet am 22.-23. Juni eine Sharepoint Konferenz mit speziellen Fokus auf Developer. Ort ist Burghausen. (Sharepoint Development Special). Es wird 2 Tracks geben. Track 1 adressiert erfahrene ASP.NET Entwickler  ohne Sharepoint Kenntnisse. Track 2 gilt dem Sharepoint Entwickler auf der Such nach Detaillösungen, vertiefende Inhalte, Tipps und Tricks, Connectivity, Team Entwicklung und ähnliches. Session Vorschläge können per Mail an [asp AT ppedv.de] eingereicht werden. Session Dauer ist 60 Minuten. Weitere Infos demnächst auf www.asp-konferenz.de