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

Bulletin vom .NET Open Space 2011 in Leipzig

Heute hatte ich mich (zumin­dest für einen Sonnabend) in aller Herrgottsfrühe auf den Weg nach Leipzig gemacht, um beim .NET Open Space Programmiersprachen- und orga­nisia­ti­ons­über­grei­fend Lösungskonzepte aus­zu­tau­schen, Neues ken­nen­zu­ler­nen und über Bekanntes zu dis­ku­tie­ren – kurz: mit vie­len Gleichgesinnten einen span­nen­den Tag (fast) ohne orga­ni­sa­to­ri­sche Schranken rund um das Thema .NET zu erleben.

Der Beginn gestal­tete sich erwar­tungs­ge­mäß ent­spannt mit Kaffee und Muffins, da etli­che OpenSpace-Neulinge mit von der Party waren, wur­den noch ein­mal kurz die Prinzipien eines Open Space erläu­tert und dann ging es auch schon ans Eingemachte: die Themensammlung. Am Ende war ein brei­tes Themenspektrum ent­stan­den, von wel­chem im Laufe des Tages immer noch mal wie­der ein­zelne Themen in andere Räume oder Zeitslots wan­der­ten, so dass man gut bera­ten war, seine „gespei­cher­ten“ Infos gele­gent­lich zu aktua­li­sie­ren. Eben Open Space. 

Gleich als erste Session gab es mit Entity Framework ein Thema, das mich auch per­sön­lich tan­gierte, da wir gerade (zum ers­ten Mal) Entity Framework in einem grö­ße­ren Projekt mit ModelFirst-Ansatz ein­ge­setzt (und dabei durch­aus eini­ges an Lehrgeld gezahlt) hat­ten. In der Diskussion stellte sich her­aus, dass Themen, die uns bei unse­rem Projekt Kopfzerbrechen berei­tet hat­ten, durch­aus auch in der Community keine Unbekannten sind:

  • Die beim ModelFirst-Ansatz aus dem Modell gene­rierte Datenbankstruktur ist – gelinde gesagt – gewöh­nungs­be­dürf­tig. Hier ist die Frage, wie sehr man sich dadurch gestört fühlt – schließ­lich hat man ja bewusst auf den DatabaseFirst-Ansatz ver­zich­tet. ERM-Freaks oder gar Verfechter der ers­ten Normalstufe könn­ten aber durch­aus ihre Probleme damit haben. Was jeden­falls mög­lich ist: eigene Konventionen kön­nen dem Framework mit­ge­ge­ben wer­den – Interessenten sei Pluggable Conventions ans Herz gelegt (aller­dings erst ab EF 4.1 verfügbar).
  • Das Datenbank-Deployment arbei­tet stan­dard­mä­ßig mit DROP und CREATE TABLE – unschön, wenn man bereits Daten hat und nur Strukturänderungen deployen möchte.
  • Die Verwendung von Views und Prozeduren mög­lich, aber nicht ganz unkompliziert.
  • Verwendet man die OutOfTheBox-Generierung des ObjectContexts, so ent­ste­hen Abhängigkeiten des Codes vom Entity Framework, ein­zelne Queries sind in der gesam­ten Business Logik ver­teilt, u.U. sogar red­un­dant und die ent­ste­hende Anwendungsarchitektur ist nicht beson­ders gut test- und wartbar.

Eine Empfehlung für alle Interessierten ist das White Paper von Scott Allen Testability and Entity Framework 4.0.

Nach dem reich­hal­ti­gen Mittagbuffet wan­derte ich zu WTF is a Type Provider?, da ich diese Frage gern beant­wor­tet haben wollte.

Hier die Kurzfassung: Wir ken­nen dyna­mi­sche und sta­tisch typi­sierte Sprachen. Während sta­ti­sche Typisierung in der Regel ein bes­se­res Tooling mit sich bringt (man denke nur an Intellisense!), waren dyna­mi­sche Ansätze oder Codegeneratoren bis­her die ein­zige Lösung für den Umgang mit extrem gro­ßen Datenquellen („groß“ im Sinne sehr vie­ler Entitäten).
Mit Hilfe von Type Providern ist es nun z.B. mög­lich, sta­tisch typi­siert auf OData und WebServices zuzu­grei­fen, ohne Codegeneratoren nut­zen zu müs­sen. Abschließend hier noch ein Verweis zum Weiterlesen.

Mit sei­nem Thema REST not CRUD hatte Sergej Shishkin eine ganze Menge Interessenten her­bei­gelockt. Diese hör­ten als Einstieg eine sehr emp­feh­lens­werte Anekdote über Roy Fielding, den Erfinder von REST. Danach erläu­terte Sergej das Richardson Maturity Model for REST, nach wel­chem in der Verwendung von REST 3 Stufen erreicht wer­den können:

  • Level 0: none
  • Level 1: URI (resour­ces)
  • Level 2: HTTP verbs
  • Level 3:Hypermedia Controls

Fazit: „Alles dreht sich um Ressourcen, Repräsentationen, Hypermedia“. Ressourcenmodell ist nicht das­selbe wie Datenmodell. REST ist mehr als CRUD!

Über die sich anschlie­ßende Session zu PowerShell gibt es nicht allzu viel zu berich­ten – fol­gen­der in eben jener Session gefal­lene Ausspruch bringt es viel­leicht ganz tref­fend auf den Punkt: “Alles, was Du mit .NET Framework machen kannst, kannst Du mit PowerShell schmut­zig von der Konsole run­ter­rot­zen”. Für Entwickler wird PowerShell ins­be­son­dere dann inter­es­sant, wenn es z.B. um das Projektsetup (Einrichten von VMs, Erstellen von Datenbanken etc.) bzw. um das Deployment geht. Ein inter­es­san­ter Ansatz war, sich mit­tels PowerShell einen NuGet Server selbst aufzusetzen.

Die für mich letzte Session des dies­jäh­ri­gen .NET Open Space war Software Craftsmanship – wie­der von Sergej Shishkin ins Leben geru­fen. Craftsmanship heißt zu Deutsch „Handwerkskunst“, und schon vor­her konnte bei die­sem Thema ver­mu­tet wer­den, dass es eine inter­es­sante Diskussion geben würde. Sergej erzählte in sei­nen ein­lei­ten­den Worten von einem Software Craftsmanship Camp, in dem er gewe­sen war und dass ihn sehr begeis­tert, aber auch nach­denk­lich gestimmt hatte. Begeistert von der krea­ti­ven Atmosphäre, in der mit hohem Anspruch völ­lig Technologie- und Programmiersprachen-übergreifend gecoded wurde und nach­denk­lich, weil eben viel­leicht nicht jeder Entwickler von die­ser Bewegung und Anspruch an die eigene Software und die Arbeitsweise zur Erstellung die­ser erfüllt ist.

In der nach­fol­gen­den Diskussion ging es (grob zusam­men­ge­fasst) um fol­gende Fragen:

  • Softwareentwickler soll­ten ihre Fähigkeiten stän­dig und aus eige­nem Antrieb verbessern.
  • Sind Softwareentwickler Handwerker?
  • Ist Softwareentwicklung kreativ?
  • Braucht/verträgt Softwareentwicklung Normierung?
  • Ein guter Entwickler muss immer auch über den Tellerrand schauen (auch andere Technologien, Programmiersprachen)!
  • Das Entscheidende ist das Bewusstsein und der Anspruch, den wir an uns selbst stellen!

Ein gutes Mittel auf dem Weg hin zu Software Craftsmanship sind Coding Dojos und Code Retreats. CCD ist eben­falls ein Teil von Software Craftsmanship.

Mein per­sön­li­ches Resümee: Ein vom Wochenende "abge­spar­ter" Samstag, der meine Erwartungen erfüllte. Oder, um mit Open Space zu reden:

Related Posts

1 Kommentar

Danke für die tolle Zusammenfassung.

Comments are closed.

Pin It on Pinterest