2009
Die Themen im Januar:
- Test First Development - BDD Style (Stefan Lieser)
Die testgetriebene Entwicklung von Software zielt darauf ab, vor der eigentlichen Implementierung durch automatisierte Tests zu spezifizieren, was die Software leisten soll. Betrachtet man diese Tests als Spezifikationen der zu entwickelnden Funktionalität, dann wirkt die Reihenfolge, erst Test - dann Implementierung - gar nicht mehr so unnatürlich, wie es zunächst den Anschein hat.
Die Art und Weise wie Tests geschrieben werden hat sich in letzter Zeit weiter entwickelt. Ausgangspunkt war dabei die Überlegung, die Tests mehr auf das gewünschte Verhalten der Software auszurichten (BDD - behavior driven development) als im nachhinein Funktionen zu überprüfen.
Im Vortrag erläutert Stefan Lieser wie man im BDD Stil automatisierte Tests erstellen kann und dabei das gewünschte Verhalten der Software spezifiziert. Ein weiterer Aspekt ist das Bemühen die Mechanik von Tests so gut wie möglich zu verbergen um Tests lesbar und verständlich zu machen und die Einstiegshürden zu reduzieren.
- Obfuscation mit {smartassembly} (Jan Welker)
Dieser Kurzvortrag stellt das Tool {smartassembly} der Firma Cachupa vor, mit dessen Hilfe .NET Code vor Dekompilierung geschützt werden kann. (Der urprünglich geplante Vortragsteil von Markus Eggers zu Xenocode Postbuild muss leider entfallen)
Die Themen im Februar:
- WPF FlowDocuments (Jörg Kessenich)
Microsoft hat mit der Windows Presentation Foundation (WPF) das neue XML-basierte Dokumentenformat "FlowDocument" eingeführt. Design Ziele waren eine wesentlich verbesserte Lesbarkeit und Anzeige von Dokumenten auf einem Bildschirm. Daher sind Flow Documents nicht auf ein vordefiniertes Layout festgelegt, sondern passen Inhalte dynamisch an und bauen sie neu auf. Dies geschieht auf der Basis von Laufzeitvariablen wie z. B. Fenstergröße, Geräteauflösung und optionalen Benutzereinstellungen. WPF bietet 'out of the box' verschiedene sehr leistungsfähige Werkzeuge an, um FlowDocument Texte professionell auf dem Bildschirm anzuzeigen. Es ist das Format um Zeitungen übers Netz zu verbreiten. Die New York Times und andere machen es seit über 2 Jahren vor.
Der Vortrag wird FlowDocuments vorstellen und unterschiedliche Aspekte beleuchten wie Formatieren von Text, Anzeigen, Erstellen und Drucken von FlowDocuemnts. Er wird außerdem spannende Themen wie Adorner, Databinding in FlowDocuments und mögliche Verwendungen diskutieren.
- QuickTip: Einfacher Umgang mit UI- und Worker-Threads (Ralf Hoffmann)
Bei der UI Programmierung gilt die Faustregel "Blockiere niemals den UI Thread". Andererseits gibt es Aktionen, die länger dauern, z.B. Serveranfragen. Und im Anschluß an diese Aktionen muss oft etwas im UI geändert werden. Der QuickTip stellt eine Möglichkeit vor, die es erlaubt ohne getrennte Worker- und Callbackmethoden innerhalb einer Methode beliebig zwischen UI und Worker Thread zu wechseln und dadurch festzulegen, auf welchem Thread der folgende Codeteil ausgeführt werden soll. Es wird praktisch ein synchroner Ablauf programmiert, aber die Ausführung geschieht zum Teil asynchron.
- Logging mit log4net (Thomas Mentzel)
Was passiert, wenn ein Fehler erst beim Kunden auftritt? Wie bekommt der Entwickler mehr Informationen als "Die Applikation ist abgestürzt, ich kann nicht mehr sagen, was ich gemacht habe"? Wie kann ein Entwickler während der Entwicklung Ausgaben zur Fehleranalyse einbinden, ohne dass er diese vor der Auslieferung der Applikation wieder mühsam entfernen muss?
Dieser Vortrag zeigt, wie Logging die Entwickler bei der Softwareentwicklung unterstützen kann und zusätzlich die Fehleranalyse beim Kunden vereinfacht. Log4net stellt hierzu ein leicht zu integrierendes Framework mit höchst flexibler Konfiguration und Erweiterbarkeit zur Verfügung.
Die Themen im März:
- Praktischer Einsatz von ANTLR (Gerhard Schlemm)
ANTLR, ein mächtiges Werkzeug für die Arbeit mit formalen Sprachen, mag auf den ersten Blick ein wenig abschreckend erscheinen. Vielleicht fragt sich sogar der eine oder andere, wofür man so etwas brauchen kann. Jedoch lässt sich auch ohne großes Vorwissen mit Hilfe von ANTLR sehr schnell effizienter C#-Code generieren, der etwa eine eigene Domain Specific Language (DSL) verarbeitet. Der Vortrag stellt ohne viel trockene Theorie praktische Einsatzgebiete und ein Beispiel aus dem "echten Leben" vor.
- QuickTip: Command Line Parser Library (Marvin Killing)
Kurzvorstellung einer Bibliothek zum Verarbeiten von Befehlszeilenparametern
- Ribbon Control - Theorie und Praxis (Benjamin Gopp)
Wenn ein Programm von Version zu Version an Funktionalität zulegt, stellt sich irgendwann die Frage, wo die Befehle in Menüs und Toolbars untergebracht werden sollen, ohne sie unauffindbar in tiefen Menühierarchien verschwinden zu lassen. Das Microsoft Office Team hatte z.B. konkret das Problem, dass vermehrt Features für die nächste Version gewünscht wurden, die bereits längst vorhanden waren. Die Antwort darauf war die Einführung des Ribbon Controls mit Office 2007 als Ablösung von Menüs und Toolbars.
Benjamin Gopp stellt in seinem Vortrag die Grundbegriffe vor und geht auf lizenztechnische Aspekte und Guidelines für die Verwendung in eigenen Programmen ein. Darüber hinaus gibt er einen Überblick über verfügbare Ribbon Controls für Windows Forms und WPF.
Die Themen beim April-Treffen:
- Das Observer Pattern (Thomas Mentzel)
Das Observer Pattern ist ein "Gang of Four" Entwurfmuster für eine Nachrichtenverteilung innerhalb einer Applikation an eine beliebige Anzahl an Empfängern.
Dieser Kurzvortrag stellt verschiedene Implementierungen vor und zeigt die jeweiligen Vor- und Nachteile. Am Ende steht eine Observer-Komponente für Windows Forms Applikationen.
- QuickTip: MSBuild für Ungeduldige (Gerhard Schlemm)
Wenn man in C#-Projekten an die Grenzen des PreBuild-Batch stößt und nicht tiefer in die MSBuild-Entwicklung eintauchen möchte, so gibt es einen dritten Weg: Mit wenig Aufwand können in der Projektdatei eigene Verarbeitungsschritte deklarativ formuliert und integriert werden. Konkret demonstriert wird dies am Beispiel des Java-Kommandozeilentools ANTLR, welches C#-Dateien generiert.
- Fit für Akzeptanztests? (Stefan Lieser)
Ein Schwerpunkt der Agilen Softwareentwicklung ist die Arbeit in kurzen Iterationen im Bereich weniger Wochen. Ferner ist der Kunde ständig in den Prozess eingebunden um sicherzustellen, dass in der zur Verfügung stehenden Zeit jeweils genau die Funktionalität realisiert wird, die dem Kunden den größten Nutzen
bringt. Dabei stellen Akzeptanzkriterien, die zu Beginn der Iterationen definiert werden, sicher dass das Team weiß was zu implementieren ist und wann eine Aufgabe fertiggestellt ist. In seinem Vortrag stellt Stefan Lieser diese Vorgehensweise vor und zeigt exemplarisch, wie automatisierte Akzeptanztests mit Hilfe von FIT/Fitnesse realisiert werden können.
Die .NET User Groups Bonn und Köln veranstalten am 15. Mai 2009 in Köln in den Räumen der neuen Microsoft-Niederlassung die dotnet Cologne 2009, eine gemeinsame Community-Konferenz zu den Themen Windows Presentation Foundation (WPF) und Silverlight.
Zum Selbstkostenpreis von nur 15 Euro wird den Teilnehmern ein ganzer Tag mit 12 Vorträgen von z.T. bekannten Sprechern auf zwei Tracks geboten, Getränke und Verpflegung sind im Preis enthalten.
Weitere Informationen hier.
Im Juni haben wir Torsten Weber von der .NET User Group Leipzig zu Gast, der über folgende Themen sprechen wird:
- Presentation Zen
Warnung: Dieser Vortrag ist eine Rebellion. Lernen Sie, gewohnte Sichtweisen und Verselbständigung zu durchbrechen und herausragend zu sein. Kompromisslos wird mit schlechter Alltäglichkeit aufgeräumt und Ihnen Ihr blinder Fleck aufgezeigt. Genießen Sie eine Stunde lang einen Grundton edler Einfachheit als Tugend zur Präsentationen eines beliebigen Themas.
- 21 Schritte und 7 gute Entwurfsmuster zum Mobile Computing
Genießen Sie einen rasanten Überblick, wie Sie mit Microsofts Plattformen Lösungen für Mobile Computing entwerfen können. Die gängigen SDKs, "versteckte" Werkzeuge, gute Zusätze von Drittanbietern - in 21 Schritten können Sie Ihr erstes mobiles Projekt in sieben unterschiedlichen Varianten einer Architektur starten. Ergänzt mit Empfehlungen, was Sie nicht machen und woran Sie denken sollten.
Geplante Themen:
- REST mit WCF, REST Starter Kit Patrick Schidler
"Die Architektur des Internets" - so knapp wird REST beschrieben wenn es, wie in letzter Zeit immer häufiger, auf der SOA-Bildfläche erscheint. Doch wenn Entwickler an SOA denken, dann denken immer noch einige nur an Webservices. Kein Wunder, denn mit der WCF ist es auch sehr einfach geworden, Methoden-ortientierte Services zu erstellen. Dass es fast genauso einfach geht, REST-basierte Services damit zu erstellen und welche Rolle das REST Starter Kit dabei spielt, das soll dieser Vortrag zeigen. Dazu gibt es natürlich eine Einführung in die REST-Ideologie und einen Rundumschlag, der mit einigen Vorurteilen aufräumen soll.
- Microsoft Tag Patrick Schidler
Wer kennt sie nicht? Hässliche, schwarz/weiße Barcodes die inzwischen jegliche, noch so hübsch designte Produktverpackung entstellen. Da müsste man doch was machen können, haben sich da auch die Entwickler von Microsoft gedacht. Raus gekommen ist unter anderem ein Webservice der es elaubt, farbige Barcodes zu generieren, die sogar in bestehende Bilder integriert werden können. Passende Reader-Software für Windows- und Symbian-basierte Geräte existiert auch schon, so dass bald vielleicht schon der Link zum XING-Profil im Portraitfoto versteckt ist. Dieser Vortrag gibt einen kurzen Überblick über die (bunte) Welt von Microsoft Tag.
Im Oktober haben wir Steffen Forkmann zu Gast, der über die Sprache F# sprechen wird:
Funktionale Programmiersprachen nehmen seit geraumer Zeit einen hohen Stellenwert in der Wissenschaft ein. Demnächst könnte es eine dieser Sprachen sogar aus dem Forschungsbereich direkt in den Mainstream schaffen. Visual Studio 2010 wird neben C# und VB.NET die funktionale Programmiersprache F# als dritte Hauptsprache anbieten. Der Vortrag soll einen Einblick in funktionale Konzepte und deren Umsetzung in F# geben. Insbesondere soll auf "Funktionen höherer Ordnung", Typinferenz, Currying, Pattern Matching, "Unveränderlichkeit" und parallele Programmierung eingegangen werden.
Harry Pierson, Program Manager bei Microsoft im IronPython Team in Redmond, wird einen Vortrag über dynamische Sprachen in .NET (IronPython und IronRuby) halten:
As you may know, Microsoft is developing IronPython and IronRuby, .NET implementations of the popular open-source programming languages Python and Ruby. While it's clear that Microsoft wants to attract existing Python and Ruby developers to .NET, the role of IronPython and IronRuby for existing .NET developers is less clear. What value is there for a .NET developer in learning IronPython? What are the tradeoffs between IronRuby and a more traditional .NET language like Microsoft Visual C# or Visual Basic? Harry Pierson, new PM for IronPython, discusses where dynamic languages fit in the.NET developer's toolbox.
Die Themen im November:
- M und die "Oslo" Plattform Benjamin Gopp
Es ist kein Geheimnis, dass komplexe Software schwer zu entwickeln und zu warten ist. Ein Teil der Komplexität besteht darin, Konzepte der Anwendungsdomäne in einer "general-purpose" Programmiersprache zu formulieren. Daher gibt es schon lange die Idee, für Anwendungsdomänen eigene Sprachen zu entwickeln. "Oslo" ermöglicht es, solche domänen-spezifische Sprachen zu definieren und erscheint dabei ".NET-freundlicher", als es vielleicht Tools wie Lexx, Yacc oder ANTLR tun. Benjamin Gopp erläutert die Grundkonzepte hinter Oslo und zeigt, wie man mit den Oslo Tools eine Grammatik für die Kommandozeile und eine Formelsprache erstellen kann.
- Kurzvortrag: Co- und Contravarianz in C# Lars Corneliussen
Eines der meistbegrüßten Features aus .NET 4 und gleichzeitig eines der am wenigsten verstandenen. Leicht dahergesagt, dass Argumente von Methoden und Delegates schon immer contravariant waren. Und dass in C# 4.0 jetzt noch sichere Co- und Contravarianz für generische Typparameter hinzukommt. Und weil man das mit Co- und Contra so schnell verwechselt heißt es jetzt einfach "out" und "in". Oder war das andersrum? Nicht ganz sicher? Nach dem Vortrag weißt Du es!
- Kurzvortrag: Umgang mit .NET Assemblies Thomas van Veen
Häufig werden die ach' so sorgfältig und nach allen Regeln der Kunst entwickelten .Net Assemblies mit Hilfe einer einfachen Installationsroutine, sei es XCopy Deployment oder etwas fortgeschrittener mit Hilfe eines MSI-Paketes, auf das Zielsystem übertragen und dort ihrem Schicksal überlassen. Der Vortrag zeigt wie man .Net Anwendungen mit Hilfe der Bordmittel des .Net Frameworks richtig installiert und sogar deutlich beschleunigt.