Jun 9, 2011
3.347 Besuche

DevConnections Konferenz in Karslruhe 2011 – Tag 1

Die DevConnections findet aktuell in Karlsruhe statt. Mal wieder eine gute Möglichkeit, kompetente Sprecher zu sehen und sich mit anderen Anwendern auszutauschen.

Seltsamerweise ist die Konferenz dieses Jahr vergleichsweise schlecht besucht, waren doch andere Konferenzen dieses Jahr ausgefallen, und selbst die Preise wurden zuletzt drastisch gesenkt. Damit die Sprecher nicht vor leeren Stühlen stehen wurden schließlich auch noch die Usergroups eingeladen.

Somit ist die Konferenz relativ gut besucht, die Sprecher sind nach wie vor sehr kompetent. Und wer spät gebucht hat, freut sich über den günstigen Preis. Warum so wenig Leute kommen bei so einem sehr guten Angebot – vielleicht haben sie zu viel Arbeit?

In der Tat ist eine Konferenz immer etwas Besonderers. Man tauscht sich mit vielen ähnlich gesinnten Leuten aus, sowie hört Vorträge von den Besten (oder zumindest sehr Guten) in ihrem Feld.

Ich habe mich bei der Konferenz auf die ASP.NET sowie Visual Studio Tracks konzentriert und einiges Interessantes erfahren.

Keynote Visual Studio 2010

Bei der Keynote zum Thema “Unlocking Possibilities With Visual Studio” gab es neben einger Werbung auch einen sehr interessanten – wenn auch extrem hastig vorgetragenen – Vortrag über die Productivity Power Tools für Visual Studio 2010 (wer kommt auf diese URLs?). Was dort geboten wird ist wirklich vom Feinsten. Optisch sehr gut aussehende Scrollbars mit Code Preview, ein Solution Navigator (analog zum Solution Explorer) mit Suche und weiteren Funktionen, und insbesondere der schreckliche “Add Reference” Dialog wurde um die oh so wichtige Suchfunktion erweitert, die ich bereits zahlreiche Male vermißt hatte. Außerdem ist der Dialog (u. a. auch für COM Objekte) deutlich schneller geworden.

WPF mit Markus Egger

Markus Egger hat ein paar interessante Dinge zum Thema „Business Apps in Half the Time: WPF and Silverlight Styling” erzählt. Hierbei ging es insbesondere darum, wie man effektiv mit WPF arbeiten kann – eben nicht, indem man Windows Forms Paradigmen nachprogrammiert, sondern indem man von den mächtigen Styling-Möglichkeiten Gebrauch macht. Somit läßt sich das Aussehen verschiedener Controls – insbesondere der Listbox, die auch zum Datagrid und zu einer Map mutiert – auf vielfache Weise anpassen. (Die Listbox ist wohl besonders flexibel, mit dem passenden Styling lassen sich hier Details anzeigen, die Daten lassen sich mit Spalten versehen (ähnlich einem Datagrid), in Listen neben- und untereinander, sowie mit ganz verschiedenen Eigenschaften, wie z. B. Icons, Text, Text aus mehreren Feldern, usw.) Für größere Projekte sollte man am besten seine Resourcen in Resource Dictionaries auslagern, sind die Resourcen dann dynamisch gebunden lassen sie sich sogar zur Laufzeit ohne größeren Aufwand austauschen. Leider war die Zeit knapp und das Thema umfangreich – mehr Details kann man auf seinem Blog lesen. Allein.. die Kommentare ignoriert man am besten, und der liebe Markus sollte sich vielleicht einen Spamfilter holen.. noch eine letztes Wort: die korrekte Benutzung von Controls, wie z. B. das Anordnen per Container und Styling im Gegensatz zum Platzieren von Hand, korrektes Data Binding, usw. können die Produktivität deutlich erhöhen, und somit die Entwicklungszeit deutlich senken.

Auch hat Markus Egger aus seiner Praxis heraus darauf hingewiesen, wie oft WPF „falsch&rdquo, verwendet wird, mit den gleichen Ansatzweisen, wie sie z. B. in der Forms-Programmierung verwendet wurden. Dies schiebt er jedoch darauf, daß hier die Dokumentation einfach unzureichend ist, es also insbesondere keine (prominenten) Anleitung zum Thema „WPF für Forms-Entwickler” oder ähnlich gibt.

TDD mit ASP.NET MVC

Ein interessanter Vortrag von Scott Allen zum Thema „Learning TDD with ASP.NET MVC” folgte (für mich). Scott Allen (bzw. hier) zeigte einige Beispiele und Best Practices zum Umgang mit TDD im Umfeld von ASP.NET MVC. Interessant ist hier vor allem, daß man seine Tests am besten als Black Box Tests aufsetzt. Es gibt eine Eingabe, die vorgegeben wird, sowie eine Ausgabe, die überprüft wird. Stellt der Test Annahmen über die interne Arbeitsweise des zu testenden Codes an, so werden die Tests schlechter wartbar. Bei einigen Anwendungen mag es ferner sinnvoll sein, gewisse komplexere Konstrukte zu testen, z. B. eine Verarbeitung, die mehrere Schritte erfordert, hierdurch wird die Möglichkeit, einzelne Schritte und Teilrechnungen zu ersetzen, erleichtert. Auch deutete Scott an, daß gewisse Änderungen im Design durchaus schwierig sein können, weil hier auch die Tests umgeschrieben werden müßten. Dies läßt sich nie ganz vermeiden, läßt sich jedoch durch Tests, die sinnige, nicht-triviale Funktionalitäten testet (z. B. nicht ausschließlich auf unterster Funktions-Ebene) vereinfachen.

Interessant auch: praktisch alle Sprecher verwenden die VS 2010 Ultimate sowie Resharper. Und.. ZoomIt scheint das Tool der Wahl für Bildschirmpräsentationen zu sein. Eine gute Info, denn die in Windows eingebauten Lupen (verschieden schlecht für verschiedene Versionen) taugen für Präsentationen leider gar nicht. ZoomIt hingegen bietet sogar die Möglichkeit, während einer Präsentation auf den Bildschirm zu malen. Sehr nützlich.

Silverlight MVVM

Dan Wahlin erzählte interessante Dinge zum Thema MVVM. Das bedeutet wohl ungefähr View ModelView Model und ist doch recht vergleichbar mit MVC. Der Teufel steckt wohl im Detail und Unterschiede wurde in diesem Vortrag auch kaum angesprochen. Sinnig ist jedenfalls die Trennung der einzelnen Aufgaben in verschiedene Ebenen – zumindest bei jeder Applikation, die jemals größer werden könnte – oder es bereits ist. Hier bedeutet der zunächst zusätzliche Aufwand langfristig eine deutliche Vereinfachung. In seinem Blog gibt es auch einen Artikel zum Thema MVVM.

Beliebte Frameworks, die die Entwicklung mit MVVM (die teilweise doch recht viel repetitive „Glue Logic” erfordert (wenn man alles von Hand schreibt) sind MVVM Light, Caliburn sowie Prism. Auch weißt er auf die Abkürzung “prop” + TAB + TAB hin, siehe auch hier, mit der der (oft gleiche) Code für eine Property automatisch generiert wird.

Automatisierte Tests

Ein Vortrag, der bei mir zunächst gar nicht auf dem Plan stand, dann jedoch äußerst interessant war, kam von Neno Loje (Blog, bei dotnet) zum Thema „Automating Buil, Test & Lab with Visual Studio 2010”.

Hier sprach Neno zunächst an, daß in den meisten Projekten und Firmen nie ein „don” definiert wird. Doch gerade die DoD, die „Definition of Done” ist besonders wichtig. Existiert sie nicht, weiß nie jemand, wann ein Stück Software fertig ist. Es ergibt sich dann folgendes Szenario: Software ist dann fertig, wenn die Zeit abgelaufen ist, die man zur Verfügung hat. Je nachdem, wie viel Zeit zur Verfügung stand hat man nun also entweder ein besonders gut getestetes sowie programmiertes Stück Software, oder eben auch gar nicht. Ist der fertig-Zustand definiert, hat man zumindest immer ein konsistent qualitatives Stück Software, das zwar oft keine Ausschläge der Qualität nach oben erlaubt (Kunde besonders begeistert), aber insbesondere konsistent Ausschläge nach unten verhindert, die schnell den Ruf ruinieren können.

Ferner hat er auf die Unsinnigkeit der Abschätzung des Fertigstellungsgrades von Entwicklern zu aktuell laufenden Projekten hingewiesen. Die Antwort, die er kenne, sei immer: „80 Prozent”. Weniger ist nicht möglich, da sich sonst der Projektmanager fragt, was der Entwickler die letzte Zeit gemacht hat. Mehr geht nicht, weil der Projektmanager sonst in Kürze eine Fertigstellung erwartet. Gar nicht so unrealistisch.

Was ist jedoch wichtig, um ein „fertig” zu definieren? Wichtig ist, daß die Kriterien meßbar sind, nur so lassen sie sich nachhalten. Sie sollten unternehmensweit gelten, um im ganzen Unternehmen ähnliche Ergebnisse sicherzustellen.

Ein interessanter Ansatz, den Nino vorstellt, ist folgender: nicht, was wollen wir für Qualität erreichen?, sondern: was können wir für Qualität erreichen mit automatischen Hilfsmittel? (die dann so gut wie keine Zeit/Mehrarbeit kosten und somit jederzeit eingesetzt werden sollten, als Minimalanforderung), und im Rahmen seines Vortrages hat er sich besonders auf die MS-Tools fokussiert.

Apropos.. der entsprechende Build-Server (TFS?) ist wohl bei jedem MSDN-Abo direkt dabei und darauf damit ohne Mehrkosten verwendet werden. Nicht nur das, auf dem Build-Server darf die gleiche Studio-Edition installiert werden, wie auf dem „Build-Master”. Hat also ein Rechner im Team die Ultimate Edition installiert, darf man auch eben diese Edition auf dem Build Server installieren. Ferner sind direkt Lizenzen für uneingeschränkt viele Build-Server mit dabei.

Was jedoch läßt sich automatisch erreichen?

  • Codeanalyse – ehemals FXCop (jetzt eingebaut)
  • Hier lassen sich über eine seperate Konfigurationsdatei die Optionen einstellen, die gecheckt werden. Das sind standardmäßig alle (viele), und sollte man ein bereits existierendes Projekt auf Codeanalyse umstellen wollen mag man ob der Anzahl der Warnungen direkt am Anfang erschlagen werden.

  • Architekturvalidierung
  • Dies funktioniert via eines Modeling Project, das nur in der Ultimate Edition verfügbar ist. Damit lassen sich Module sowie erlaubt Beziehungen definieren, an die sich die Coder zu halten haben. Komplette Assemblies oder auch Klassen lassen sich den Modulen zuweisen. Der„Praktikantenüberwacher”

  • Coded UI Test
  • Da ich mich auch gerade mit dem Thema UIAutomation beschäftige war ich (positiv) überrascht, daß dieses Feature in den größeren Editionen (die Tests unterstützen) direkt dabei ist (evtl. auch nur Ultimate?). Damit lassen sich kurze Sequenzen aufzeichnen, die sich anschließend im Code zu bestimmten Abläufen verbinden lassen. Sehr nützlich, sehr einfach, direkt am Start (wenn man die knapp 10k€ kostende Ultimate denn sein Eigen nennt oder auch die für 30 bzw. 90 (nach Registrierung) laufende Testversion installiert hat).

Wie läßt sich – abschließend zusammengefasst – die Qualität in einem SW-Projekt erhöhen?

  • Automtische Builds
  • Continuous Integration (evtl. auch Gated Checkins)
  • Automatische Tests
  • Automatische Deployments (Lab Management, recht komplex (>3 Tage) im korrekten Aufsetzen)

Die Ultimate seinem Management verkaufe

In diesen Vortrag hatte ich mich verirrt. Wie der Titel schon andeutet, wird hier kräftig Werbung gemacht. Ich hatte jedoch auch ein paar nützliche Informationen über die Features dieser Edition erwartet. Es war jedoch leider ein Marketing-Vortrag von einem Marketer für Marketer. Im Publikum saßen jedoch nur Entwickler (zumindest ich war so einer). Daher ging ich zu

XNA

Tom Wendel gab noch eine ganz kurze, interessante Einführung in das Thema XNA. Wer sich schon einmal mit XNA beschäftigt hat weiß, daß natürlich viel mehr als eine Stunde dazu gehört, müssen doch so viele völlig neue Konzepte gelernt werden, sollte man sich mit der Spieleprogrammierung beschäftigen wollen. In Anbetracht dieser Tatsache gab es trotzdem viele interessante Informationen und eine Demo, wie man (sehr einfache) Spiele z. B. für das Windows Phone entwickeln kann, die den (Multi-)Touchscreen sowie Bewegungssensor unterstützt. (Windows Phones gibt es übrigens bereits für ~150€ neu bei Ebay – ganz erfolgreich scheint die Einführung wohl nicht zu sein, und Microsoft tut wohl alles, den Marktanteil zu erhöhen. So lange das Geld durch Windows und Office reinkommt kann sich das MS wohl auch völlig ohne Probleme erlauben und sich den Marktanteil einfach kaufen – vergleichbar ausgestattete Android-Telefone kosten nämlich grob das Doppelte.)

Was für mich hier besonders interessant war, war die Tatsache, welches 3d-Dateiformat man am besten benutzt, wenn man mit XNA arbeiten möchte. So wird das hauseigene .x Format nur von wenigen 3d-Programmen unterstützt. Statt dessen wird jedoch das .fbx Format ebenfalls von XNA sowie von den meisten 3d-Programmen unterstützt. Dies ist hier also das Mittel der Wahl für alle, die mal schnell ein Modell erstellen oder konvertieren wollen, und keinen Export nach .x haben.

Fazit

Ich war nicht nur von dem Informationsinhalt der 10-15 parallel laufenden Tracks (von denen ich jeweils nur einen besuchen konnte) begeistert sowie von der fachlichen Kompetenz der Redner. Besonders positiv überrascht hat mich die Offenheit der Redener – viele luden die Teilnehmer ein, bei sie bei technischen Problemen zu kontaktieren und teilten gerne Geschichten aus ihrem Alltag. Eine bislang rundum gelungene Konferenz.

(Da stört auch kaum die überschaubare Marketingmaschine, die mitrollt, wie z. B. die Verlosung einer Kreuzfahrt, wenn man sich an allen Sponsoren-Ständen einen Stempel geholt hat, damit die armen Sponsoren nicht jeden Tag nur so rumsitzen. Ob dadurch die Qualität der Anfrage erhöht wird steht natürlich auf einem anderen Blatt. Und.. wirklich groß ist der Andrang an den Ständen trotzdem nicht. Vielleicht auch, weil kaum Entscheider und primär Anwender bei der Konferenz sind, die ohnehin die neue Software/Dienstleitungen/… nicht anfordern könnten?)

Die nächsten Tage sehe ich mich jetzt leider gezwungen, mich durch einige besonders interessante Blogeinträge/technische Artikel der Sprecher zu wühlen, zu groß ist mein Interesse geworden.

Danksagung

Ohne Thomas Stensitzki, der mit großem Einsatz die Oecher Coder organisiert, wäre ich nicht zur Konferenz gekommen. Auf diesem Wege noch einmal vielen Dank!

1 Kommentar

Einen Kommentar schreiben