Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Neues aus der .Net und SharePoint-Welt von der Basta! Spring (3. Tag)

Den Auftakt zum letz­ten Tag auf der Basta! macht für mich Custom Field Types – Entwicklung und Einsatzmöglichkeiten mit Oliver Wirkus. Die Entwicklung eines Custom Field Type für SharePoint ist eher unspek­ta­ku­lär und wer das schon ein­mal gemacht hat, wird dazu hier nicht viel Neues erfah­ren. Einen Tipp möchte ich noch wei­ter­ge­ben: Für die Festlegung von Konfigurationseinstellungen bie­ten sich die Custom Properties in der fldtype_xxx.xml an – aller­dings sollte man beden­ken, dass diese bei einem Update immer wie­der "über­bü­gelt" wird (den­noch sind die Daten dort alle­mal bes­ser auf­ge­ho­ben als "hard coded"). Folgende "Unschönheiten" bzgl. Custom Field Types sollte man bei deren Verwendung bedenken:

  • Office (bis incl. 2007) unter­stützt keine Custom Field Types -> diese wer­den beim Speichern in einer DocLib z.B. aus Word her­aus nicht berücksichtigt.
  • Custom Field Types wer­den beim Export einer Liste nach Excel nicht mit übernommen.
  • Custom Field Types wer­den in der Datenblattansicht nicht angezeigt.

Zum Schluss noch ein paar Anwendungsbeispiele für Custom Field Types:

  • Implementierung von Validierungsregeln (Anmerkung: geht mit SharePoint 2010 out-of-the-box)
  • Implementierung von Field Level Permissions
  • Anbindung exter­ner Sytems (z.B. Stammdaten für Lookups aus SAP) – Anmerkung: die Anbindung exter­ner Listen über die BDS in SharePoint 2010 dürfte auch hier in etli­chen Fällen mit Bordmitteln Abhilfe schaffen
  • Lookups auf Listen in einer ande­ren SharePoint Website
  • Lookups mit bes­se­rer GUI als im SharePoint-Standard (z.B. für sehr viele Einträge)

SharePoint Deluxe mit Silverlight Dynamic Data mit Stephan Kitzler-Walli ist zur Abwechslung mal eine etwas anspruchs­vol­lere Session zu SharePoint-Entwicklung. Es geht um die Erstellung eines dyna­mi­schen Listeninhaltseditors (Webpart) auf der Basis von Silverlight. Die Idee ist ebenso ein­fach wie bestechend: (gene­ri­scher) C#-Code sorgt für das Einlesen der Daten, die interne Umwandlung der SharePoint-Datentypen in .Net-Datentypen (wel­che von Silverlight ver­ar­bei­tet wer­den kön­nen) und das Speichern des ListItems. Das Rendern wird dann über XAML gesteu­ert – spe­zi­fisch für die jewei­lige Liste bzw. den Content Type, auf dem der Listeneintrag basiert. Es gibt jede Menge Code und das Ergebnis kann sich bli­cken lassen.

Nun die letzte Keynote die­ser Konferenz: Why does func­tio­nal code mat­ter? mit Ted Neward, der sich darum bemüht, die funk­tio­nale Programmierung aus der Ecke für aka­de­mi­sche Sonderfälle her­aus­zu­brin­gen. Der Einstieg gelingt pro­vo­zie­rend mit "In the begin­ning god crea­ted objects…" – und er sah, dass es gut war, möchte man ergän­zen. Warum um alles in der Welt sollte man sich davon jetzt wie­der abwen­den? Man soll gar nicht. Die Botschaft der Keynote ist: Funktionale Programmierung wird die objekt­ori­en­tierte nicht ver­drän­gen, son­dern ergän­zen. Sie ist mit objekt­ori­en­tier­ten Konzepten kom­bi­niert beson­ders mäch­tig und sollte ein­fach als "zusätz­li­ches Tool in der Toolbox" gese­hen werden.

Datengetriebene Applikationen mit NHibernate und Spring.NET mit Manfred Steyer gibt eine gute Einführung in den OpenSource‑O/R‑Mapper, der als starke Alternative zum Entity Framework gilt. NHibernate zeich­net sich durch fol­gende Features aus:

  • Beziehungen aller mög­li­cher Kardinalitäten (1:n, n:1, 1:1, n:m)
  • Wahlweise Lazy oder Eager Loading
  • viele ver­schie­dene Fetch-Strategien
  • Implementierung von Kaskaden (z.B. Löschweiterleitung)
  • Implementierung von Vererbung mit ver­schie­de­nen Strategien
  • Concurrency (wahl­weise Lockmechanismen aus der zugrunde lie­gen­den Datenbank oder eigene)

Natürlich gibt es auch Codebeispiele "am leben­den Objekt". Fazit: Nhibernate ist sehr mäch­tig, es geht fast alles, was in der Datenbank geht…

Das Applikationsframework Spring.NET unter­stützt dar­über hin­aus bei immer wie­der anfal­len­den Aufgaben. Insbesondere sei hier das Testing datenbank-lastiger Anwendungen auf­ge­führt. Zusammen mit NHibernate kann sich Spring.Net zu vol­ler Größe ent­fal­ten, um z.B. das Transaktionsmanagement zu über­neh­men oder das Testen noch ein­fa­cher zu gestal­ten. Die Vorteile der bei­den Frameworks lie­gen auf der Hand. Dennoch sollte man auch die Nachteile nicht außer Acht las­sen, z.B. die rela­tiv hohe Einstiegshürde, die kom­plexe Konfiguration und das teil­weise etwas schwie­rige Versionsmanagement (ins­be­son­dere zwi­schen Spring.Net und NHibernate).

Last but not least gibt es mit 10 span­nende Sachen, die man mit der SQL-Server-CLR-Integration machen kann mit Thorsten Kansy ein Angebot an Anwendungsbeispielen für CLR Funktionen – natür­lich mit Codebeispielen. Einsatzmöglichkeiten sind z.B.

  • Validierungen (E‑Mail-Adressen, ISBN, …) mit­tels regu­lä­rer Ausdrücke
  • Datumsformatierung
  • Konkatenation von Zeichenketten
  • Verschlüsselung
  • Dublettensuche (hier mit Damerau-Levenshtein-Distanz)
  • E‑Mail-Versand mit SMTP
  • Abfragen von Währungskursen mit­tels Webservice

Und so geht sie also dem Ende ent­ge­gen, die BASTA! Spring 2010. Nach 3 Tagen Konferenz fühlt der Kopf sich unge­fähr genauso voll an wie der Magen, nun gilt es, das Gehörte wei­ter­zu­tra­gen und, wo mög­lich, in der täg­li­chen Arbeit anzuwenden…

Related Posts

Pin It on Pinterest