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 erle­ben.

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 ver­füg­bar).
  • 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 unkom­pli­ziert.
  • 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 wart­bar.

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ön­nen:

  • 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 auf­zu­set­zen.

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 ver­bes­sern.
  • Sind Softwareentwickler Handwerker?
  • Ist Softwareentwicklung krea­tiv?
  • 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 stel­len!

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:

blank

Related Posts

1 Kommentar

Danke für die tolle Zusammenfassung.

Comments are closed.

Pin It on Pinterest