Ka f f e e Kl a t s c h Das Magazin rund um Software-Entwicklung

ISSN 1865-682X

08/2013Jahrgang 6

KaffeeKlatsch Das Magazin rund um Software-Entwicklung

Sie können die elektronische Form des KaffeeKlatschs monatlich, kostenlos und unverbindlich durch eine E-Mail an

[email protected]

abonnieren.

Ihre E-Mail-Adresse wird ausschließlich für den Versand des KaffeeKlatschs verwendet. Editorial Unvereinbar!?

ls Veranstalter des können sich die Fahrer also unabhängig von ihrer Au- tomarke unterhalten und Erfahrung austauschen. Dabei Herbstcampus war uns versammeln sie sich sogar unter offenen Dächern wie klar, dass wir .NET und dem ADAC oder dem AvD. Java unter einen Hut Bei all dem darf man natürlich nicht vergessen: Kon- kurrenz belebt das Geschäft. Ohne die hätte nämlich der bringen wollen. Otto-Motor keinen Diesel-Motor, und der Elektromo- Beide Technologien tor wäre niemals in Erwägung gezogen worden. Gäbe es sind sich so ähn- .NET nicht, dann würden die Lambdas in Java womög- Alich, dass sich zwangsläufig Synergien lich noch länger auf sich warten lassen. Übrigens spielt es dabei keine Rolle, ob die Konkurrenz fremd oder aus ergeben müssen. Und die Hoffnung war, eigenem Hause ist. So hat Microsoft einige Program- dass sich auf diese Weise beide Welten miersprachen gefördert, deren Ergebnisse schließlich in mit ein bisschen mehr Wohlwollen C# Einzug gefunden haben. Auch bei uns gibt es also Verbindendes, über das es gegenüberstehen. Aber irgendwie sich durchaus auszutauschen lohnt: Software-Entwick- kommen sich die beiden Welten nicht lung und Prozesse; Versionierung, Konfiguration und wirklich näher. Deployment; Test und Qualitätssicherung etc. Das alles reicht aber nicht aus, um sich der anderen Seite beliebig Vielleicht ist das auch zu viel verlangt. Schließlich gibt nah zu öffnen. Das Wohlwollen reicht scheinbar nur für es ja auch unterschiedliche Automarken. Und wenn man einen „Urlaub“ etwa auf dem Herbstcampus aus. stolze Autobesitzer miteinander reden hört, dann stellt Im Grunde ist es wie mit anderen Ländern: Die man durchaus Parallelen zu den Software-Entwicklern meisten Länder unterscheiden sich nicht wirklich von- fest. Die eigene Marke überzeugt eben mehr als die an- einander. Gegessen, geliebt und geschlafen wird überall. dere, und die Technik ist besser – ganz zu schweigen von Und trotzdem wollen die meisten nicht von ihrer Heimat dem signifikant besseren Aussehen. Dementsprechend weg. Sei es das Wetter, die Landschaft, das Essen oder wird die Konkurrenz bei den Extremisten diskreditiert, das Rechtssystem: Am liebsten ist es den meisten doch verhöhnt und möglichst lächerlich gemacht. dort, wo sie aufgewachsen sind. Für einen Urlaub mag Die Autohersteller machen es dann wie die Tech- man dann sein gewohntes Umfeld aufgeben, wohl wis- nologielieferanten und zeigen auch bei ihren Begriffen send, dass man bald wieder bei sich Zuhause ist. vergleichbares Verhalten. Heißt es etwa bei dem einen Nur wenn sich die Ziele oder Gegebenheiten ändern Hersteller „Kombi“, so heißt es beim anderen „Avant“. oder klar vorgegeben sind, dann mag es sein, dass man Vielleicht will man die Dinge deswegen unterschied- sich ein Auto einer anderen Marke kauft, in ein anderes lich benennen, weil alle an die selben Rahmenbedin- Land zieht oder die Technologie wechselt. Dazu muss gungen gebunden sind, die eine beliebige Diversifizie- man natürlich ein bisschen über den Tellerrand schauen,

rung unmöglich machen, wie der cw-Wert, Abgasnormen, weil man ja sonst nicht weiß, was man verbessern kann. Abmessungsvorschriften usw. Bei uns ist es z. B. die Und seien wir mal ehrlich: Es ist doch deutlich ein- von-Neumann’sche Rechnerarchitektur. facher zu sagen, dass das Andere „doof“ ist, als einzuge- Ungeachtet dessen, gibt es aber nicht technische Din- stehen, dass man vom Anderen zu wenig versteht. ge, die alle Autofahrer verbindet. Angefangen bei den Gesetzen für den Straßenverkehr, über allgemein gültige In diesem Sinne: Bis zum Herbstcampus! Erfahrungen (etwa Aquaplaning), bis hin zu Fahrtipps Ihr Michael Wiedeking

Seite 3 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Beitragsinformation Werbung ist Information Firmen haben die Möglichkeit Werbung im KaffeeKlatsch un- Der KaffeeKlatsch dient Entwicklern, Architekten, Projektlei- terzubringen. Der Werbeteil ist in drei Teile gegliedert: tern und Entscheidern als Kommunikationsplattform. Er soll ne- ben dem Know-how-Transfer von Technologien (insbesondere Java • Stellenanzeigen und .NET) auch auf einfache Weise die Publikation von Projekt- • Seminaranzeigen und Erfahrungsberichten ermöglichen. • Produktinformation und -werbung

Die Werbeflächen werden als Vielfaches von Sechsteln und Vier- Beiträge teln einer DIN-A4-Seite zur Verfügung gestellt. Um einen Beitrag im KaffeeKlatsch veröffentlichen zu können, Der Werbeplatz kann bei Frau Natalia Wilhelm via E-Mail müssen Sie prüfen, ob Ihr Beitrag den folgenden Mindestanforde- an [email protected] oder telefonisch unter 09131/8903-16 rungen genügt: gebucht werden. • Ist das Thema von Interesse für Entwickler, Architekten, Projekt- leiter oder Entscheider, speziell wenn sich diese mit der Java- oder Abonnement .NET-Technologie beschäftigen? Der KaffeeKlatsch erscheint zur Zeit monatlich. Die jeweils ak- tuelle Version wird nur via E-Mail als PDF-Dokument versandt. • Ist der Artikel für diese Zielgruppe bei der Arbeit mit Java oder Sie können den KaffeeKlatsch via E-Mail an [email protected]­ .NET relevant oder hilfreich? oder über das Internet unter www.bookware.de/abo bestellen. • Genügt die Arbeit den üblichen professionellen Standards für Selbstverständlich können Sie das Abo jederzeit und ohne Angabe Artikel in Bezug auf Sprache und Erscheinungsbild? von Gründen sowohl via E-Mail als auch übers Internet kündigen. Wenn Sie uns einen solchen Artikel, um ihn in diesem Medium zu Ältere Versionen können einfach über das Internet als Down- veröffentlichen, zukommen lassen, dann übertragen Sie Bookware load unter www.bookware.de/archiv bezogen werden. unwiderruflich das nicht exklusive, weltweit geltende Recht Auf Wunsch schicken wir Ihnen auch ein gedrucktes Exem- plar. Da es sich dabei um einzelne Exemplare handelt, erkundigen • diesen Artikel bei Annahme durch die Redaktion im Kaffee- Sie sich bitte wegen der Preise und Versandkosten bei Natalia Klatsch zu veröffentlichen Wilhelm via E-Mail unter [email protected] oder • diesen Artikel nach Belieben in elektronischer oder gedruckter telefonisch unter 09131/8903-16. Form zu verbreiten • diesen Artikel in der Bookware-Bibliothek zu veröffentlichen Copyright Das Copyright des KaffeeKlatschs liegt vollständig bei der • den Nutzern zu erlauben diesen Artikel für nicht-kommerzielle Bookware. Wir gestatten die Übernahme des KaffeeKlatschs in Zwecke, insbesondere für Weiterbildung und Forschung, zu ko- Datenbestände, wenn sie ausschließlich privaten Zwecken dienen. pieren und zu verteilen. Das auszugsweise Kopieren und Archivieren zu gewerblichen Zwe- Wir möchten deshalb keine Artikel veröffentlichen, die bereits in cken ohne unsere schriftliche Genehmigung ist nicht gestattet. anderen Print- oder Online-Medien veröffentlicht worden sind. Sie dürfen jedoch die unveränderte PDF-Datei gelegentlich Selbstverständlich bleibt das Copyright auch bei Ihnen und und unentgeltlich zu Bildungs- und Forschungszwecken an Inte- Bookware wird jede Anfrage für eine kommerzielle Nutzung direkt ressenten verschicken. Sollten diese allerdings ein dauerhaftes In- an Sie weiterleiten. teresse am KaffeeKlatsch haben, so möchten wir diese herzlich Die Beiträge sollten in elektronischer Form via E-Mail an dazu einladen, das Magazin direkt von uns zu beziehen. Ein regel- [email protected] geschickt werden. mäßiger Versand soll nur über uns erfolgen. Auf Wunsch stellen wir dem Autor seinen Artikel als unverän- Bei entsprechenden Fragen wenden Sie sich bitte per E-Mail derlichen PDF-Nachdruck in der kanonischen KaffeeKlatsch- an [email protected]. Form zur Verfügung, für den er ein unwiderrufliches, nicht-exklu- sives Nutzungsrecht erhält. Impressum

Leserbriefe KaffeeKlatsch Jahrgang 6, Nummer 8, August 2013 Leserbriefe werden nur dann akzeptiert, wenn sie mit vollständigem ISSN 1865-682X Namen, Anschrift und E-Mail-Adresse versehen sind. Die Redak- Bookware – eine Initiative der tion behält sich vor, Leserbriefe – auch gekürzt – zu veröffent­lichen, MATHEMA Verwaltungs- und Service-Gesellschaft mbH wenn dem nicht explizit widersprochen wurde. Henkestraße 91, 91052 Erlangen Sobald ein Leserbrief (oder auch Artikel) als direkte Kritik zu Telefon: 0 91 31 / 89 03-0 einem bereits veröffentlichten Beitrag aufgefasst werden kann, be- Telefax: 0 91 31 / 89 03-55 hält sich die Redaktion vor, die Veröffentlichung jener Beiträge zu E-Mail: [email protected] verzögern, so dass der Kritisierte die Möglichkeit hat, auf die Kritik Internet: www.bookware.de in der selben Ausgabe zu reagieren. Herausgeber/Redakteur: Michael Wiedeking Leserbriefe schicken Sie bitte an [email protected]. Für Anzeigen: Natalia Wilhelm Fragen und Wünsche zu Nachdrucken, Kopien von Berichten oder Grafik: Nicole Delong-Buchanan Referenzen wenden Sie sich bitte direkt an die Autoren.

Seite 4 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Inhalt

Editorial 3

Beitragsinfo 4

Inhalt 5

Herbstcampus-Programm 2013 11

User Groups 48

Werbung 50

Das Allerletzte 54

Artikel

Dynamisch und gefährlich? C# Dynamics in freier Wildbahn 7

Höher, schneller, weiter Erweiterungen für CDI entwickeln 40

Kolumnen

Dünn besät Des Programmierers kleine Vergnügen 44

Redewendungen Deutsch für Informatiker 46

Altmodisch bewährt sich Kaffeesatz 47

Seite 5 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Inhalt

Dynamisch und gefährlich? C# Dynamics in freier Wildbahn 7 von Tim Bourguignon

Was passiert genau, wenn das C#-Schlüsselwort dynamic verwendet wird? Manche sagen, dass die Hölle ausbrechen wird. Andere, dass für jede Verwendung ein Kätzchen stirbt – und wir sprechen von echt süßen Kätzchen! Bei dessen Einführung in C# 4.0 im Jahr 2010 hat sich der Autor bemüht, die Kätzchen zu retten, also keine dynamics zu verwenden. Aber das gilt seit 2012 nicht mehr. Wenn Kätzchen wirklich in Gefahr wären, wenn man dynamics verwendet, würde er nämlich bald Ärger mit Tierrechtsorganisationen bekommen.

Höher, schneller, weiter Erweiterungen für CDI entwickeln 40 von Werner Eberling Der inzwischen nicht mehr ganz so neue CDI-Standard kommt mittlerweile in immer mehr Pro- jekten zum Einsatz. Doch was tun, wenn die out-of-the-box-Funktionalität des „Neuen“ nicht aus- reicht? Für solche Situationen bietet CDI einen eingebauten Erweiterungs­mechanismus, der dem Entwickler interessante Möglichkeiten zum Ausbau des Frameworks bietet. Wie dies vonstatten geht, soll in diesem Artikel anhand zweier Beispiele genauer betrachtet werden.

Dünn besät Des Programmierers kleine Vergnügen 44 von Michael Wiedeking Gelegentlich hat man das Problem, dass ein Array nur verhältnismäßig wenige Einträge hat. Dieses Problem lässt sich etwa – wie schon in früheren Vergnügen gesehen – teilweise mit einem Bit-Array lösen, womit zumindest geklärt ist, ob ein Element überhaupt vorhanden ist. Jetzt stellt sich nur die Frage, wie man das dazugehörige Element effizient finden kann.

Redewendungen Deutsch für Informatiker 46 von Alexandra Specht August ist, zumindest hier in Bayern respektive Franken, die Haupturlaubszeit. Die Straßen sind erfreulich frei am Morgen und man findet genügend freie Parkplätze in Wohngebieten. Sicher sind auch von unseren Leserinnen und Lesern viele gerade im Urlaub. Und vielleicht auch im Ausland. Für diesen Fall oder einen späteren Urlaub möchte ich Ihnen nun ein paar nützliche Redewendungen an die Hand geben, mit denen Sie, wenn alles gut läuft, Einheimische beeindrucken können.

Altmodisch bewährt sich Kaffeesatz 47 von Lisa Marie Wehlmann-Wiedeking Bei technischen Geräten weiß man ja nie. Fehlermeldungen, Verschicken ganzer Adressbücher und mehr oder weniger abhörbare Korrespondenzen. Es scheint als hätte es früher weniger Überfälle auf Kutschen mit versiegelten Staatsangelegenheitsbriefen gegeben, als es heute Hacker gibt.

Seite 6 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 ToUpper-Erweiterungs-Methode definiert wird – kom- Dynamisch und piliert Folgendes auch nicht besser: int theAnswer = 42; gefährlich? theAnswer.ToUpper(); C# Dynamics in freier Wildbahn Der Compiler kann da keine Methodendefinition für von Tim Bourguignon ToUpper finden, die ein Argument vom Typ int braucht. Was passiert, wenn wir den string- und int-Typen mit as passiert dynamic tauschen? Dann sollte man den Compiler sofort genau, wenn lächeln und alle Fehler verschwinden sehen. In dynamischen Sprachen bekommen wir die Typsi- das C#- cherheit erst zur Laufzeit. Die Beispiele hier oben kom- Schlüsselwort pilieren dann zwar, aber „krachen“ trotzdem zur Laufzeit! dynamic Toll! Warum hat denn dann C# überhaupt ein dynamic- verwendet wird? Schlüsselwort? Klauen wir ein einfaches Beispiel von W Scott Hanselman [1]: Manche sagen, dass die Hölle ausbrechen wird. Andere, dass für jede Calculator calc = new Calculator(); int sum = calc.Add(10, 20); Verwendung ein Kätzchen stirbt – und Was würde denn passieren, wenn wir object statt Calcula- wir sprechen von echt süßen Kätzchen! tor als Variablentyp verwenden würden? Dann weiß der Bei dessen Einführung in C# 4.0 im Compiler nicht, dass eine Add-Methode existiert und Jahr 2010 hat sich der Autor bemüht, natürlich wird ein Fehler angezeigt. Wenn wir mehrere Objekte haben, die eine Add-Me- die Kätzchen zu retten, also keine thode besitzen, definieren wir in der Regel eine Schnitt- dynamics zu verwenden. Aber das gilt stelle, die diese gemeinsamen Fähigkeiten zusammen- fasst. Dann können wir die unterschiedlichen Objekte seit 2012 nicht mehr. Wenn Kätzchen über ihre Schnittstellen ansprechen. wirklich in Gefahr wären, wenn man Wir können aber ohne Schnittstelle trotzdem aus- kommen. Mit Hilfe von Reflection können wir auf die dynamics verwendet, würde er nämlich Methode Add zur Laufzeit trotzdem zugreifen. Es funk- bald Ärger mit Tierrechtsorganisationen tioniert, die Syntax ist aber, naja, weniger schön:

bekommen. object calc = new Calculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember( Dynamics? "Add", BindingFlags.InvokeMethod, null, Rudern wir kurz zurück für diejenigen, die es verpasst new object[] { 10, 20 } ); haben. C# sollte eine stark typisierte Sprache sein; was ist int sum = Convert.ToInt32(res); dann dieses dynamic, von dem wir reden? Es stimmt, C# ist eine stark typisierte Sprache. Die Diese Add-Methode existiert jedoch. Schön wäre, wenn Sprache drückt Typ-Beschränkungen aus, die an Compile- wir diese Compile-Zeit Prüfung einfach übersprin- Zeit verifiziert und validiert werden. Folgender Code gen könnten. Dann würde das Programm zur Laufzeit kompiliert zum Beispiel nicht: korrekt reagieren. Genau das erlaubt uns das dynamic- Schlüsselwort: string language = "C#"; language++; dynamic calc = new Calculator(); int sum = calc.Add(10, 20); Es ist klar: der Compiler merkt, dass der "++"-Opera- tor nicht auf string-Operanden appliziert werden kann Der Compiler erlaubt alles, was nach dem dynamic-Schlüs- und gibt einen Fehler zurück. Ebenso – sofern keine selwort kommt, solange es sich an die C#-Syntax hält.

Seite 7 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Dynamisch und gefährlich?

Die Idee, einen Objekt-Typ über seine Methoden und Bag. In den letzten Jahren gab es auch mehrere Projekte Attribute anstatt über seine Klasse zu definieren, trägt zu entdecken – wie zum Beispiel NancyFx [7], Simple. den Namen Duck-Typing. Wie James Whitcomb Riley Data [8] oder Oak [9] – die diese dynamischen Kon- es beschrieben hat: strukte häufiger verwenden (arme Kätzchen). Es schaut also so aus, als ob es ein paar Szenarien gäbe, in welchen „Wenn ich einen Vogel sehe, der wie eine Ente läuft, diese dynamics schon interessant wären. wie eine Ente schwimmt und wie eine Ente schnattert, dann nenne ich diesen Vogel eine Ente.“ [2]. APIs Duck-Typing ist ein Kernkonzept aller dynamischen Ein massiver Nachteil des dynamic ist die Beschränkung Sprachen. Damit steigt die Sprachflexibilität drama- der Entdeckbarkeit. IntelliSense ist ein sehr gutes Tool tisch, gleichzeitig sinkt aber auch deren Fehlerresistenz. und hilft sehr gut sich zu informieren, was mit welchem Da der Compiler uns nicht mehr Tipp- und Typfehler Objekt gerade machbar ist und es beschränkt die Typ- anzeigt, müssen wir diese explizit mit Unit-Tests aus- Fehler-Szenarien. schließen. Eine API zu basteln bedeutet, sich viele Gedanken Zusätzlich zum Verlust der Compile-Time-Verifi- darüber zu machen, was die Benutzer wirklich damit ma- zierung, können dynamische Sprachen nur schwer Me- chen wollen. Sie sollte nicht nur Probleme lösen können. thoden und Eigenschaften ableiten. Daher kann sie auch Eine gute API sollte einfach zu bedienen sein und das kein so mächtiges Tool wie zum Beispiel IntelliSense [3] Leben dessen Benutzers erleichtern. Objektorientiert bieten. C# ist da keine Ausnahme, sobald wir dynamic oder funktional? Mit oder ohne Schnittstellen? Anhand verwenden, wird IntelliSence stumm. Manche sagen, dass von JSON, XML oder sonst was? So viele Fragen, die man es eher von Vorteil wäre; aber das ist Geschmackssache. berücksichtigen soll; und dynamische Konzepte sind sel- ten in diesen Gedankenprozessen dabei. Und doch haben .NET dynamische Sprachen sie etwas anzubieten. Das eine Szenario, in welchem dieses dynamische Verfah- ren wirklich Sinn macht, besteht in der Interoperabilität DynamicObject mit dynamischen Sprachen wie Python und Ruby, oder Das System.Dynamic.DynamicObject ist die Basis für alle eher dessen .NET-Varianten IronPython [4] und IronRu- dynamischen Objekte. Ein DynamicObject belichtet seine by [5]. In diesem Fall erlaubt das dynamic-Schlüsselwort Members an der Laufzeit über drei Methoden, die man Python- oder Ruby-Scripten, auf die CLR und die .NET- überschreiben kann: Plattform zuzugreifen. • TrySetMember Hier ist das Python-Script, welches wir gerne verwen- den würden: • TryGetMember

def add(a, b): • TryInvokeMember "add(a, b) -> returns a + b" Diese Methoden auf eine schlaue Art und Weise zu return a + b kombinieren, ist der Schlüssel für diese dynamische Ver- In C# brauchen wir nur eine Python Runtime zu bauen, wendung. das Script in ein dynamic-Objekt zu laden und schon können wir diese add-Methode aufrufen: ExpandoObject Das System.Dynamic.ExpandoObject ist ein Objekt, wel- var pythonRuntime = Python.CreateRuntime(); ches Members zur Laufzeit dynamisch hinzufügen und dynamic pythonScript = pythonRuntime.UseFile("script.py"); entfernen kann. Zum Beispiel: var result = pythonScript.add(100, 200))); dynamic myExpando = new ExpandoObject(); Ja, und? myExpando.number = 10; //Eigenschaft hinzufügen myExpando.Increment = (Action)( Das alles ist bisher weder neu noch wirklich spannend. () => { myExpando.number++; } Iron-Interoperabilität machen ernsthaft erst einige weni- ); //Methode hinzufügen ge Projekte, also wo will man dann hin? Console.WriteLine(myExpando.number); //10 Benutzer des ASP.NET MVC Frameworks [6] haben myExpando.Increment(); //Methoden Aufruf schon mal ein dynamisches Objekt verwendet: der View- Console.WriteLine(myExpando.number); //11

Seite 8 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Dynamisch und gefährlich?

Anstatt Number oder Increment hätte man alles mögliche mini-Objekt kann aber sich selbst beobachten und seine schreiben können. Diese Eigenschaften und Methoden Members zur Laufzeit analysieren. existieren erst einmal nicht und werden zur Laufzeit dynamic gemini = new Gemini( hinzugefügt. Intern verwendet das ExpandoObject eine new { FirstName = "Jane", LastName = "Doe" } Art Dictionary, um diese dynamischen Eigenschaften ); zu speichern. Das Dictionary hat Eigenschaftsnamen als gemini.MiddleInitial = "J"; Schlüssel und die Werte können direkt via der object. gemini.RespondsTo("FirstName"); //liefert true z.B. expando.number aufgerufen werden. gemini.RespondsTo("IDontExist"); //liefert false Der ASP.NET MVC ViewBag weist viel Ähnlich- keit zu einem ExpandoObject auf – und für die meisten gemini.SayHello = new DynamicFunction(() => "Hello"); Entwickler ist das ExpandoObject ein einfacher „Eigen- gemini.SayHello(); //Methodenaufruf schaftssack“. In ihrem Blog [10] hat Alexandra Rusina aber IDictionary members = gemini.Hash(); //Member-Zugriff eine andere Verwendung von ExpandoObjects dargestellt: IEnumerable methods = Die Behandlung von XML-Strukturen. Anhand von gemini.Delegates(); //liefert die Methoden des Objekts ExpandoObjects­ kann man hierarchische Strukturen bau- en, die sich danach einfacher als XElements behandeln Oak verwendet meistens intern Gemini-Objekte, zum lassen. Die Konvertierung von und zu XML muss per Zweck des Model-Bindings, um Daten hin und zurück Hand gemacht werden, aber ein Gewinn an Komplexität von Views zu reichen, aber auch als Schlüsselkomponente, ist es schon. um Datenbanken anzusprechen, JSON-Konvertierungen Noch besser, ein ExpandoObject implementiert die zu leisten usw. INotifyPropertyChanged-Schnittstelle und kann sogar Ereignisse als Eigenschaften speichern. Damit können NancyFx ExpandoObjects beobachtet werden und in DataBinding- Nancy [12] ist ein OpenSource-MicroFramework und Szenarien verwendet werden; dies ist ungefähr das, was erlaubt es Web-Applikationen zu bauen. Ähnlich wie NancyFx tut. Sinatra [13] auf dem Ruby-Stack bietet es eine leichtge- wichtige und zeremonielose Art und Weise, Web-Seiten ElasticObject anzubieten. Gegensätzlich zu ASP.NET MVC enthält Das ElasticObject [11] ist ein OpenSource-Cousin des Nancy nur die aller nötigsten Kernfunktionalitäten out- ExpandoObjects. Es versucht die Arbeit mit tiefen Objekt- of-the-box und muss für alles andere mit Erweiterungs- Graphen zu erleichtern. Es bringt interessante Erweite- modulen ergänzt werden. rungen zum ExpandoObject und ist tatsächlich in man- Um das DataBinding zu leisten, verwendet Nancy chen Fällen sehr sinnvoll. Dem ersten Eindruck nach ist dynamische Objekte. Wenn man eine Route definiert, es leider auf dem Papier schöner als in der Realität, aber versucht Nancy dafür Parameter zu schnappen und bie- dessen Aufbau ist auf jeden Fall einen Blick Wert. tet dem Nutzer diese dann in Form eines dynamischen Objekts an. Gemini Beispielsweise wird die folgende Route anhand Oak ist ebenfalls OpenSource und versucht den Ent- eines HTTP-GET-Requests auf der URL /hello/bob oder wicklungsprozess von Single Page Applications mit .NET /hello/nancy aktiviert. Nancy empfängt dann bob oder zu erleichtern. Es versucht auch C# und JavaScript besser nancy und verpackt es in das dynamische Dictionary miteinander zu kombinieren. Es führt Konvertierungen parameters. von JSON zu dynamic-Objekten durch, um ViewModels Get["/hello/{name}"] = parameters => { und DTOs zu vermeiden. Oak bringt weiterhin ähnliche return "Hello " + parameters.name; Konstrukte und Tools wie Rails mit, zum Beispiel auto- }; matische build- und deploy-Funktionen, um den Ent- wicklungsprozess an sich „reibungsloser“ zu machen. Nancy kann unterschiedliche Arten von Parametern fan- Unter anderem verwendet Oak als Kernkomponente gen: QueryString, CapturedParameters und direkt in den eine sogenannte Gemini-Komponente. Ähnlich wie ein Body des Requests. Alle diese Parameter in ein Dictionary ExpandoObject können zu einem Gemini-Objekt Eigen- zu packen ist eine schlaue Idee. Es ist sehr einfach für den schaften und Methoden hinzugefügt werden. Ein Ge- Anwender und auch einfacher für das Framework selbst.

Seite 9 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Dynamisch und gefährlich?

Bei diesem Beispiel: /hello/nancy?option=default sieht zusätzlich auch als architekturelle Bausteine, um Flexibi- man gleich, dass parameter.name einen Wert haben wird. lität zu gewinnen. Simple.Data geht einen Schritt weiter Allerdings ist es deutlich schwieriger zu sehen, dass para- und baut eine Logikebene auf die dynamics, um eine bes- meter.option auch existiert. sere API anbieten zu können. Nancy verwendet auch dynamische Objekte in den Neben dem gedanklichen Spiel der dynamics ist der Ergebnissen von den Routen. Laut der Theorie kann API-Aufbau der interessante Teil von dieser Verwen- Nancy mit jedem Return-Objekt leben. Nancy ist um dung. Welche Tools wollen wir unseren Kunden (z.B. eine Adapter-Architektur gebaut. Falls das Objekt einen Entwicklern) zukommen lassen? Welche Sprache sollten bekannten Typ hat, wird es an ein spezialisiertes Modul sie sprechen? Etwas Einfaches für mich? Oder eher etwas weitergegeben, sonst wird es als dynamisches Objekt ver- Einfaches für sie? Wie kann ich die Flexibilität meiner packt und an den View weitergereicht. Diese dynamic- Applikation so hoch wie möglich halten? Dynamische Verwendung ist einfacher für das Framework. Es wer- Konstrukte können da sehr gut helfen und es wird noch den weniger Interfaces benötigt und Adapter können andere gute Beispiele in der Zukunft geben. nachgeliefert werden. So bleibt die Flexibilität so hoch es Dies waren die dynamics in Beispielen aus der freien geht – mit allen Nachteilen, die man sich nur ausdenken Wildbahn. Falls andere Exemplare bekannt sind, würde kann, wenn irgendwas doch schief gehen sollte ... sich der Autor sehr freuen, wenn man ihm das mitteilen würde. Falls man es nicht für ihn machen möchte, dann Simple.Data doch bitte für die Kätzchen! Simple.Data geht noch einen Schritt weiter. Durch mas- siven Gebrauch der TryGetMember-Methode, erlaubt es Referenzen die Spontandefinition von Query-ähnlichen Strukturen, [1] Hanselman, Scott C#4 and the dynamic keyword whirlwind Tour around .NET 4 (and Visual Studio 2010) Beta 1 um Datenbanken zu manipulieren. Die Syntax ist dann http://www.hanselman.com/blog/C4AndTheDynamicKeywordWhirlwind- viel näher an einer menschlichen Sprache und lässt sich TourAroundNET4AndVisualStudio2010Beta1.aspx viel besser bearbeiten. Im folgenden Beispiel ist database [2] Wikipedia DuckTyping http://de.wikipedia.org/wiki/Duck_Typing ein dynamisches Objekt: [3] Wikipedia IntelliSense http://en.wikipedia.org/wiki/Intelli-sense database.Customers.FindAllByGenreId(3); [4] IronPython http://ironpython.net //The produced query: SELECT * FROM Customers WHERE GenreId = 3 [5] IronRuby http://www.ironruby.net Der Eckstein von Simple.Data ist diese schlaue Kapse- [6] Asp.Net MVC http://www.asp.net/mvc lung von Objekten, Kommandos und Daten in einer sehr [7] NancyFx lesbaren Form. http://nancyfx.org Die meisten Klassen in Simple.Data erben von Dy- [8] GitHub Simple.Data https://github.com/markrendle/Simple.Data namicObject und verwenden Regexes, um die Members zu [9] Oak What is Oak? parsen, z. B. die verschiedenen Blöcke in TryGetMember http://amirrajan.github.io/Oak zu identifizieren. [10] Rusina, Alexandra Dynamics in C#4.0: Introducing the ExpandoObject Diese Verwendung von dynamics erlaubt eine flexi- http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0- introducing-the-expandoobject.aspx ble Verkettung von datenbankorientierten Konzepten. [11] GitHub ElasticObject Weil der Satz möglicher Kommandos relativ klein ist https://github.com/amazedsaint/ElasticObject (Find, FindAllByXXX, OrderByXXX, Select, WithXXX, [12] Bourguignon,Tim Erste Date mit Nancy und Zweite Date mit Nancy http://www.bookware.de/kaffeeklatsch/archiv/KaffeeKlatsch-2012-07.pdf Where etc.), bleibt die Entdeckbarkeit hoch. http://www.bookware.de/kaffeeklatsch/archiv/KaffeeKlatsch-2013-02.pdf [13] Sinatra für Ruby Fazit http://www.sinatrarb.com In diesem Artikel haben wir verschiedene Konzepte und Verwendungen des dynamic-Schlüsselworts kennenge- Kurzbiographie MATHEMA lernt. DynamicObject und ExpandoObject sind Grund- Timothée Bourguignon ist als Senior Developer für die Software GmbH tätig. Sein Spezialgebiet ist die Desktop- und Web- steine der Sprache C#. Sie können zur Manipulation von Programmierung mit dem .NET-Framework. Daneben beschäftigt er XML benutzt werden. Ihre Varianten, ElasticObject und sich mit den Neuerungen der .NET-Welt und deren Communities. Als Agilist liegt sein Schwerpunkt auf agilen Methoden, guter Teamarbeit und Gemini-Objekte, können auch als flexible DataTransfer- hoher Arbeitsqualität. Hierbei setzt er insbesondere auf die Philosophie des Soft- Objects verwendet werden. NancyFx verwendet dynamics ware Craftmanships.

Seite 10 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Herbstcampus

Programm Herbstcampus

Inhalt

Programm Zeitübersicht 12 Tutorien 13 Keynotes 14 Vorträge 14 Zeitpläne 26 Referenten 29

Zeitübersicht

Zeit Montag, 2.9. Dienstag, 3.9. Mittwoch, 4.9. Donnerstag, 5.9. Zeit 9.00 Keynote Keynote 8.30 – 9.20 10.00 Begrüßung Keynote Vorträge Vorträge 9.40 – 10.50 11.00 Tutorien 12.00 Vorträge Vorträge Vorträge 11.20 – 12.30 13.00 Mittagessen 12.30 – 14.00 14.00 14.00 – 15.10 15.00 Vorträge Vorträge Vorträge 16.00 Tutorien Vorträge Vorträge Vorträge 15.40 – 16.50 17.00 Verabschiedung 18.00 Vorträge Vorträge 17.20 – 18.30 19.00 Abendessen 18.30 – 20.00 20.00 Vorträge 21.00 Vorträge 20.00 – 21.10 22.00 Abendprogramm 21.10 – 23.00

12 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Tutorien Putztag lernt der Teilnehmer, wie er ein und die selbe Anwendung für ver- schiedene Plattformen entwickeln kann, ohne dabei auf die Ver- Clean Code Workshop wendung von Hardware-Funktionen wie GPS, Kontaktliste oder Jens Schauder T-Systems on site services GmbH Kamera zu verzichten. Die Beispiele können auf dem Android- oder René Pfeuffer T-Systems on site services GmbH iPhone-Simulator auf dem eigenen Laptop oder auf Wunsch auf Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T01 dem eigenen Android Smartphone nachvollzogen werden.

Anwendungen verbringen wesentlich mehr Zeit in der Wartungs- phase als in der Entwicklungsphase, daher sollte in jedem Ent- Spezialeffekte wicklungsprojekt ein starker Fokus auf der Erstellung von wart- JavaFX 2.0 barem Code liegen. Code, der einfach zu verstehen, einfach zu Sascha Groß MATHEMA Software GmbH ändern und zu erweitern ist. Leider ist dies nicht so einfach, wie Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T04 es klingt. In diesem Workshop werden die Grundlagen von Clean JavaFX 1.0 ist tot, es lebe JavaFX 2.0 – der erste Versuch Code vermittelt und geübt. In theoretischen Abschnitten werden Swing mit JavaFX abzulösen ist gescheitert. Der Grund hierfür ist Konzepte und Prinzipien vorgestellt, die dann an Code-Beispielen wohl in JavaFX Script zu finden, der Programmiersprache, in der ausprobiert werden. Dazu gehören auch unterstützende Metho- Anwendungen für JavaFX 1.0 erstellt werden mussten. Mit Ja- den, wie TDD und die Mikado Methode, die helfen auch arg ver- vaFX2.0 erfolgt die Rückkehr in das altbekannte Java-Ökosystem. nachlässigten Code in den Griff zu bekommen. JavaFX fühlt sich wieder wie Java an und ermöglicht auf einfache Art und Weise die Implementierung von Benutzeroberflächen. Was zählt ist auf’m Platz Dabei hat sich JavaFX einiges vom Web abgeschaut, wie das Sty- Testautomatisierung im Browser ling mit CSS oder die Beschreibung der Anwendung über FXML (FX markup language). Aber keine Angst, FXML muss nicht selbst Stefan Hildebrandt consulting.hildebrandt.tk geschrieben werden, dafür gibt es den JavaFX Scene Builder, oder Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T02 man verzichtet ganz darauf und zieht sich auf die Java API zurück. Wer eine Anwendung mit Browserinterface schreibt, sollte neben Dieser Workshop gibt einen Einblick in JavaFX 2.0 und behandelt Unit-Tests und Tests auf Service-Ebene, Tests auf der Web-Oberflä- Themen wie Grafiken, Komponenten, Einbindung von Web- und che vorsehen, da nur so realitätsnahe Integrationstests durchgeführt Multimedia-Inhalten (Video, Audio), Effekte, Paketierung und werden können. geb (gebish.org) ist eine auf Selenium und Groo- Auslieferung der Anwendung usw. vy basierende Lösung, die bei der Strukturierung unterstützt und sich sehr gut in den Entwicklungsprozess einer JVM-Anwendung Komponiert einbinden lässt. Neben den geb-Grundlagen werden Best Practices Komponentenbasierte GUI-Entwicklung mit Wicket bei der weitergehenden Strukturierung der Tests vorgestellt sowie Tom Hombergs adesso AG Möglichkeiten für kleinere Last-Tests gezeigt. Für die aktive Mitar- Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T05 beit werden gute Programmierkenntnisse sowie ein Notebook mit installiertem VirtualBox, mindestens 2GB Arbeitsspeicher für die ist ein Java Web-Framework, das stetig an Auf- VM und 8GB freiem Platz auf der Festplatte benötigt. merksamkeit gewinnt und mittlerweile auch in großen Enterpri- se-Anwendungen Einzug findet. Kein Wunder, da man als Java- Entwickler mit HTML-Kenntnissen und Wicket sehr schnell sehr Mind the Gap produktiv werden kann. Statt XHTML Tag Libraries zu durchfor- Multiplattformentwicklung mobiler Anwendungen sten, programmiert man die Komponenten der Web-Oberfläche mit PhoneGap und jQuery Mobile in Java und verbindet sie mit dem HTML Markup. Dabei hat man trotz des komponentenorientierten Ansatzes immer noch kom- Werner Eberling MATHEMA Software GmbH plette Kontrolle über das gerenderte HTML, was die Rollenteilung Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T03 zwischen Web-Entwickler und HTML-Designer besonders einfach In keinem Bereich der Software-Entwicklung scheinen gerade so macht. Dieses Tutorial dient als Einstieg in die Programmierung viele neue Projekte aus dem Boden zu sprießen, wie bei der Ent- von Web-Oberflächen mit Wicket. Nach dem gemeinsamen Aufset- wicklung für mobile Endgeräte. Doch sobald mehrere Plattformen zen eines frischen Wicket-Projekts werden anhand einer Beispiel- adressiert werden sollen, kämpfen diese Projekte mit der Hetero- Anwendung die Konzepte des Frameworks erarbeitet und selbst genität der mobilen Welt. Wer kann es sich schon leisten die selbe ausprobiert. Neben der Erstellung und Verarbeitung von Formu- Anwendung in drei verschiedenen Sprachen zu entwickeln und zu laren als Kern jeder Geschäftsanwendung werden auch Themen pflegen. Genau hier setzen hybride Entwicklungsansätze wie z.B. wie Spring-Integration und Unit-Testing von Wicket-Oberflächen die HTML 5-basierte Applikationsplattform phonegap (Distribu­ behandelt. Das Tutorial richtet sich an Java-Entwickler ohne Wi- tion des Apache Projektes cordova) an. Dieser Workshop führt nach cket-Vorkenntnisse, die in die Lage versetzt werden möchten, eine einer kurzen Übersicht über native und plattformübergreifende bestehende Wicket-Anwendung verstehen und bewerten zu kön- Entwicklungsansätze für mobile Endgeräte in die Multiplattform- nen oder eine neue Wicket-Anwendung selbst von Grund auf zu Entwicklung ein. Am Beispiel von phonegap und jQuery mobile erstellen. Zur Teilnahme wird ein Notebook benötigt.

13 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Dies & das Keynotes Allerlei in aller Kürze Michael Wiedeking et al. MATHEMA Software GmbH Donnerstag, 5. 9., 08:30 – 09:20 Uhr Do I de K30 In den Fängen des Wirtschaftsdarwinismus Agilität ist nur ein Anfang In dieser Keynote wird – fast schon traditionsgemäß – in aller Uwe Friedrichsen codecentric AG Kürze über Wissenswertes und Persönliches rund um die Soft- Dienstag, 3. 9., 10:00 – 10:50 Uhr Di I de K10 ware-Entwicklung referiert.

Der Darwinismus sagt, dass diejenigen überleben werden, die sich am besten auf Veränderungen einstellen können. Das gilt für die heutige Wirtschaft mehr denn je: Globalisierung im Kleinen wie im Großen, der Siegeszug des Internet-Handels und eine Viel- Vorträge zahl innovativer Neueinsteiger sorgen für immer höheren Wett- bewerbsdruck auf die Unternehmen. Immer mehr Wettbewerber Aller Anfang … buhlen um die vorhandenen Kunden, die Erwartungshaltung Begrüßung und Organisatorisches steigt, die Loyalität sinkt. Wer sich als Unternehmen nicht zügig Das Herbstcampus-Team Bookware auf veränderte Marktanforderungen einstellen kann, ist schnell Dienstag, 3. 9., 09:30 – 10:00 Uhr Di I de weg vom Fenster. Entsprechend muss die IT als zentrales Nervensystem des Das Beste kommt zum Schluss Business schnell und flexibel reagieren können, denn was helfen Verabschiedung die tollsten Ideen, wenn die notwendige Unterstützung in den IT- Systemen erst in einem halben Jahr oder später kommt. Aber wie Das Herbstcampus-Team Bookware stellt man sich für eine solche IT von morgen auf? Donnerstag, 5. 9., 17:00 – 17:15 Uhr Do I de Die traditionellen Vorschläge zur Prozess- und Qualitätsver- In der Abschlussveranstaltung wird noch einmal resümiert, die besserung helfen nicht weiter. Meistens wir es dadurch noch kom- besten Sprecher gekürt und unter den Anwesenden einige wenige plizierter und noch langsamer. Aber auch Scrum, XP oder Kan- glückliche „gesucht“, die mit mehr als nur einem Wissensgewinn ban scheinen nicht der Weisheit letzter Schluss, denn häufig wird nach Hause gehen sollen. damit nur noch mehr „Mist“ in noch kürzerer Zeit gebaut – bei gleichzeitiger Aufgabe der Sicherheiten des alten Vorgehens. Was ist der Haken? Einheitsrahmenwerk Das Problem ist, dass die meisten Ansätze für eine IT von Entity Framework 6 morgen zu kurz greifen. Lassen Sie uns deshalb in diesem Vor- Thomas Haug MATHEMA Software GmbH trag alles in Frage stellen: Was sind die Herausforderungen und Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de N12 warum greifen die üblichen Ansätze zu kurz? Lassen Sie uns alles abreißen und neu aufbauen: Was sind unsere Ziele, was ist un- Das Entity Framework 6 ist zwar noch in einer frühen Entwick- ser Wertesystem und welche Bausteine benötige ich für meine IT lungsphase, aber es zeichnet sich jetzt schon ab, dass diese Version von morgen? Lassen Sie uns herausfinden, warum Themen wie im Vergleich zur Vorgängerversion eine Vielzahl an Neuerungen DevOps, Continuous Delivery, Cloud Computing und Software mitbringen wird. Doch erleichtern diese Features die Entwicklung Craftsmanship eine Menge damit zu tun haben – neue Blickwinkel unternehmenskritischer Anwendungen? In dieser Session wer- auf die tägliche Arbeit garantiert. den die wesentlichen Neuerungen vorgestellt und demonstriert, welche Verbesserungen sich für Entwickler ergeben können. Des Politische AGILtation Weiteren wird gezeigt, an welchen Stellen im Entity Framework noch Handlungsbedarf besteht, um Konkurrenzprodukte im Scrum in der Staatsführung ORM-Geschäft überflügeln zu können. Udo Wiegärtner conplement AG Mittwoch, 4. 9., 08:30 – 09:20 Uhr Mi I de K20 Fundamental Scrum rettet alles – zumindest scheint es so, wenn man manchen Neuheiten in der Base Class Library mit .NET 4.5 Software-Teams zuhört. Rainer Stropek Ist die Zeit nicht reif, agile Prozesse auch zur Rettung einer Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de N13 unserer größten Baustellen zu benutzen: Der Politik. Was würde denn passieren, wenn für Politiker anstatt eines Die große Verbesserung in der BCL (Base Class Library), die mit unverbindlichen Koalitionsvertrages ein priorisiertes Product .NET 4.5 kam, ist die Vereinfachung von paralleler und asynchro- Backlog das Maß aller Dinge wäre? Wie würde Politik aussehen, ner Programmierung. Von den Grundlagen in der TPL (Task Pa­ wenn Bundestagsdebatten nicht endlose Ansammlungen von rallel Library) über optimierte Datenstrukturen bis hin zu Spra- Floskeln, sondern kurze, knackige Daily Scrum Meetings wären? cherweiterungen – alles wurde auf Parallelisierung ausgerichtet. Zeigen wir der Politik doch mal, wie man mit Scrum große In diesem Vortrag zeigt der Referent anhand von Beispielen, wie Projekte stemmt! Wir IT-Experten könnten es schließlich besser. Sie von den Innovationen von .NET 4.5 in der Praxis profitieren Könnten wir doch, oder? können.

14 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Loser Verbund zu entwickeln, damit Sie sich weiterhin voll auf die Entwicklung Trennung von User Interface & Code Behind mit Model Ihrer App fokussieren können. Damit Sie sehen, dass dies Realität ist, wird alles am Beispiel einer Windows 8-App demonstriert. View ViewModel für Einsteiger Christoph Wentzke infoteam Software AG Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de N14 C# als Skriptsprache Rapid Prototyping mit scriptcs Model View ViewModel (MVVM) ist ein Design Pattern für Win- Fabian Deitelhoff Twainsoft dows Presentation Foundation (WPF)-Anwendungen. In diesem Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de N22 Vortrag wird anhand eines konkreten Beispiels aufgezeigt, wie das MVVM-Pattern theoretisch und praktisch funktioniert und wo Mit dem gerade erst gestarteten Projekt scriptcs wird eine einfache Fallstricke lauern. Hierbei wird auch auf die technischen Grundla- und agile Plattform geschaffen, um C# als Skriptsprache einsetzen gen von Data Bindings eingegangen. Der zweite Teil des Vortrags zu können. Dadurch eröffnen sich viele Einsatzzwecke, wie bei- beschäftigt sich mit Anfängerproblemen bei den ersten Verwen- spielsweise eine Plattform für eine schnelle Entwicklung, wie sie dungen des MVVM-Pattern und wie man diese Probleme löst. Im beim Rapid Prototyping gewünscht ist. Durch die Merkmale ei- Speziellen wird hier auf Input Validation und Value Converter ner Skriptsprache ist es nicht mehr notwendig Visual Studio als eingegangen. Hiernach wird noch auf die Vor- und Nachteile des IDE zu verwenden. Use Cases für scriptcs sind zusätzlich noch die MVVM-Patterns eingegangen. Während des Vortrags wird viel Entwicklung einfacher Anwendungen, das Schreiben von Skripten Programm-Code gezeigt. Dieser ist ausschließlich in C# geschrie- zur Automatisierung und die Erweiterung von bestehenden An- ben, UI-Elemente in XAML. Ziel dieses Vortrags ist es, dass die wendungen durch eine Skriptsprache als eine Art Plug-In-System. Zuhörer nach dem Vortrag in der Lage sind, eine einfache Anwen- Die Session erklärt auch am Rande die Grundladen von Roslyn, da dung unter Verwendung des MVVM-Patterns zu realisieren. das Projekt scriptcs darauf basiert.

Echt jetzt ?! Geschichtet, nicht gerührt? Echtzeitanwendungen für das Web mit SignalR Einführung in die N-Layer Domain-Oriented Architecture Tobias Krügel conplement AG Tobias Krügel conplement AG Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de N15 Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de N23

Die Erwartungen an moderne Web-Anwendungen haben sich in- Um eine hohe Qualität und einen langen Lebenszyklus gewähr- zwischen an jene klassischer Desktopapplikationen angepasst. In leisten zu können, müssen moderne Anwendungen eine Vielzahl Zeiten sozialer Netzwerke gehören Benutzerinteraktionen, die in von Kriterien erfüllen. Hierbei stehen insbesondere die Flexibi- Echtzeit erfolgen, längst zum Standard. Doch die Mechanismen lität hinsichtlich Wartungs- und Erweiterungsarbeiten sowie die von HTTP & Co sind in ihrer ursprünglichen Form hierfür nicht Schaffung der optimalen Voraussetzungen zur Einführung auto- ausgelegt. Glücklicherweise haben sich im Laufe der Jahre zahl- matisierter Tests im Fokus. Doch wie sollten Anwendungen idea- reiche Technologien, wie z. B. „Web Sockets“ oder „Server-Sent lerweise strukturiert sein, um diesen Anforderungen gerecht zu Events“ etabliert, die diese Schwächen ausgleichen. Mit SignalR werden? Dieser Vortrag führt in die von Microsoft Spain veröffent- veröffentlicht Microsoft nun eine Reihe von server- und client- lichten Richtlinien der N-Layer-Domain-Oriented Architecture seitigen Frameworks, welche die gängigsten Technologien zur ein und zeigt auf, wie sich flexible und skalierbare Anwendungen Realisierung von „Push-Notifications“ abstrahieren und für die mit bewährten Patterns auf Basis des Microsoft Technologie ASP.NET-Plattform zur Verfügung stellen. Dieser Vortrag führt in Stacks realisieren lassen. Zudem werden Stärken und Schwächen SignalR ein und zeigt anhand eines Beispiels, wie sich Echtzeitan- der teilweise kontrovers diskutierten Architektur aufgeführt. wendungen einfach und schnell realisieren lassen.

App in die Cloud! Roslyn in Visual Studio nutzen Daten-Backends in der Cloud und dessen Integration Visual Studio Erweiterungen mit Roslyn effizient und einfach implementieren Peter Kirchner Microsoft Deutschland GmbH Fabian Deitelhoff Twainsoft Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de N21 Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de N24 Apps sind dann erfolgreich, wenn diese eine gegebene Problem- stellung perfekt lösen, genial aussehen und fehlerfrei sind. Dies Zum ersten Mal stellt Microsoft ein Framework bereit, mit dem sind für Entwickler keine leichten Anforderungen! Wenn Sie zu- der C#-Compiler in eigenen Anwendungen genutzt werden kann. dem ein Daten-Backend benötigen, können die Aufgaben einem Darüber hinaus besteht aber auch die Möglichkeit Erweiterungen leicht über den Kopf wachsen und Sie müssen abwägen, wofür für Visual Studio mit speziellen Projekt-Templates zu erstellen. Sie Ihre kostbare Zeit aufwenden. In die App, die so wie sie ist Damit lassen sich beispielsweise die Funktionen Code Issue, Code von jedem Nutzer nach wenigen Sekunden bewertet wird oder in Refactoring, Code Completion und Code Outline erstellen. Durch das Backend, das unsichtbar im Hintergrund schlummert? Die- diese und weitere Vorlagen wird ein erweiterbares Grundgerüst ser Vortrag zeigt Ihnen die Vorteile der Windows Azure Mobile bereitgestellt, mit dem einfache und komplexe Szenarien in Visual Services auf, mit sehr wenig Aufwand ein stabiles Daten-Backend Studio abgebildet werden können. Die Session beinhaltet einfüh-

15 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

rende Informationen zu Roslyn und zeigt, auf welcher Funktio- C# und Java) des Publikums und ist somit auch für Java-Fans ge- nalität die Visual Studio-Erweiterungen aufbauen. Primär werden eignet, die für 2014 ein praxisrelevantes Beispiel für die Verwen- aber Sinn und Zweck, die Implementierung der Erweiterungen dung von Lambda-Funktionen suchen. und die Unterschiede zum bisherigen Vorgehen behandelt und nicht die Funktionsweise von Roslyn. Flaschenhälse eliminieren Performance Optimierung von .NET-Applikationen Himmlische Nachrichten! Markus Müller datainfo.de Service Bus für Windows Server – Cloud-Technologien Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do I de N33 nun auch im eigenen Unternehmensnetzwerk Peter Kirchner Microsoft Deutschland GmbH Moderne CPUs werden immer schneller und gleichzeitig immer Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de N25 sparsamer. Doch ist moderne Software in Unternehmen auch so Umweltbewusst geworden? In der heutigen Zeit ist das Thema Mit dem Service Bus für Windows Server bietet Microsoft Unter- „Performance“ gerade durch Serviceorientierung und horizonta- stützung für Publish-Subscribe-Kommunikation in lokalen Netz- ler Skalierung ein wenig in den Hintergrund geraten. Doch ha- werken ohne zusätzliche Kosten. Der Service Bus für Windows ben moderne Software-Techniken und Architekturen auch oft Server ist ein Set installierbarer Komponenten, die die Kommu- einen hohen Preis, der sich durch eine höhere Stromrechnung nikationsfähigkeiten des Windows Azure Service Bus auf den oder im schlimmsten Fall aber auch durch frustrierte Anwender Windows Server bringen. Der Service Bus für Windows Server niederschlägt. In diesem Vortrag erfahren Sie anhand einfacher ermöglicht das Erstellen, Testen und Ausführen lose gekoppelter, Beispiele, wie man mit modernen Tools Flaschenhälse in .NET- Nachrichten-getriebener Anwendungen. Der Service Bus für Win- Applikationen finden, und durch Profiling sichtbar machen kann. dows Server bietet ähnliche Fähigkeiten über Windows Azure und Damit in Zukunft moderne Software-Architekturen auch wirklich Windows Server und damit Flexibilität bei der Erstellung und In- zur „Green IT“ passen. stallation von Anwendungen, da er auf der gleichen Architektur aufgebaut ist wie der Windows Azure Service Bus. In diesem Vor- Dynamisch und gefährlich? trag lernen Sie, wie Sie eine Service Bus-Farm aufsetzen und wie C# Dynamics in freier Wildbahn diese in Anwendungslösungen genutzt werden kann. Timothée Bourguignon MATHEMA Software GmbH Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de N34 From Zero to Azure Hero Professionelle Cloud Entwicklung mit Windows Azure Seit der Einführung des „dynamic“ Schlüsselworts in der 4.0-Ver- und C# sion von C# streitet sich die .NET-Community zwischen „böse und gefährlich“ und „praktisch und cool“. Von ASP.NET ViewBags, Ex- Robert Eichenseer Microsoft Deutschland GmbH pandoObjects, ElasticObjects, JSON-Parser mit ExpandoObjects Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de N31 oder NancyFx Model Objekte bis Simple.Data und Oak’s Gemini Bindings, dieser Vortrag wird böse dynamische Konstrukte unter Grundlegendes Azure Know How ist mittlerweile bei vielen Ent- die Lupe nehmen, die in unserer stark typisierten .NET-Welt nicht wicklern angekommen. Spätestens bei der konkreten Umsetzung nur Sinn haben sondern von echtem Vorteil sind. von Aufgabenstellungen stößt man jedoch häufig auf unerwar- tete Probleme bzw. Fehlermeldungen aus der Cloud. Der Vortrag blickt hinter die klassischen „Hello World“-Beispiele und zeigt wie Geht nicht gibt’s nicht! Windows Azure für die Entwicklung von professionellen und aus- Einsatz von HTML5-Features im Jetzt fallsicheren Anwendungen genutzt werden kann. Yann Massard BTC Business Technology Consulting AG Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de H12 Das [C]Kreuz mit den Lambdas Eine erweiterbare generisch-parallele Suche mit HTML5 bietet eine Menge neuer Möglichkeiten für die Entwick- lung von Web-Applikationen. Allerdings werden viele Features C#-PLinq (inklusive Java 8 Pedant) erst in neueren Browser-Versionen unterstützt. Dieser Vortrag Dr. Ulrich Hilburger NÜRNBERGER Versicherungsgruppe zeigt anhand von Beispielen, wie HTML5-Technologien jetzt Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de N32 schon eingesetzt werden können, ohne ältere Browser von der Nutzung auszuschließen. Während die Java-Gemeinde sehnlichst auf die Lambda-Funkti- onen von Java 8 im nächsten Jahr wartet, gibt es diese in C# be- reits seit 2006 (dotnet 2.0) und in Verbindung mit [P]Linq (dot- Hallo JavaScript net 3.5 [4.0]) seit 2007 [2008]. Damit bietet sich eine elegante Eine Einführung in JavaScript Möglichkeit, eine generisch formulierte Suche einfach mit eigenen Frank Goraus MATHEMA Software GmbH Suchfunktionen zu erweitern und mittels PLinq automatisch von Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de H13 einer Beschleunigung auf Multiprozessorsystemen zu profitieren. Dieser Vortrag zeigt eine Schritt-für-Schritt-Einführung in das Früher wurde JavaScript noch eher als Schreckgespenst, welches Thema bis hin zur Live-Kodierung einer Wunsch-Erweiterung (in den Browser heimsucht, verachtet. Heute ist es jedoch aus der Web-

16 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Entwicklung nicht mehr wegzudenken. Jede Web-Anwendung, die sere Performanz bieten? Haben Sie sich jemals gefragt, wie Sie schick, schnell und hip sein will, greift auf JavaScript zurück, um die Ladezeiten Ihrer Anwendung, das Caching-Verhalten oder das mit hübschen Effekten oder netten Features zu glänzen. Und dabei Rendering des Browsers verbessern und dabei zugleich eine effizi- kann JavaScript inzwischen noch so viel mehr und sogar als Web- ente Netzwerkauslastung erreichen? Wollten Sie schon immer mal oder Mail-Server auftreten. Und nicht zuletzt ist es heute dank vie- wissen, welche Werkzeuge zur Verfügung stehen, um diese Fragen len Frameworks einfacher mit JavaScript zu arbeiten als noch vor zu beantworten? Besuchen Sie diesen Vortrag und gewinnen Sie ein paar Jahren. Für alle, die JavaScript lieben oder hassen lernen die Kontrolle über die Performanz Ihrer Anwendung zurück. möchten, gibt es hier eine Einführung in die Sprache und ihre Tü- cken. Für den richtigen Einstieg werden diese auch anhand von ein- fachen und nachvollziehbaren Beispielen vorgestellt. Meteor vor dem Einschlag Ein flexibles JavaScript Framework Heiko Spindler Aber eben lief das doch noch! Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de H22 HTML5 Testing mit Jasmine BDD Alexander Schwartz msg systems ag Vor 65 Millionen Jahren beendete der gewaltige Einschlag eines Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de H14 Meteoriten das lange Zeitalter der Dinosaurier. Der Aufstieg der

Säugetiere begann. Diese waren flexibler und intelligenter im Um- Mit einer HTML5-Anwendung können gleichzeitig verschiedenste gang mit der neuen und radikal veränderten Situation. Meteor ist klassische und mobile Plattformen erreicht werden. Doch wie testet ein JavaScript-Framework basierend auf Node.js, das sich durch man diese modularen Anwendungen mit hohem JavaScript-Anteil? eine hohe Flexibilität, Einfachheit und neue Ansätze auszeichnet Für den Test bietet sich Jasmine als JavaScript-basiertes Test-Fra- und den klassischen Web-Frameworks die Stirn bietet. Einige der mework an. Es überzeugt durch seine strikte Trennung zwischen Key-Features sind die einheitliche Basis im JavaScript-Code für Test-Runner und Reporter sowie durch eine einfache Integration Client und Server, automatisches Propagieren von Änderungen in modulare HTML5-Anwendungen. Durch die „Beha­viour Driven von Code und Daten, ein einfaches Design und intelligentes Pa- Development (BDD)“-Anzahl bleiben die Tests lesbar. Außerdem ckaging von Applikationen. Wird der Einschlag von Meteor die kann es leicht in den Entwicklungsprozess integriert werden. Ne- Vorherrschaft der klassischen Applikations-Frameworks vernich- ben einfachen Unit-Tests für den JavaScript-Code kann auch die ten? Dieser Vortrag stellt Meteor mit seinen wichtigsten Features Interaktion mit den HTML-Anteilen der Anwendung getestet wer- vor und führt mit einer Life-Demo in die Entwicklung ein. den. Um Tests unabhängig vom echten Backend zu schreiben, wird das Mock-Framework Sinon.JS vorgestellt. Den Abschluss bildet die Build-Automatisierung am Beispiel von Jenkins. Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 JavaScript on Steroids Stephan Hochdörfer bitExpert AG Eine Einführung in TypeScript Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de H23 Rainer Stropek Lange Zeit standen die Begriffe „web“ und „online“ in einer sehr Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de H15 engen Beziehung. Dank HTML5 hat sich dies geändert. HTML5 JavaScript hat einen riesigen Vorteil: die Verbreitung. Kaum je- fokussiert sich auf die Entwicklung von Web-Applikationen. Dies mand behauptet aber, dass JavaScript eine geniale Programmier- bedingt die Notwendigkeit Daten lokal vorhalten zu müssen. APIs sprache für komplexere Anwendungen ist. Manche Leute argu- wie Web Storage, IndexedDB, Web SQL Database und die File API mentieren, dass nur mangelnde Tool-Unterstützung das Problem geben Entwicklern genügend Möglichkeiten an die Hand um vom sei. Obwohl die Entwicklungsumgebungen (IDE) in letzter Zeit Nutzer generierte Daten persistent lokal vorhalten zu können. Der massiv verbessert wurden, kann JavaScript in Sachen Entwick- Vortrag gibt einen Überblick über die verschiedenen technischen lerproduktivität und Laufzeitstabilität Sprachen wie C# nicht das Möglichkeiten und stellt die Limitierungen der einzelnen Ansätze Wasser reichen. Der „Godfather of Programming Languages“ bei einander gegenüber. Microsoft, An d e r s He j l s b e r g , ist angetreten um dieses Problem an der Wurzel zu packen und zu lösen: TypeScript ist geboren. Web-Anwendungen? Aber sicher! Der Referent zeigt Ihnen wie TypeScript Ihre Sicht auf JavaScript Sicherheitsprobleme in Web-Anwendungen auf den Kopf stellen wird. Sehen Sie TypeScript-Beispiele für das Web, den Server und Windows Store Apps. (und wie man sie vermeidet) Dr. Stefan Schlott BeOne Stuttgart GmbH Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de H24 Beschleunigung X ways to improve your web application’s performance In den News-Tickern und den einschlägigen Mailing-Listen sieht Eduard Tudenhöfner adesso AG man in regelmäßigen und viel zu kurzen Abständen die Warnung Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de H21 vor Sicherheitslücken in Web-Anwendungen, verbunden mit der Aufforderung diese durch einspielen eines Patches zu schließen. Schlüpfen Sie häufig in die Rolle eines Entwicklers oder eines Ar- Zu leicht schleichen sich während der Entwicklung durch Flüch- chitekten und wollen den Benutzern Ihrer Anwendung eine bes- tigkeit oder Unwissenheit Fehler ein, welche zu Sicherheitspro-

17 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

blemen führen. Dieser Vortrag will häufige Probleme (und deren terstützung durch Frameworks oder Patterns kann man so einige tatsächliche Exploits) an praktischen Beispielen aufzeigen, und Klippen umschiffen. Und neben aus dem Java-Bereich bekannten Hinweise für die Vermeidung der Schwachstellen geben. Neben Design Patterns gibt es in JavaScript auch Ansätze für eigene den „Klassikern“ wie Cross-Site-Scripting oder SQL-Injection wird Code-Konstrukte, welche die Arbeit erleichtern. In diesem Vortrag es auch um Varianten gehen, die bei den Stichworten nicht sofort werden häufige Tücken von JavaScript und deren Lösungsansät- in den Sinn kommen; dem Thema Login und Authentisierungs- ze, sowie häufige Patterns vorgestellt und anhand von Beispielen Credentials wird sich der Vortrag etwas ausführlicher widmen. Zu erläutert. JavaScript-Kenntnisse werden vorrausgesetzt. allem wird es Tipps zur Vermeidung und – sofern möglich – Hin- weise auf nützliche Tools oder Bibliothekten geben. Web-Applikationen mit AngularJS Hybride Schönheit Joachim Weinbrenner jsolutions Die (Wieder-)Entdeckung des Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do I de H33 Java/JavaScript Web-Frameworks Echo Christof May Barco Betrachtet man die Entwicklung der client-seitigen Web-Fra- Benjamin Schmid eXXcellent solutions meworks, so sticht in jüngster Zeit ein Kandidat mit enormen Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de H25 Zuwachsraten heraus: AngularJS. Das JavaScript-Framework bietet einen optimalen Weg zur Trennung von Design und An- Es gibt unzählige Web-Frameworks – also warum ein weniger be- wendungslogik sowie der Anbindung an Backends. Der Vortrag kanntes wie Echo3 aus der Mottenkiste herauskramen? Einfach gibt eine Einführung in die Implementierung von AngularJS- deshalb, weil es – seiner Zeit weit voraus – bis heute kein Besseres Anwendungen und zeigt Wege zum Aufbau von modernen, hoch gibt! Das zumindest glaubt eine eingeschworene Fan-Gemeinde, skalierbaren Web-Architekturen. die entschlossen ist das Projekt nach einem kurzen Winterschlaf zu neuem Leben zu erwecken. Warum ein Blick auf das leichtge- wichtige und kernsolide Framework lohnenswert ist, und welche Die ultimative Herausforderung attraktive Zukunft sein einzigartiger hybrider Ansatz mit einer Responsive Webdesign und Parallax Scrolling server-seitigen Java-API und einer auch standalone nutzbaren cli- Uwe Frieser adorsys GmbH & Co. KG ent-seitigen JavaScript-API verspricht, das verrät dieser Vortrag. Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de H34 Technische Konzepte, Anwendungsgebiete und Code-Beispiele sollen das Framework illustrieren. Ein Vergleich mit den anderen Dieser Vortrag bietet eine Einführung in die beiden großen Web- gängigen Frameworks wie GWT, Vaadin, ZK und Eclipse RAP mit design-Trends des Jahres und zeigt praktische Beispiele, wie der entsprechenden Erfahrungsberichten runden den Vortrag ab und Effekt der Bewegungsparallaxe auf unterschiedliche Geräteklas- geben auch weiterführende Orientierungshilfe. Zum Abschluss sen übertragen werden kann. betrachten wir verschiedene Demo-Projekte, die z.B. durch mobi- le Endgeräte und Echtzeitkommunikation glänzen. Neues Gesicht Neues und Erwähnenswertes aus JavaServer Faces 2.2 Zur Hölle mit Responsive! Michael Kurz IRIAN Ein Streitgespräch Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de J12 Florian Hirsch adorsys GmbH & Co. KG Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de H31 Mehr als drei Jahre sind seit der Veröffentlichung von JavaSer- ver Faces 2.0 ins Land gezogen. Und während es in JSF 2.1 nur Responsive Webdesign ist nicht nur „der“ Trend der letzten zwei geringfügige Änderungen gab, bringt Version 2.2 eine ganze Rei- Jahre, es scheint auch die Lösung für viele Probleme zu sein: Der he von relevanten Neuigkeiten mit sich. Diese Session gibt einen Redakteur pflegt den Content nur einmal, der Entwickler erstellt praxisorientierten Überblick über die wichtigsten neuen Features nur eine Website und der User bekommt auf jedem Gerät ein opti- von JSF 2.2. miertes Layout. Super! Bei so einer Wunderwaffe drängt sich eine Frage auf: Wo ist der Haken? Ausgeswingt JavaFX 2.0 Script Factory Method Builder Sascha Groß MATHEMA Software GmbH Fortgeschrittene Techniken mit JavaScript Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de J13 Frank Goraus MATHEMA Software GmbH Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de H32 JavaFX, der nicht mehr so neue Star am Himmel der Oberflächen- bibliotheken für Java, hat es mit Version 2.0 zu den Standardbi- Design Patterns mit JavaScript? Das geht! Durch seinen Mix aus bliotheken von Java geschafft. Nach der bewegten Vergangenheit prozeduraler, objektorientierter und funktionaler Programmier- mit Version 1.x, die vom Handy bis zum Fernseher die Welt der weise kann JavaScript in der Entwicklung manchmal ziemlich Konsumergeräte erobern sollte und dann doch wieder beerdi- sperrig und das andere mal ziemlich einfach sein. Doch dank Un- gt wurde, weil die Entwicklergemeinde mit der neumodischen

18 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Scriptsprache JavaFX Script nichts anfangen wollte. Mit Version TomEE 2.0 hat sich JavaFX wieder seinen Java-Ursprüngen besonnen Was braucht man mehr für JavaEE? und fühlt sich für einen Java-Entwickler wieder wie Java an. Das Frank Pientka MATERNA GmbH altehrwürdige Swing hat seinen Nachfolger gefunden, der vieles Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de J21 einfacher macht, mehr Funktionalität mitbringt und auch ein- facher zu verstehen ist. Dieser Vortrag zeigt wie JavaFX 2.0 funk- Apache TomEE schließt die Lücke zwischen dem weit verbreiteten tioniert, was es kann und wieso es sich lohnt Swing mit der Zeit in Tomcat-Webcontainer und einem ausgewachsenen Applikations- den wohlverdienten Ruhestand zu entlassen. server. Neben seinem zertifizierten Webprofile bietet er einige hilfreiche Erweiterungen an. Durch ausgereifte Komponenten, Unter Beobachtung wie Tomcat, CXF, OpenEJB und OpenJPA bietet er sowohl Ab- Reactive Programming auf der JVM als auch Aufwärtskompatibilität an. Mit eigenem im-Container- Testen oder mit Arquillian wird das Testen und Entwickeln von Joachim Hofer imbus AG JavaEE-Anwendungen so einfach wie nie. Wir stellen TomEE mit Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de J14 einem REST-Beispiel vor. In .NET gibt es mit den „Reactive Extensions“ (Rx) schon länger die Möglichkeit „reaktiv“ zu entwickeln, statt sich in Callbacks zu JavaFX – Lessons Learned? verheddern. Auf der JVM sieht es da bisher nicht so gut aus: Die ersten Frameworks für Reactive Programming sind erst im Ent- Ein Vergleich mit WPF(X) stehen. Der Vortrag führt an Hand eines Beispiels mit Hilfe von Philipp Dörfler imbus AG „RxJava“ in Reactive Programming ein, zeigt Einsatzgebiete auf Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de J22 und gibt einen groben Überblick über den Stand der derzeitigen Frameworks. Nicht alles ist neu in der Welt von JavaFX – vieles ist anderen Frameworks entlehnt. Eines, aus dem sich besonders reich be- dient wurde, ist Windows Presentation Foundation. Doch wurde Ein Blick ins Aquarium dabei das Richtige übernommen? Wer einen kritischen Blick auf Was gibt’s Neues in Bean Validation 1.1 and CDI 1.1? die Konzeptvielfalt nicht scheut, kann aus diesem Vortrag mit- Hardy Ferentschik JBoss / Red Hat nehmen, wie gut dies gelang und wie man diese Konzepte für sich Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de J15 nutzen kann. Auch werden Vorschläge gezeigt, wie sich Fehlendes nachbauen lässt und was es von der Community hierzu bereits Dezember 2009 wurde Java EE6 veröffentlicht und Entwickler gibt. Den Abschluss bildet Live-Coding, in welchem mit einer mussten bis 2013 auf den Nachfolger Java EE7 warten. Die Re- Umsetzung des Presentation Models in JavaFX der konzeptuelle ferenzimplementierung ist Glassfish 4 und integriert mehr als Flickenteppich zum Fliegen gebracht wird. 30 JSRs in seinem Aquarium. In dieser Präsentation werden wir einen Blick auf zwei dieser JSRs werfen, nämlich JSR 349 (Bean Validation 1.1) und JSR 346 (CDI 1.1). Was gibt es Neues in die- Verflixte(?) Sieben sen Technologien? Wie sind sie in Java EE7 integriert und was Ein Blick auf den JBoss AS 7 – von JBoss Modules bis ist der Zusammenhang zwischen diesen JSRs. Unter anderem Clustering werden wir über Bean Validation’s Gruppenkonvertierung und Werner Eberling MATHEMA Software GmbH Methodenvalidierung reden. Schon mal etwas von dem „Liskov Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de J23 substitution principle“ gehört? Falls nicht, ist es an der Zeit sich mit diesem Leitsatz vertraut zu machen. Er ist wichtig, wenn In regelmäßigen Abständen scheint JBoss (seit einigen Jahren ein man Methoden validieren will. In CDI werden wir uns Portable Teil von RedHat) die Notwendigkeit zu sehen den gleichnamigen Extensions und Interceptors anschauen. Wie kann man zum Bei- Applicationserver auf technisch neue Beine zu stellen. Mit Ver- spiel das Verhalten von CDI Beans verändern in dem man Er- sion 7 stand wieder ein solcher „Re-Write“ ins Haus. Einige der eignisse wie BeforeBeanDiscovery oder ProcessAnnotatedType Neuerungen (u.a. JBoss Mudules und das Domänenkonzept), die verarbeitet? diese neue Version mit sich bringt, sollen anhand praktischer Bei- spiele beleuchtet werden. Himbeeren im Herbst Embedded JavaFX auf dem Raspberry Pi E-Neuauflage Jens Deters Empic GmbH Die Java Enterprise Edition 7 und GlassFish Dienstag, 3. 9., 20:00 – 21:10 Uhr Di I de J16 Wolfgang Weigend ORACLE Deutschland B.V. & Co. KG Minicomputer wie der Raspberry Pi sind bei Bastlern zur Zeit Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de J24 hoch im Kurs. Durch die für ARM-Architekturen angepassten JDKs ergeben sich auch für Java-Entwickler interessante Anwen- Kurz vor der Freigabe vom JDK 8 hat sich die Java Enterprise Edi- dungsmöglichkeiten für die „Taschengeld“-Computer. Gezeigt tion 7 (Java EE7) bereits im Sommer voll entfaltet. Als übergeord- wird, wie mittels einer JavaFX-UI auf dem Raspberry Pi dessen nete Spezifikation beinhaltet JavaEE 7 (JSR-342) einzelne überar- GPIO-Schnittstelle angesteuert werden kann. beitete Teilspezifikationen, wie JPA 2.1, EJB 3.2, JMS 2.0, CDI 1.1,

19 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Common Annotations 1.1, Servlet 3.1, JAX-RS 2.0, EL 3.0, JSP 2.3, Im Release 8 wird Java um Elemente der funktionalen Program- JSF 2.2, Bean Validation 1.1 und die neu hinzugekommenen Spezi- mierung erweitert: es wird sogenannte Lambda Expressions fikationen wie Concurrency Utilities for JavaEE (JSR-236), Batch geben. Diese Spracherweiterung wird die Art, wie wir in Java Application for the Java Platform (JSR-352), Java API for JSON programmieren, substantiell verändern. In der Session werden Processing (JSR-353) und Java API for WebSocket (JSR-356). Der die neuen Sprachmittel vorgestellt: Funktionale Typen, Lambda- Applikations-Server GlassFish ist die Referenzimplementierung Ausdrücke und Methoden-Referenzen. Anhand von Beispielen für die Java EE7 und wird im Vortrag auch demonstriert. wird erläutert, wie man mit den neuen Sprachmitteln program- mieren kann, welche Idiome sich damit elegant umsetzen lassen Stapelweise Kaffeesäcke und welche Vorteile die Nutzung von Lambdas hat. Da die neu- en Sprachmittel Eingang in den JDK (und dabei insbesondere in Batch-Verarbeitung mit Java EE 7 die Collections) finden werden, wird zur Ergänzung die Session Thomas Much muchsoft.com „Lambdas II: Funktionale Erweiterungen der Java-Collections“ Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de J25 empfohlen.

Stapelverarbeitung ist aus vielen Enterprise-Anwendungen nicht wegzudenken. Beispielsweise wird am Tages- oder Monatsen- Lambdas II de automatisch eine Massendatenverarbeitung für regelmäßige Funktionale Erweiterungen der Java-Collections Abrechnungen angestoßen, oder ein Benutzer fordert die asyn- Klaus Kreft chrone Generierung eines Berichts an. Solchen Batch-Jobs ist ge- Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de J32 meinsam, dass es sich meist um lang laufende, geschäftskritische Prozesse ohne Benutzerinteraktion handelt, die sequenziell oder Mit dem Release 8 von Java wird das Collection-Framework im parallel ablaufen. In Java EE7 wurde nun die Batch-Verarbeitung JDK radikal überarbeitet. Es wird möglich sein, auf Collections im Java-Umfeld mit dem JSR-352 standardisiert. Aufbauend auf sogenannte „Bulk Operations“ (JEP 107) auszuführen. Zentrales diversen, schon lange – auch außerhalb der Java-Welt – existie- Element dieser Erweiterungen wird die Abstraktion java.util. renden Lösungen wie JCL, WebSphere Compute Grid oder Spring stream.Stream sein. In der Session wird erläutert, was Streams Batch wurde nicht das Rad neu erfunden, sondern es wurden be- sind, wie sie sich von herkömmlichen Collections unterscheiden währte Praxis-Konzepte übernommen und daraus der nun offi­ und wie sie welche Operationen parallel oder sequentiell, „eager“ zielle Standard entwickelt. Dieser Vortrag stellt die Konzepte und oder „lazy“ ausführen. Da die Session elementare Grundkennt- Möglichkeiten von „Batch Applications for the Java Platform“ vor, nisse von Lambdas voraussetzt, wird zur Vorbereitung der Besuch d. h. das Programmiermodell und die Konfiguration der Laufzeit- der Session „Lambdas I: Funktionale Programmierung in Java umgebung. Die Server-Integration wird anhand der Java EE7-Re- mit Lambdas“ empfohlen. ferenzimplementation (GlassFish 4) besprochen. Schwarze 8 Weltoffen Änderungen in Java 8 Einsatz des TFS 2012 in heterogenen .NET/Java- Michael Wiedeking MATHEMA Software GmbH Umgebungen Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do I de J33 Thomas Rümmler AIT GmbH & Co. KG Mittwoch, 4. 9., 20:00 – 21:10 Uhr Mi I de J26 Endlich scheint es tatsächlich soweit zu sein: Nächstes Jahr kommt Java 8 mit lang ersehnten Neuerungen. Angefangen bei Immer wieder sind Teams anzutreffen, die in beiden Welten ar- der Parallelisierung der Collection-Klassen, über die Anpas- beiten: Java und .NET. Dies hat unterschiedliche Gründe. Manch- sungsmöglichkeiten beim Compilieren, bis hin zu den längst mal gibt es ältere Komponenten in der einen Technologie und nach überfälligen Lambda-Ausdrücken und den daraus resultierenden einem Wechsel wird die andere bevorzugt. Andernfalls müssen Schnittstellenänderungen. Dieser Vortrag stellt die Liste der ge- Teilsysteme plattformunabhängig in Java entwickelt werden und planten Änderungen vor und beschäftigt sich mit den wichtigsten andere Teile werden in .NET implementiert. Möchte man in solch Änderungen etwas mehr im Detail. einer Umgebung ein Application Lifecycle Management-System etablieren und hat vielleicht sogar schon den Team Foundation Server im Auge, stellt sich sofort eine Frage: „Können wir dieses Die Ecke Microsoft-Tool überhaupt verwenden oder hängen wir damit die Das vert.x Framework – modular, polyglott, asynchron Java-Entwickler völlig ab?“ Der Vortrag zeigt, wie beide Welten, Eberhard Wolff adesso AG Java und .NET, mit dem Team Foundation Server vereinbar sind. Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de J34 Außerdem wird dargestellt, wo out-of-the-box Funktionalität aus- reichend ist und wo evtl. noch Erweiterungen notwendig sind. Hochperformante Lösungen werden schon seit einiger Zeit mit asynchronen Mechanismen implementiert. vert.x bietet genau das Lambdas I – und noch viel mehr: Es werden praktisch alle gängigen Sprachen Funktionale Programmierung in Java mit Lambdas auf der JVM unterstützt. Es gibt ein eigenes ausgefeiltes Modul- Angelika Langer System. Insgesamt also ein ganz neuer Ansatz, Anwendungen für die JVM zu implementieren. Der Vortrag gibt eine kurze Einfüh- Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de J31 rung in vert.x und zeigt die hauptsächlichen Vorteile auf.

20 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Spock und Geb in Action Geister, Gurken und Halbmetalle Behavior Driven Development von Web-Applikationen Tools für Web-UI-Acceptance-Tests mit Groovy, Spock und Geb Malte Clasen Christian Baranowski SEITENBAU GmbH Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de Q15 Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de Q12 Automatisierte Unit-Tests und Integrations-Tests gehören inzwi- Der Vortrag zeigt wie Tests für Web-Applikationen mit Spock schen für viele Entwickler zum Alltag. Wir zeigen in einer Live-De- und Geb (WebDriver) effizient und strukturiert erstellt werden mo, wie man darüber hinaus durch Acceptance Tests einer Web- können. Spock stellt für Java- und Groovy-Anwendungen ein be- UI sicherstellt, dass der Benutzer auch genau das Gewünschte eindruckendes OpenSource Test-Framework zur Verfügung. Mit sieht. Mit einer KnockoutJS-basierten Seite führen wir Selenium, Spock können Tests als Spezifikation in Groovy formuliert werden. PhantomJS und SpecFlow vor, um von der Beschreibung in Text- Das OpenSource-Werkzeug Geb bietet eine an JQuery angelehnte form zu C#-Code zu kommen. Abgerundet wird die Demo durch Groovy-basierte domänenspezifische Sprache zur Anbindung der konkrete Hinweise aus der Entwicklerpraxis. Tests an eine Web-Applikation. Mit diesen beiden Werkzeugen lassen sich Tests, gerade auch für dynamische Web-Oberflächen (Rich-Clients), sehr elegant erstellen. Der Vortrag zeigt anhand Die Register Factory einer durchgehenden Live-Demo ganz konkret alle dazu notwen- Industrialisierte Entwicklung von betrieblichen digen Aspekte. Insgesamt bietet der Vortrag eine kompakte und Informationssystemen sehr praxisnahe Einführung in die Erstellung von automatisierten Ramon Anger Capgemini Deutschland GmbH Tests für moderne Web-Applikationen auf Basis von Spock und Dienstag, 3. 9., 20:00 – 21:10 Uhr Di I de Q16 Geb.

Capgemini hat mit und im Auftrag des Bundesverwaltungsamts Schmiedekunst eine Vorgehensweise entwickelt, um Software standardisiert und effizient zu entwickeln: die Register Factory (www.register-facto- Forge Beanstest Plugin für DI in Junit-Tests ry.de). Sie enthält unter anderem standardisierte Referenzarchi- Christian Brandenstein adorsys GmbH & Co. KG tekturen für die Entwicklung betrieblicher Informationssysteme Sandro Sonntag adorsys GmbH & Co. KG jeder Größe. In diesem Vortrag wird der Software-Engineering- Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de Q13 Ansatz der Register Factory als Ganzes vorgestellt und die Open- Source-basierten Architekturen für große Java-Systeme vertieft. Wer heutzutage in JUnit-Tests CDI-Injection verwenden möchte, kommt an JBoss Arquillian nicht vorbei. Arquillian hat sich als Test-Framework bewährt und ist auf dem Wege zum De-Facto- Nachgemessen und angezeigt Standard im Bereich JEE zu werden. Wenn allerdings lediglich Code-Metriken CDI-Injection für JUnit-Tests gebraucht wird, ist die Power von Thomas Haug MATHEMA Software GmbH Arquillian manchmal schon zu viel des Guten. Und für test-driven Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de Q21 development ist das Integrationstest-Tool schon fast zu schwer- gewichtig. Was tun? Wieder Getter und Setter im Produktivcode Die Visualisierung von großen Software-Systemen erlaubt eine schreiben für die Tests? Zum Glück besteht die Möglichkeit im JU- schnelle Orientierung auf wesentliche Bestandteile in Bezug auf nit-Test die Java SE-Version der CDI-Referenzimplementierung Qualität und Wartbarkeit. Code Analyse-Werkzeuge wie z.B. Weld zu starten und so in den Genuss der Dependency Injection MOOSE und CodeCity erlauben die Darstellung vermessener Sys­ im Test zu kommen. Dieser Vortrag will diese Technik vorstellen teme in 2D und 3D. In dieser Session wird praktisch demonstriert sowie das Forge Beanstest Plugin, mit dem die wichtigsten Klas- wie Java- als auch .NET-Systeme analysiert und anschließend in sen fürs eigene kleine Test-Framework generiert werden können. MOOSE und CodeCity visualisiert werden können. Es werden un- terschiedliche Darstellungsformen wie Polymetric View, Class- BluePrint und Städtemetapher in den beiden Werkzeugen gezeigt. Testobjekt: Geschäftsprozess Zusätzlich wird demonstriert, wie statische Analysemodelle mit dy- Qualitätssicherung und Testen von automatisierten namischen Analyseergebnissen, zum Beispiel von Whitebox-Tests, Geschäftsprozessen angereichert werden können, um anschließend als „Hybridmodell“ Tammo van Lessen innoQ Deutschland GmbH in CodeCity bzw. SharpCity dargestellt werden zu können. Daniel Lübke innoQ Schweiz GmbH Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de Q14 Hilfe zur Selbsthilfe Ausführbare Geschäftsprozesse sind Software-Komponenten, die Testautomatisierung im Browser aus Entwicklersicht ebenfalls getestet werden müssen. Dabei gibt es jedoch aufgrund Stefan Hildebrandt consulting.hildebrandt.tk der Modellierung und der Domäne andere Fallstricke und Pro- Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de Q22 bleme. In diesem Vortrag werden wir diese konzeptionell unab- hängig von BPEL und BPMN2 herausarbeiten und vorstellen, als Bei der Software-Entwicklung mit agilen Prozessen und immer auch praktisch mit BPELUnit und Apache ODE demonstrieren. schneller werdenden Releasezyklen bilden gute automatisierte

21 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Tests mit schnellem Feedback das Rückgrat, ohne dass kein Ent- Test-Driven Development – Möge der Test wickler gut arbeiten kann. Bei einer Web-Anwendung gehören dazu zwangsläufig Tests im Browser. Hier sind die Prozesse und beginnen Tools einiger QS-Abteilungen weniger nützlich, da dass Feedback Entwickler vs. Architekt häufig zu spät und in der falschen Form kommt. In diesem Vor- Gregor Biswanger trag wird ein Überblick über die Teststrukturierung beginnend Robert Walter bei Unit-Tests, über einfache Integrationstests hin zu Tests der Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de Q31 ganzen Anwendung aufgezeigt und in den Entwicklungsprozess eingeordnet. Schwerpunkt wird die Entwicklung und Strukturie- Ein neues Software-Projekt beginnt. Das Design der Architektur rung von wartbaren Tests sein, die im Browser ablaufen. steht auch schon. Nun können die hoch motivierten Entwickler starten, ihre Fachbereiche mit Code zu füllen. Doch kommt es Testen, aber richtig schon nach kurzer Zeit zu großen Problemen! Die Anwendung macht an unterschiedlichen Stellen alles andere als das, was ge- Komponententests, Integrationstests und Mocks fordert wurde. Keiner kann am Ende sagen woran das liegt, jeder vernünftig einsetzen versucht seine Position zu verteidigen. Ist das Projekt nun zum David Tanzer Scheitern verurteilt? Wird nun der Fertigstellungstermin noch Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de Q23 weiter nach hinten geschoben, der sowieso schon an der Schmerz- grenze lag?! Nein, durch Test-Driven Development kann dieses Es klingt so einfach: „Red“ – einen Test schreiben, „Green“ – Problem verringert werden. Damit ist nicht die Fehleranfälligkeit Funktionalität entwickeln, „Refactor“ – die interne Struktur des gemeint sondern das rechtzeitige Erkennen, an welcher Stelle es Programms verbessern. Und doch trifft man in der freien Wild- gerade nicht funktioniert wie es soll. Was ist überhaupt TDD? bahn immer wieder auf schlechte Tests, fehlende Tests oder ein Wie kann ich TDD für neue oder bestehende Projekte richtig nut- ungünstiges Verhältnis zwischen UI-, Integrations- und Kompo- zen? Welche Arten von Testmöglichkeiten für heutige Software- nententests. Und auf Entwickler, die sich bei diesem Thema etwas Projekte geboten werden, soll auch verdeutlicht werden. Dabei unsicher sind. Dieser Vortrag will das ändern: Hier erfahren Sie, wird einmal die Theorie und anschließend die Praxis genauestens anhand von praktischen Beispielen, wie Sie Komponententests und durchleuchtet. Dementsprechend werden dabei folgende Punkte Integrationstests sinnvoll einsetzen. Und wie Sie Mocks verwenden besprochen: Unit-Tests, Integrations-Tests, Akzeptanz-Tests und können, um Tests einfacher und übersichtlicher zu entwickeln. Mocking.

XLS-based Testing! Unit- und Integrationstests in Excel definieren Akzeptanztests und Regression Komplexe Schnittstellen und Prozesse mit FitNesse testen Matthias Reining RGI Deutschland GmbH Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de Q24 Frank Ganske MATHEMA Software GmbH Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de Q32 Unit-Tests sind für jeden Entwickler im agilen Umfeld selbstver- ständlich. Nicht selten ist dies auch daher begründet, dass zum Wenn eine Zertifizierung mit hohem Aufwand verbunden ist, Teil auch Kunden eine Testabdeckung von über 80% in den Ab- werden permanente Tests oft zu reinen Stichproben. Durch das nahmekriterien fordern. In diesem Vortrag wird gezeigt, wie man gezeigte Vorgehen kann gesichert werden, dass der bestehende den Prozess der Testfallerstellung Richtung Excel verlagern kann Zustand erhalten bleibt, wenn sich das System in Teilen ändert. und sich somit auch von Nicht-Entwicklern (bspw. dem Fachbe- reich) Unterstützung einholen kann. Dabei werden verschiedene Möglichkeiten und Java-Frameworks präsentiert, wie Excel in Sichere Software den Testprozess integriert werden kann. Um die Mächtigkeit xls- Vermeidung von Angriffspunkten bei der basierender Tests zu demonstrieren, sind viele kleine Beispiele in Software-Entwicklung den Vortrag integriert. Andreas Vombach Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do I de Q33 Tut er’s oder tut er’s nicht Wie ich Web-Apps richtig testen kann Aufzeigen von Risiken bei der Entwicklung, Tools zur Gefähr- dungserkennung und bekannte best practices. Stephan Müller open knowledge GmbH Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de Q25

Automatisierte Tests gehören zum Standard in der Software-Ent- Selenium WebDriver wicklung. Aber welche Technik bietet sich für welchen Test an? Automatisches Testen von Web-Apps auf gängigen Browsern Kann ein Service nur in der Laufzeitumgebung getestet werden, Walery Strauch an welchen Stellen setze ich Mocks ein, sind Datenbank-Tests Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de Q34 sinnvoll, was ist ein Arcyl-Box-Test und wie teste ich JavaScript? Der Vortrag zeigt am Beispiel einer Web-Anwendung mit welchen Selenium ist eine Software zum Testen von Web-Anwendungen. Werkzeugen eine hohe und sinnvolle Testabdeckung über alle La- Die Tests werden nativ in gängigen Browsern ausgeführt (Firefox, yer erzielt werden kann. IE, Chrome, Safari, Opera, Android).

22 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Dieser Vortrag schafft einen Einstieg in die Thematik. Es wird Feedback und konkrete Beispiele wie Visual Studio das Entwick- gezeigt, wie man solche Tests schreibt und welche Möglichkeiten lungsteam von der Kommunikation der Anforderungen über die man hierfür hat. Dabei werden auch weiterführende Themen, wie Entwicklung und das Testing bis hin zum Deployment der Soft- die Ausführung in headless-Systemen (z.B. auf einer Linux EC2- ware unterstützt. Instanz), Selenium Grid oder aber die API, welche die Nutzung durch andere Sprachen wie .NET, Ruby oder Python ermöglicht, durchgenommen. Zukunftssicher Konkurrenzfähig in die Zukunft Macht der Gewohnheit David Tanzer Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de V15 Usus – ein Werkzeug zur Verbesserung der Code-Qualität

Nicole Rauch msgGillardon AG Wie können Unternehmen dafür sorgen, auch in Zukunft konkur- Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de V12 renzfähig zu sein? Was können Teams tun um konkurrenzfähige Produkte zu entwickeln? Wie können wir als Entwickler dafür sor- Gewohnheiten bestimmen unser Handeln. Dies gilt auch beim gen, dass wir auch noch in einigen Jahren auf dem Arbeitsmarkt Entwickeln. Der Vortrag möchte ein Werkzeug vorstellen, das begehrt sind? Um diese drei Fragen zu beantworten, analysiert uns quasi in Echtzeit hilft gute Gewohnheiten beizubehalten und der Referent in diesem Vortrag aktuelle Trends und erklärt, was schlechte Gewohnheiten abzulegen – und das direkt im Work- das für die Zukunft bedeuten könnte. Außerdem skizziert er mög- space, während wir arbeiten. Bei dem Werkzeug handelt es sich liche Antworten auf diese Fragen. Und natürlich wird, gerade bei um das Project Usus, ein Eclipse-Plugin zur Analyse von Java- diesem Thema, auch die Diskussion nicht zu kurz kommen. Code. Usus ist kein Metrik-Tool im klassischen Sinne, sondern es versteht sich als ein „Programmierer-Kollege“, der uns beim Arbeiten über die Schulter schaut und uns freundlich darauf hin- I, Robot weist, wenn wir im Code irgendwo weniger sorgfältig gearbeitet Programmiersession mit LEGO Mindstorms (Teil 1) haben als sonst. Eine weitere Stärke von Usus ist die Betrachtung Jan Leßner arvato IT services von Beziehungen zwischen Klassen. Hierbei werden Paketzyklen Dienstag, 3. 9., 20:00 – 21:10 Uhr Di I de analysiert und durch die beteiligten Pakete bzw. Klassen graphisch V16 dargestellt, die Anzahl der Zusammenhangskomponenten inner- Wer den ganzen Tag viel Neues gehört hat, kann Abends auch mal halb von Paketen untersucht, oder auch Klassen gefunden, die was Neues ausprobieren: die Programmierung von LEGO Mind- nirgendwo benutzt werden. Durch die Quasi-Echtzeit-Darstellung storm Robotern mit Java. Das Toolkit LEJOS ermöglicht das ohne kann man die Effekte von Veränderungen (z.B. Verschieben einer Einstiegshürden und inzwischen sehr komfortabel in Eclipse, in- Klasse) unmittelbar beobachten, ohne ein separates Analysewerk- klusive Debugging und extrem hohem Suchtfaktor. Für Entdecker zeug bemühen zu müssen. Neugierige können sich hier schon vor- steht an zwei Abenden eine Reihe vormontierter Bots zur Verfü- ab über Usus informieren: http://projectusus.org. gung, die z. B. Aufgaben aus den Rescue-Wettbewerben des all- jährlich stattfindenden Robocup-Turniers erfüllen können. Volle Fahrt voraus! Continuous Delivery praktisch Unabhängigkeitserklärung Dr. Halil-Cem Gürsoy adesso AG Abhängigkeiten managen mit Degraph Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de V13 Jens Schauder T-Systems onsite services GmbH Continuous Delivery ist zur Zeit in aller Munde und in diversen Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de V21 Fachartikeln und Büchern wurden die zugrundeliegenden Kon- zepte vielfältig erläutert. Aber wie setzt man nun solche Konzepte Wer mit offenen Augen Software entwickelt (und alles andere er- in die Wirklichkeit um? Welche Werkzeuge sind notwendig, was schwert die Sache ungemein) merkt schnell, dass Abhängigkeiten muss beachtet werden? In dieser Session implementieren wir eine zwischen verschiedenen Teilen einer Anwendung ein schier un- Continuous Delivery Build Pipeline und setzen dabei Werkzeuge erschöpflicher Quell von Problemen sind. Die Antwort auf diese wie Jenkins, Puppet und Vagrant ein. Probleme lautet, Abhängigkeiten von Anfang an unter Kontrolle zu behalten. Zwischen Artefakten (d. h. z. B. Jar-Files) erledigt dies in einem gewissen Umfang das Build-Tool der Wahl. Aber wie Überlebensfähig sieht es mit Abhängigkeiten zwischen Packages aus? Hier geht oft Der moderne App Lifecycle alles wie Kraut und Rüben durcheinander. Viele Tools bieten die Artur Speth Microsoft Deutschland GmbH Möglichkeit Warnungen zu produzieren, wenn z. B. zyklische Ab- Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de V14 hängigkeiten entstehen. Aber wenn es darum geht solche Zyklen aufzulösen, in einem Projekt welches dutzende davon enthält, ist Erstklassige Software zu erstellen erfordert mehr als Top Entwick- die Unterstützung minimal. In diesem Vortrag wird demonstriert, ler. Wichtig ist es die Stakeholder in die Fertigung der Software wie Abhängigkeiten aussehen sollten um die langfristige Wart- einzubeziehen, damit das Ergebnis auch wirklich seinen Vorstel- barkeit von Anwendungen zu unterstützen. Es wird auch gezeigt lungen entspricht. In diesem Vortrag geht es um kontinuierliches wie sie oft in der Realität aussehen. Dafür werden Antipattern

23 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

identifiziert und beschrieben, wie man von Letzterem zu Erste- ganze Reihe Muster in dem Bereich, die bei verblüffend geringem rem kommt. Dabei wird für die Visualisierung das OpenSource- Implementierungsaufwand erstaunlich viel Nutzen bringen. Ein Werkzeug Degraph genutzt, das auf ganz bensondere Weise die paar dieser Muster möchte ich in dieser Session vorstellen und Optionen zum Aufbrechen von ungewünschten Abhängigkeiten anhand von konkreten Code-Beispielen erläutern, wie man sie im- aufzeigt. plementieren kann. Ein kleiner Schritt für Sie als Entwickler, aber ein Riesensprung für stabilere Systeme in der Produktion. Lernen Sie, wie man mit einfachen Mitteln einen Administrator glücklich You are not Facebook or Google? machen kann. Warum Sie sich trotzdem mit Big Data beschäftigen sollten Think outside the box Kai Wähner Talend Kreativitätstechniken in agilen Software-Projekten Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de V22 Heiko Spindler Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi de Big Data stellt einen bedeutenden Paradigmenwechsel für Unter- I V25 nehmen dar. Dieser Vortrag geht über die bekannten Beispiele Agile Projekte sind im Mainstream und Alltag vieler Unterneh- von großen Firmen wie Facebook oder Google mit Millionen von men angekommen. Endlich haben die Teams viel mehr Freiheiten Nutzern hinaus. Stattdessen wird das Paradigma Big Data und um effizient zu arbeiten. Im nächsten Schritt sollte die Freiheit der dadurch kommende technologische Wandel für Ihr Unter- auch konsequent und effizient genutzt werden, um die Herausfor- nehmen erläutert. Es wird an Hand von mehreren Anwendungs- derungen besser als in der Vergangenheit zu meistern. Und gute fällen aufgezeigt, wie große Datenmengen auch kleinen und mit- Lösungsideen haben wir doch alle. Vielleicht sind wir aber viel telständischen Unternehmen neue Geschäftsmöglichkeiten (und öfter in unseren üblichen Denkmustern gefangen und trampeln Risiken) bringen werden. alte Pfade aus? Mit den richtigen Techniken können Sie Ihre Kre- Erfahren Sie mehr über die Lösungsmöglichkeiten für die ein- ativität verbessern und die Chance auf neue Lösungen erhöhen. zigartigen Herausforderungen von Big Data. Erfahren Sie wie Da- Dieser Beitrag stellt Techniken für die Ideenfindung vor und zeigt ten aus verschiedenen Datenbanken und Anwendungen in einem den Einsatz speziell für agile Teams im Rahmen der Software- großen Daten-Cluster für die weitere Analyse integriert werden. Entwicklung. Ein interaktiver Teil vermittelt Tipps und Tricks für Erfahren Sie, wie Sie relevante Anwendungsfälle für Ihr Unter- die praxisnahe Durchführung der Techniken jenseits vom allseits nehmen umsetzen, indem Sie OpenSource-Frameworks einset- bekannten Brainstorming. zen, welche die Verarbeitung von großen Datenmengen vereinfa- chen und dabei die Kosten gering halten. I, Robot Der polyglotte Architekt Programmiersession mit LEGO Mindstorms (Teil 2) Willkommen in Babylon Jan Leßner arvato IT services Frank Pientka MATERNA GmbH Mittwoch, 4. 9., 20:00 – 21:10 Uhr Mi I de V26 Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de V23 Wer den ganzen Tag viel Neues gehört hat, kann Abends auch mal Bis vor wenigen Jahren entwickelte die IT den größten Teil ihrer was Neues ausprobieren: die Programmierung von LEGO Mind- Software in nur einer Programmiersprache und mit wenigen Ar- storm Robotern mit Java. Das Toolkit LEJOS ermöglicht das ohne chitekturstilen für eine Plattform. Heute muss ein Architekt meh- Einstiegshürden und inzwischen sehr komfortabel in Eclipse, in- rere Sprachen sprechen und oft mehrere Projekt-Hüte aufsetzen, klusive Debugging und extrem hohem Suchtfaktor. Für Entdecker da hier der „One-Size-Fit‘s-All“-Ansatz nur selten passt. Neben steht an zwei Abenden eine Reihe vormontierter Bots zur Verfü- der Sprache des Kunden muss der Architekt auch lernen die Spra- gung, die z. B. Aufgaben aus den Rescue-Wettbewerben des all- che der Entwickler und Projektleiter zu sprechen. jährlich stattfindenden Robocup-Turniers erfüllen können.

Wir bauen uns ein fehlertolerantes System Identitätskrise Muster für Fehlertoleranz einfach umgesetzt Zeit, Zustand und das Reinheitsgebot Uwe Friedrichsen codecentric AG Andreas Flierl imbus AG Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de V24 Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de V31

Hochverfügbare Systeme und Scale-Out-Systeme benötigen ein Kann das Programmieren von der Von-Neumann-Maschine be- fehlertolerantes Anwendungsdesign, da die gewohnten Fehlertole- freit werden? 35 Jahre nachdem Jo h n Ba c k u s diese Frage stellte, ranz-Mechanismen auf der Infrastrukturebene nicht mehr verfüg- hat sich nur oberflächlich viel verändert. Die am weitesten ver- bar sind oder nicht ausreichen. Entsprechend müssen sie auf der breiteten Paradigmen zeugen immer noch unverkennbar von ih- Anwendungsebene implementiert werden. Aber, Fehlertoleranz ren jetzt schon altertümlich anmutenden Wurzeln: ein Computer- gilt als eine äußerst komplizierte und herausfordernde Domäne. programm verändert seine Welt, d. h. den Speicher, direkt. Das Oje! Müssen wir jetzt Panik bekommen? Okay, fehlertolerantes gedankliche Modell der Maschine sickert also wie durch ein Leck Anwendungsdesign als Domäne ist nicht trivial, aber es gibt eine über die konventionellen Programmiersprachen in die Algorith-

24 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

men und deren Implementierung. Genauso wie für den Menschen NoSQL hoch drei jedoch das direkte Arbeiten auf der Ebene des Maschinenmodells 3 NoSQL Datenbanken in 70 Minuten zum Lösen der meisten Probleme ziemlich unangemessen ist, er- Eberhard Wolff adesso AG höht der undifferenzierte Umgang mit Zeit und Zustand die Kom- Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do de plexität der Software-Systeme völlig unnötig und macht diese so I V33 oft nur noch schwer beherrschbar. Der Vortrag möchte das Pro- NoSQL-Datenbanken gibt es wie Sand am Meer. Jede Datenbank blem von verschiedenen Seiten beleuchten und anhand von Code- deckt einen besonderen Einsatzkontext ab. Dieser Vortrag zeigt Beispielen in Scala Lösungsansätze vorstellen und so jeder und drei Beispiele: Der Document-Store MongoDB kommt auch mit jedem, die bzw. der sich nicht scheut, die Komfortzone etablierter großen Datenmengen zurecht und erlaubt einen effektiven Um- Techniken zu verlassen, etwas Handwerkszeug, Entscheidungs- gang mit komplexen Datenstrukturen. Redis scheint auf den er- hilfen und Anregungen für den Programmieralltag mitgeben. sten Blick ein einfacher Key/Value-Store zu sein – bietet aber Fea- tures und Möglichkeiten, die weit über klassische Datenbanken Maßnahmen gegen das Code-Chaos in hinausgehen. Und schließlich vervollständigt elasticsearch das Standard-Software Trio: Eigentlich eine Suchmaschine, aber in Wirklichkeit ein kom- plexer Datenspeicher. Erweiterung von Standard-Software um kundenindividuelle Funktionalitäten Martin Aschoff AGNITAS AG Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de V32 ALM konkret Hat man es endlich geschafft, dass aus einem individuellen Soft- ware-Projekt für einen einzelnen Kunden ein Software-Produkt Die Aspekte des Application Lifecycle Management für mehrere Kunden geworden ist, so ist die Freude beim Entwick- entdecken, verstehen und nutzen ler zunächst groß. Sobald die Software jedoch von den Unterneh- Sebastian Rölz conplement AG men intensiv genutzt wird, regt sich bei den ersten Anwendern Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de V34 der Wunsch nach individuellen Funktionserweiterungen. Auf der einen Seite will man als Entwickler den Wünschen dieser Kunden Einige Software-Hersteller schaffen es bereits alle drei bis sechs natürlich gerne nachkommen, auf der anderen Seite möchte man Wochen neue Versionen zu releasen. Google Chrome und Micro- aber nicht in die Projektzeit zurückfallen und für jeden Kunden softs Team Foundation Services sind nur zwei Beispiele. Aber wie eine eigene Software-Variante weiterentwickeln. Packt man dage- gelingt es diesen Teams ständig neue Features zu veröffentlichen, gen alle Erweiterungswünsche in eine gemeinsame Code-Basis, so ohne dass die Qualität leidet oder der Testaufwand durch die De- wird diese unangenehm aufgebläht. Wie lassen sich individuelle cke schießt? Der Vortrag zeigt, wie sich agile Teams diesem Ziel Kundenwünsche funktional in die Code-Basis und organisatorisch Schritt für Schritt nähern können. Die ersten Etappen mit Code- in den Release-Prozess einer Standard-Software integrieren? Die- Verwaltung und Integration-Builds sind oftmals schon etabliert. ser Vortrag stellt Lösungsansätze von der Nutzung von Konfigura- Die nächsten Schritte bedürfen einer Erweiterung des Repertoires tionsdateien und -Tabellen über Interfaces und Plugins bis hin zu um agile Prozesse, Branching-Konzepte und automatisierte Tests. kompletten Komponenten-Architekturen vor und beleuchtet die Experten-Tipps für automatisiertes Deployment, Collaboration jeweiligen Stärken und Schwächen der verschiedenen Ansätze auf Tooling und Diagnose runden den Talk ab und inspirieren zu Basis der Erfahrungen des Referenten aus der Praxis. einem vollständigeren ALM.

25 Programm Herbstcampus 2013 – Wissenstransfer par excellence Dienstag, 3. September Herbstcampus

Zeit .NET HTML & Co. Java Qualität Verschiedenes 09:30 Aller Anfang … – Begrüßung und Organisatorisches 10:00 H5 Das Herbstcampus-Team 10:00 K10 In den Fängen des Wirtschaftsdarwinismus – Agilität ist nur ein Anfang 10:50 H5 Uwe Friedrichsen Pause N12 Einheitsrahmenwerk H12 Geht nicht gibt’s nicht! J12 Neues Gesicht Q12 Spock und Geb in Action V12 Macht der Gewohnheit 11:20 Entity Framework 6 Einsatz von HTML5-Features Neues und Erwähnenswertes Behavior Driven Development Usus – ein Werkzeug – Thomas Haug im Jetzt aus JavaServer Faces 2.2 von Web-Applikationen mit zur Verbesserung der 12:30 Yann Massard Michael Kurz Groovy, Spock und Geb Code-Qualität H1 H2 H5 H3 Christian Baranowski H4 Nicole Rauch

Mittagessen N13 Fundamental H13 Hallo JavaScript J13 Ausgeswingt Q13 Schmiedekunst V13 Volle Fahrt voraus! 14:00 Neuheiten in der Base Class Eine Einführung in JavaScript JavaFX 2.0 Forge Beanstest Plugin für DI Continuous Delivery praktisch – Library mit .NET 4.5 Frank Goraus Sascha Groß in Junit-Tests Dr. Halil-Cem Gürsoy 15:10 Rainer Stropek Christian Brandenstein et al. H1 H2 H5 H3 H4

Pause N14 Loser Verbund H14 Aber eben lief das doch noch! J14 Unter Beobachtung Q14 Testobjekt: Geschäftsprozess V14 Überlebensfähig 15:40 Trennung von User Interface HTML5 Testing mit Reactive Programming auf Qualitätssicherung und Der moderne App Lifecycle – & Code Behind mit Model View Jasmine BDD der JVM Testen von automatisierten Artur Speth 16:50 ViewModel für Einsteiger Alexander Schwartz Joachim Hofer Geschäftsprozessen H1 Christoph Wentzke H2 H5 H3 Tammo van Lessen et al. H4

Pause N15 Echt jetzt ?! H15 JavaScript on Steroids J15 Ein Blick ins Aquarium Q15 Geister, Gurken und Halbmetalle V15 Zukunftssicher 17:20 Echtzeitanwendungen für das Eine Einführung in Was gibt‘s Neues in Tools für Konkurrenzfähig in die Zukunft – Web mit SignalR TypeScript Bean Validation 1.1 and CDI 1.1? Web-UI-Acceptance-Tests David Tanzer 18:30 Tobias Krügel Rainer Stropek Hardy Ferentschik Malte Clasen H1 H2 H5 H3 H4

Abendessen J16 Himbeeren im Herbst Q16 Die Register Factory V16 I, Robot 20:00 Embedded JavaFX auf dem Industrialisierte Entwicklung Programmiersession mit – Raspberry Pi von betrieblichen LEGO Mindstorms (Teil 1) 21:10 Jens Deters Informationssystemen Jan Leßner H4 H3 Ramon Anger H5

26 Programm Herbstcampus 2013 – Wissenstransfer par excellence Mittwoch, 4. September Herbstcampus

Zeit .NET HTML & Co. Java Qualität Verschiedenes

08:30 K20 Politische AGILtation Scrum in der Staatsführung – 9:20 H5 Udo Wiegärtner Pause N21 App in die Cloud! H21 Beschleunigung J21 TomEE Q21 Nachgemessen V21 Unabhängigkeitserklärung 9:40 Daten-Backends in der Cloud X ways to improve your web Was braucht man mehr für Code-Metriken Abhängigkeiten managen mit – und dessen Integration application’s performance JavaEE? Thomas Haug Degraph 10:50 Peter Kirchner Eduard Tudenhöfner Frank Pientka Jens Schauder H1 H2 H5 H3 H4

Pause N22 C# als Skriptsprache H22 Meteor vor dem Einschlag J22 JavaFX – Lessons Learned? Q22 Hilfe zur Selbsthilfe V22 You are not Facebook or Google? 11:20 Rapid Prototyping Ein flexibles Ein Vergleich mit WPF(X) Testautomatisierung im Warum Sie sich trotzdem mit – mit scriptcs JavaScript Framework Philipp Dörfler Browser aus Entwicklersicht Big Data beschäftigen sollten 12:30 Fabian Deitelhoff Heiko Spindler Stefan Hildebrandt Kai Wähner H1 H2 H5 H3 H4

Mittagessen N23 Geschichtet, nicht gerührt? H23 Offline. Na und? J23 Verflixte(?) Sieben Q23 Testen, aber richtig V23 Der polyglotte Architekt 14:00 Einführung in die N-Layer Strategien für offlinefähige Ein Blick auf den JBoss AS 7 Komponententests, Willkommen in Babylon – Domain-Oriented Architecture Applikationen in HTML5 – von JBoss Modules bis Integrationstests und Mocks Frank Pientka 15:10 Tobias Krügel Stephan Hochdörfer Clustering vernünftig einsetzen H1 H2 H5 Werner Eberling H3 David Tanzer H4

Pause N24 Roslyn in Visual Studio nutzen H24 Web-Anwendungen? Aber sicher! J24 E-Neuauflage Q24 XLS-based Testing! V24 Wir bauen uns ein 15:40 Visual Studio Erweiterungen Sicherheitsprobleme in Die Java Enterprise Edition 7 Unit- und Integrationstests fehlertolerantes System – mit Roslyn effizient und einfach Web-Anwendungen und GlassFish in Excel definieren Muster für Fehlertoleranz 16:50 implementieren (und wie man sie vermeidet) Wolfgang Weigend Matthias Reining einfach umgesetzt H1 Fabian Deitelhoff H2 Dr. Stefan Schlott H5 H3 H4 Uwe Friedrichsen

Pause N25 Himmlische Nachrichten! H25 Hybride Schönheit J25 Stapelweise Kaffeesäcke Q25 Tut er’s oder tut er’s nicht V25 Think outside the box Service Bus für Windows Server 17:20 – Cloud-Technologien nun auch Die (Wieder-)Entdeckung Batch-Verarbeitung mit Wie ich Web-Apps richtig Kreativitätstechniken in agilen – im eigenen Unternehmensnetz- des Java/JavaScript Java EE 7 testen kann Software-Projekten 18:30 werk Web-Frameworks Echo Thomas Much Stephan Müller Heiko Spindler H1 Peter Kirchner H2 Christof May et al. H5 H3 H4

Abendessen J26 Weltoffen V26 I, Robot 20:00 Einsatz des TFS 2012 Programmiersession mit – in heterogenen LEGO Mindstorms (Teil 2) 21:10 .NET/Java-Umgebungen Jan Leßner H4 Thomas Rümmler H5

27 Programm Herbstcampus 2013 – Wissenstransfer par excellence Donnerstag, 5. September Herbstcampus

Zeit .NET HTML & Co. Java Qualität Verschiedenes 08:30 K30 Dies & das – Allerlei in aller Kürze 09:20 H5 Michael Wiedeking et al. Pause N31 From Zero to Azure Hero H31 Zur Hölle mit Responsive! J31 Lambdas I Q31 Test-Driven Development V31 Identitätskrise Professionelle Ein Streitgespräch Funktionale Programmierung – Möge der Test beginnen Zeit, Zustand und das in Java mit Lambdas 09:40 Cloud Entwicklung mit Florian Hirsch Entwickler vs. Architekt Reinheitsgebot – Windows Azure und C# Angelika Langer Gregor Biswanger et al. Andreas Flierl 10:50 Robert Eichenseer H1 H2 H5 H3 H4

Pause N32 Das [C]Kreuz mit den Lambdas H32 Script Factory Method Builder J32 Lambdas II Q32 Akzeptanztests und Regression V32 Maßnahmen gegen das Code- Eine erweiterbare generisch- Fortgeschrittene Techniken Funktionale Erweiterungen Komplexe Schnittstellen und Chaos in Standard-Software 11:20 parallele Suche mit C#-PLinq mit JavaScript der Java-Collections Prozesse mit FitNesse testen Erweiterung von Standard- – (inkl. Java 8 Pedant) Frank Goraus Klaus Kreft Frank Ganske Software um kundenindividuelle 12:30 Dr. Ulrich Hilburger Funktionalitäten Martin Aschoff H1 H2 H5 H3 H4

Mittagessen N33 Flaschenhälse eliminieren H33 J33 Schwarze 8 Q33 Sichere Software V33 NoSQL hoch drei Performance Optimierung Web-Applikationen mit Änderungen in Java 8 Vermeidung von Angriffspunkten 3 NoSQL Datenbanken 14:00 von .NET-Applikationen AngularJS Michael Wiedeking bei der Software-Entwicklung in 70 Minuten – Markus Müller Joachim Weinbrenner Andreas Vombach Eberhard Wolff 15:10 H1 H2 H5 H3 H4

Pause N34 Dynamisch und gefährlich? H34 Die ultimative Herausforderung J34 Die Ecke Q34 Selenium WebDriver V34 ALM konkret C# Dynamics in Responsive Webdesign und Das vert.x Framework Automatisches Testen von Web- Die Aspekte des Application 15:40 freier Wildbahn Parallax Scrolling – modular, polyglott, asynchron Apps auf gängigen Browsern Lifecycle Management – Timothée Bourguignon Uwe Frieser Eberhard Wolff Walery Strauch entdecken, verstehen und nutzen 16:50 Sebastian Rölz H1 H2 H5 H3 H4

Kleine Pause 17:00 Das Beste kommt zum Schluss – Verabschiedung 17:15 H5 Das Herbstcampus-Team

28 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Referenten

Ramon Anger Windows 8 App“ und „WPF 4.5 und Silverlight 5“ bei Addison- Capgemini Deutschland GmbH Wesley von video2brain. Er ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Ramon Anger arbeitet als technischer Architekt Group). im Bereich Public der Capgemini Deutschland GmbH. Er beschäftigt sich insbesondere mit neuen Technologien, Software-Architektur und Test-Driven Development – Möge der Test beginnen Entwickler vs. Architekt agilen Methoden. Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de Q31

Die Register Factory Industrialisierte Entwicklung von betrieblichen Informationssystemen Dienstag, 3. 9., 20:00 – 21:10 Uhr Di I de Q16 Timothée Bourguignon MATHEMA Software GmbH Timothée Bourguignon ist als Senior Developer Martin Aschoff für die MATHEMA Software GmbH tätig. Sein AGNITAS AG Spezialgebiet ist die Desktop- und Web-Pro- Martin Aschoff ist Gründer und Vorstand der grammierung mit dem .NET-Framework. Dane- AGNITAS AG, die Unternehmens-Software für E- ben beschäftigt er sich mit den Neuerungen der Mail-Marketing und Marketing-Automation .NET-Welt und deren Communities. Als Agilist entwickelt und als Cloud-Dienstleister betreibt. liegt sein Schwerpunkt auf agilen Methoden, Er ist außerdem Maintainer der OpenSource- guter Teamarbeit und hoher Arbeitsqualität. Hierbei setzt er ins- Software „OpenEMM“, die mit über 400.000 besondere auf die Philosophie des Software Craftmanships. Downloads zu den erfolgreichsten OpenSource- Projekten im Bereich Unternehmens-Software zählt. Er betreibt Dynamisch und gefährlich? einen OpenSource-Blog unter os-inside.de, ist Coach der Open- C# Dynamics in freier Wildbahn Source Business Foundation OSBF, Autor diverser Fachbücher Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de N34 und begeisterter Triathlet.

Maßnahmen gegen das Code-Chaos in Standard-Software Erweiterung von Standard-Software um kundenindividuelle Funktionalitäten Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de Christian Brandenstein V32 adorsys GmbH & Co. KG Christian Brandenstein ist Germanist und arbei- Christian Baranowski tet seit vielen Jahren als Software-Entwickler. Er SEITENBAU GmbH ist Mitarbeiter seit der ersten Stunde der adorsys Christian Baranowski (Dipl.-Inform. FH) stu- GmbH & Co. KG. Sein besonderes Interesse gilt dierte Software Engineering an der HTWG Kon- dem Test Driven Development und CDI. stanz. Seit 2007 arbeitet er für die Se i t e n b a u GmbH in Konstanz und ist dort verantwortlich für Software-Qualitätssicherung. Seine Rolle bei Schmiedekunst Se i t e n b a u versteht er als agiler Entwickler und Forge Beanstest Plugin für DI in Junit-Tests Tester. Sein Schwerpunkt liegt auf agiler Ent- Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de Q13 wicklung mit Java, OSGi und Groovy.

Spock und Geb in Action Behavior Driven Development von Web-Applikationen mit Groovy, Spock und Geb Malte Clasen Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de Q12 Malte Clasen ist promovierter Software-Inge­ nieur und seit über 10 Jahren als Entwickler tä- Gregor Biswanger tig. Sein Schwerpunkt liegt auf agiler Software- Gregor Biswanger (Microsoft MVP für Client App Entwicklung mit .NET. Sie erreichen ihn via Dev) ist freier Consultant, Trainer, Autor und http://malteclasen.de. Speaker. Seine Schwerpunkte liegen im Bereich der .NET-Architektur, XAML und agilen Prozes- sen. Er veröffentlichte vor kurzem seine DVD´s Geister, Gurken und Halbmetalle mit Video-Trainings zum Thema „Windows Tools für Web-UI-Acceptance-Tests Store Apps mit XAML und C#“, „Meine erste Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de Q15

29 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Fabian Deitelhoff Werner Eberling Twainsoft MATHEMA Software GmbH Fabian Deitelhoff arbeitet seit den ersten Versi- Werner Eberling ist als Principal Consultant und onen mit dem .NET-Framework und befasst sich Trainer für die MATHEMA Software GmbH in Er- schwerpunktmäßig mit der Entwicklung von langen tätig. Seit 1999 beschäftigt er sich mit ver- Visual Studio-Erweiterungen, der Socket-Pro- teilten Systemen, mit Fokus auf CORBA und der grammierung und mit der Analyse und Beschrei- Java EE. Sein aktuelles Steckenpferd ist die An- bung von verschiedenen OpenSource-Frame- wendungsentwicklung für mobile Endgeräte bzw. works aus dem .NET-Umfeld. Nach seinem deren Anbindung an Enterprise Systeme. Neben Bachelorstudium der angewandten Informatik studiert er derzeit seiner Projekttätigkeit hält Werner Eberling Technologie-Trainings den Masterstudiengang Informatik mit dem Schwerpunkt Biome- in Deutschland und der Schweiz. Er ist Autor des Buches „Enter­prise dizinische Informatik an der Hochschule Bonn-Rhein-Sieg in JavaBeans 3.1 – Das EJB-Praxisbuch für Ein- und Umsteiger“. Sankt Augustin. Beruflich ist er als freier Autor für Fachmagazine, als Pluralsight-Autor und als Sprecher auf Konferenzen im .NET- Mind the Gap Umfeld tätig. Sie erreichen ihn über seinen Blog www.fabiandei- Multiplattformentwicklung mobiler Anwendungen mit PhoneGap und telhoff.de, per E-Mail unter [email protected] oder auf jQuery Mobile Twitter als @Fdeitelhoff. Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T03 Verflixte(?) Sieben C# als Skriptsprache Ein Blick auf den JBoss AS 7 – von JBoss Modules bis Clustering Rapid Prototyping mit scriptcs Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de J23 Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de N22 Roslyn in Visual Studio nutzen Robert Eichenseer Visual Studio Erweiterungen mit Roslyn effizient und einfach imple- Microsoft Deutschland GmbH mentieren Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi de N24 Robert Eichenseer ist als Technical Evangelist bei der Microsoft Corp. beschäftigt und ist seit langem in der Entwicklung von Applikationen auf Basis der Microsoft-Technologien tätig. Auf- grund seiner Arbeit in internationalen Projekten Jens Deters kann er Anforderungen heutiger Software-Ent- Empic GmbH wicklungen erfolgreich umsetzen und steuern. Jens Deters arbeitet als Software-Entwickler bei Die Zuordnung betriebswirtschaftlicher Prozesse zu passenden der EMPIC GmbH in Erlangen. Seine Schwer- Entwicklungsthemen bzw. Technologien zeichnet ihn hierbei aus. punkte sind die Benutzerschnittstellen von EM- PIC-EAP (Java EE Rich-Client und Web-Client). From Zero to Azure Hero Daneben beschäftigt er sich intensiv mit JavaFX Professionelle Cloud Entwicklung mit Windows Azure und C# und veröffentlicht als JavaFX-Community Mit- Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de N31 glied regelmäßig Beiträge zum Thema in seinem Blog unter www.jensd.de. Sein besonderes Interesse gilt dabei embedded JavaFX auf dem Raspberry Pi. Hardy Ferentschik JBoss / Red Hat Himbeeren im Herbst Hardy Ferentschik ist Software-Entwickler bei Embedded JavaFX auf dem Raspberry Pi JBoss und Mitglied des Hibernate Teams. Er lei- Dienstag, 3. 9., 20:00 – 21:10 Uhr Di I de J16 tet das Hibernate Validator-Projekt und ist auch in Hibernate ORM und Hibernate Search, sowie weiteren JBoss-Projekten aktiv. Hardy hält oft JUG-Vorträge und präsentiert auf Konferenzen Philipp Dörfler wie Jokus, Öredev oder JDD. imbus AG Ein Blick ins Aquarium Philipp Dörfler ist Software-Entwickler beim Was gibt’s Neues in Bean Validation 1.1 and CDI 1.1? Qualitätssicherungs- und Testspezialisten imbus Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de J15 und beschäftigt sich dort hauptsächlich mit Java EE und Rich Clients in Swing. Seit September 2011 studiert er außerdem Medieninformatik an Andreas Flierl imbus AG der Georg-Simon-Ohm Hochschule in Nürnberg. Zu seinen Interessensgebieten zählen u. a. die Andreas Flierl ist Software-Entwickler beim Programmiersprache Scala, das Gestalten moderner grafischer Qualitätssicherungs- und Testspezialisten imbus Benutzeroberflächen und Agilität im Entwicklungsprozess. (www.imbus.de), wo er sich – nebst Enterprise- Java und Rich-Clients auf Basis von Swing – seit JavaFX – Lessons Learned? 2008 mit der Programmiersprache Scala be- Ein Vergleich mit WPF(X) schäftigt, für die er sich auch im OpenSource- Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de J22 Bereich engagiert. Sein besonderes Interesse gilt

30 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus den Prinzipien der „clean code“-Craftsmanship-Bewegung, Kom- Frank Goraus munikation, Agilität und stetiger Evolution von Entwicklungspro- MATHEMA Software GmbH zessen. Frank Goraus ist Senior Developer bei der MA- Identitätskrise THEMA Software GmbH in Erlangen. Seit 2006 Zeit, Zustand und das Reinheitsgebot beschäftigt er sich bereits mit der Entwicklung Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de V31 von JEE-Anwendungen, u. a. in Verbindung mit einem Portal-Server. Seine Liebe zum Detail verwirklicht er mit seinen Web-Design-Kennt- nissen. In seiner Freizeit beschäftigt er sich au- Uwe Friedrichsen ßerdem mit Android-Entwicklung, verschiedensten Web-Fra- codecentric AG meworks und einem eigenen Projekt für eine Sammlungsver- waltung. Uwe Friedrichsen ist ein langjähriger Reisender in der IT-Welt. Als CTO der codecentric AG darf Hallo JavaScript er seine Neugierde auf neue Ansätze und Kon- Eine Einführung in JavaScript zepte sowie seine Lust am Andersdenken ausle- Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de H13 ben. Seine aktuellen Schwerpunktthemen sind verteilte, hochskalierbare Systeme und neue Script Factory Method Builder Fortgeschrittene Techniken mit JavaScript Wege in der Architekturarbeit. Er teilt und dis- Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de H32 kutiert seine Ideen häufig auf Konferenzen, als Autor von Artikeln, Blog Posts, Tweets und mehr.

In den Fängen des Wirtschaftsdarwinismus Agilität ist nur ein Anfang Sascha Groß Dienstag, 3. 9., 10:00 – 10:50 Uhr Di I de K10 MATHEMA Software GmbH Wir bauen uns ein fehlertolerantes System Sascha Groß ist als Software-Entwickler, Con- Muster für Fehlertoleranz einfach umgesetzt sultant und Trainer für die MATHEMA Software Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de V24 GmbH tätig. Seine Spezialgebiete sind die Ober- flächen- und Web-Programmierung mit Java. Insbesondere beschäftigt er sich stets mit den Neuerungen der Java-Welt (z.B. JSF) und gibt Uwe Frieser sein Wissen gerne als Referent auf verschie- adorsys GmbH & Co. KG denen Konferenzen weiter. Außerdem besitzt er Expertenwissen Uwe Frieser ist Principal Consultant bei der über XML, das er bereits als Buchautor veröffentlicht hat. Neben adorsys GmbH & Co. KG und seit mehr als fünf- seiner Projekttätigkeit hält er Technologie-Trainings für MA- zehn Jahren als Software-Entwickler, Berater THEMA und unterstützt Projekte beim Technologieumstieg auf und Web-Designer tätig. Er beschäftigt sich seit JSF. mehreren Jahren mit der Entwicklung von Web- Anwendungen für mobile Endgeräte mit den Be- Spezialeffekte triebssystemen iOS, Android und BlackBerry. JavaFX 2.0 Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T04 Die ultimative Herausforderung Responsive Webdesign und Parallax Scrolling Ausgeswingt JavaFX 2.0 Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de H34 Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de J13

Frank Ganske MATHEMA Software GmbH Dr. Halil-Cem Gürsoy Frank Ganske ([email protected]) ist adesso AG Senior Developer bei der MATHEMA Software Dr. Halil-Cem Gürsoy ist als Software-Architect GmbH in Erlangen. Er entwickelt seit 1991 be- bei der adesso AG (http://www.adesso.de) tätig. triebswirtschaftliche Individual- und Standard- Sein technologischer Schwerpunkt liegt dabei Software. Besonderes Interesse hat er an Verän- auf Java Enterprise (JEE, Spring). Er fokussiert derungsprozessen und deren Absicherung. Das sich aktuell auf verteilte Applikationen, vorzugs- umfasst sowohl Bauprozesse, Testautomatisie- weise in „der Cloud“, sowie die Herausforde- rung, statische Codeanalyse und die Feststellung von Systemei- rungen, die im Zusammenhang mit der Persis­ genschaften und Abweichungen. tenz in solchen Applikationen einhergehen.

Akzeptanztests und Regression Volle Fahrt voraus! Komplexe Schnittstellen und Prozesse mit FitNesse testen Continuous Delivery praktisch Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de Q32 Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de V13

31 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Thomas Haug Was zählt ist auf’m Platz MATHEMA Software GmbH Testautomatisierung im Browser Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T02 Diplom-Informatiker (Univ.) Thomas Haug ar- Hilfe zur Selbsthilfe beitet als Senior Consultant, Architekt und Trai- Testautomatisierung im Browser aus Entwicklersicht ner für die MATHEMA Software GmbH. Seit 1999 Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de Q22 liegt sein Schwerpunkt auf verteilten Enterprise Systemen basierend auf CORBA und Ja­va- EE. Zusätzlich arbeitet er seit 2002 mit dem .NET Florian Hirsch Framework, insbesondere im Umfeld von hete- adorsys GmbH & Co. KG rogenen verteilten Systemen. Daneben hält er regelmäßig Vorträ- Florian Hirsch arbeitet als Software-Entwickler ge auf Fachkonferenzen und schreibt Artikel für Fachmagazine bei der adorsys GmbH & Co. KG. Er engagiert wie ObjektSpektrum und KaffeeKlatsch. sich seit Jahren in der Frontend-Entwicklung mit JSF, GWT und HTML5/JavaScript. Einheitsrahmenwerk Entity Framework 6 Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de N12 Nachgemessen und angezeigt Zur Hölle mit Responsive! Code-Metriken Ein Streitgespräch Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de Q21 Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de H31 Das Herbstcampus-Team Stephan Hochdörfer Bookware bitExpert AG Aller Anfang … Stephan Hochdörfer ist Head of IT bei der Firma Begrüßung und Organisatorisches bitExpert AG in Mannheim. Seine Themen- Dienstag, 3. 9., 09:30 – 10:00 Uhr Di I de schwerpunkte liegen im Bereich Web-Entwick- Das Beste kommt zum Schluss lung und Automatisierungstechniken, von der Code-Generierung bis hin zum automatischen Verabschiedung Donnerstag, 5. 9., 17:00 – 17:15 Uhr Do I de Deployment.

Dr. Ulrich Hilburger Offline. Na und? NÜRNBERGER Versicherungsgruppe Strategien für offlinefähige Applikationen in HTML5 Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de H23 Dr. Ulrich Hilburger arbeitet als IT-Architekt bei der NÜRNBERGER Versicherungsgruppe. Neben den klassischen Aufgaben in der Java- und Joachim Hofer imbus AG .NET-Welt stellt er sich den Betriebs- und Skalie- rungsaspekten von Software. Sein spezielles Ste- Joachim Hofer ist als Teamleiter beim Qualitäts- ckenpferd sind die Blicke in die Glaskugel auf sicherungs- und Testspezialisten imbus vorwie- der Suche nach Antworten auf die Frage, wie zu- gend für die interne Produktentwicklung im künftige Technologien und die zunehmend mobilere Anwender- J2EE-Umfeld zuständig. Seit einiger Zeit be- welt die IT-Landschaft nachhaltig verändern werden. geistert ihn insbesondere die Programmierspra- che Scala, was auch sein OpenSource-Engage- Das [C]Kreuz mit den Lambdas ment im Umfeld des Build-Tools SBT prägt. Eine erweiterbare generisch-parallele Suche mit C#-PLinq (inkl. Java 8 Pedant) Unter Beobachtung Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de N32 Reactive Programming auf der JVM Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de J14 Stefan Hildebrandt Tom Hombergs consulting.hildebrandt.tk adesso AG Stefan Hildebrandt ist als freier Software-Ent- Tom Hombergs ist Senior Software Engineer bei wickler und Berater in großen Projekten bei der adesso AG in Dortmund und trägt dort in Kunden aus unterschiedlichen Branchen tätig. verschiedenen Projekten die technische Verant- Seine technischen Schwerpunkte sind aktuelle wortung für die Umsetzung Java-basierter Web- Java-Frameworks auf dem Server sowie freie Anwendungen. Neben der Projektarbeit schreibt Werkzeuge zur Test- und Deploymentautomati- er Fachartikel und schult die adesso-Mitarbeiter sierung. Sein Interesse gilt vermehrt der ganz- für die Arbeit mit dem Wicket-Framework. heitlichen Betrachtung des Software-Entwicklunsprozesses und der Potentiale, die außerhalb der eigentlichen Entwicklung Komponiert schlummern. Komponentenbasierte GUI-Entwicklung mit Wicket Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T05

32 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Peter Kirchner Michael Kurz Microsoft Deutschland GmbH IRIAN Peter Kirchner ist Technical Evangelist bei der Michael Kurz studierte Informatik an der Tech- Microsoft Deutschland GmbH und beschäftigt nischen Universität Wien und hat sich seitdem sich primär mit den Themen Cloud Computing, in seiner beruflichen Tätigkeit dem Thema Web- Windows 8-Entwicklung und den Technologien, Entwicklung verschrieben. Seit seinem Wechsel die zur Kommunikation über verteilte Systeme zu IRIAN beschäftigt er sich vorrangig mit JSF hinweg notwendig sind. In den letzten Jahren und ist im Unternehmen als Web-Entwickler für hat er sich mit verschiedensten Technologien für mehrere JSF-Projekte tätig. Weiterhin leitet er Entwickler beschäftigt, wobei Themen wie Anwendungskompati- JSF-Schulungen, hält Vorträge auf internationalen Konferenzen bilität für Windows-Anwendungen, Windows Azure und die tech- und ist Apache MyFaces-Committer. Im November 2009 ist sein nische Betreuung von Microsoft Partnern einen besonderen Fokus erstes Buch „JavaServer Faces 2.0“ im dpunkt-Verlag erschienen. besaßen. Vor seinem Einstieg bei Microsoft im Jahr 2008 war Pe- Außerdem ist er bei IRIAN für den Inhalt des Online-JSF-Tutorials ter Kirchner im Bereich der SharePoint-Entwicklung und -Anpas- JSF@Work (http://jsfatwork.irian.at) verantwortlich und betreibt sung im Kundenprojektgeschäft tätig. den Blog http://jsflive.wordpress.com.

App in die Cloud! Neues Gesicht Daten-Backends in der Cloud und dessen Integration Neues und Erwähnenswertes aus JavaServer Faces 2.2 Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de N21 Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de J12 Himmlische Nachrichten! Service Bus für Windows Server – Cloud-Technologien nun auch im eigenen Unternehmensnetzwerk Angelika Langer Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de N25 Angelika Langer arbeitet seit ca. 15 Jahren als Trainer und Consultant mit eigenem Schulungs- programm im Bereich der Software-Entwicklung Klaus Kreft mit C++ und Java. Sie ist Sprecher auf zahl- Klaus Kreft arbeitet seit mehr als 15 Jahren als reichen Konferenzen, darunter JavaOne, Java- Consultant im Bereich der Software-Entwicklung Zone, JAX und viele Andere. Gemeinsam mit mit Java. Sein Interesse gilt hauptsächlich kom- Klaus Kreft ist sie Autor zahlreicher Veröffentli- plexen Multithread-Systemen mit hohen Perfor- chungen, darunter eine Artikel-Serie im JavaMagazin. mance-Anforderungen. Er ist Sprecher auf Fach- konferenzen (JAX, OOP, Ch/ Lambdas I Open-Workshop-Tage und diverse JUGs). Ge- Funktionale Programmierung in Java mit Lambdas meinsam mit Angelika Langer ist er Autor zahlreicher Veröffentli- Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de J31 chungen, darunter eine Artikel-Serie im JavaMagazin. Tammo van Lessen Lambdas II innoQ Deutschland GmbH Funktionale Erweiterungen der Java-Collections Donnerstag, 5. 9., 11:20 – 12:30 Uhr Do I de J32 Tammo van Lessen arbeitet als Senior Consul- tant bei der innoQ Deutschland GmbH im Be- reich SOA/BPM und promoviert im gleichen Be- Tobias Krügel reich. Er ist PMC Chair Apache ODE und Member conplement AG der Apache Software Foundation und hat aktiv Tobias Krügel ist als Senior Software Engineer an der Standardisierung von BPMN 2.0 mitge- und Software-Architekt für die conplement AG wirkt. Er ist Mitautor des Buches „Geschäftspro- in Nürnberg tätig. Seine Schwerpunkte liegen zesse automatisieren mit BPEL“. auf der Konzeption und Entwicklung von (ver- teilten) Anwendungen auf Basis des Microsoft Testobjekt: Geschäftsprozess Technologie Stacks. Er arbeitet seit mehreren Qualitätssicherung und Testen von automatisierten Geschäftsprozessen Jahren in verschiedenen Projekten und verfügt Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de Q14 über fundierte Kenntnisse zu agilen Entwick- lungsprozessen sowie über eine langjährige Erfahrung im Bereich der Koordination und Aussteuerung von Entwicklerteams.Er ist Jan Leßner arvato IT services bekennender Liebhaber der Sprache C#, mit der er sich bereits seit 2001 beschäftigt. Er hat mehrere Fachartikel zu diesem The- Jan Leßner ist Java-Chefarchitekt bei arvato IT ma veröffentlicht und hält Vorträge auf Konferenzen. services und verantwortlich für das Technik- und Methoden-Framework des Bereichs. Er ist Mit­ Echt jetzt ?! autor der EJB3-Praxisbücher im Hanser Ver- Echtzeitanwendungen für das Web mit SignalR lag und engagiert sich in verschiedenen Open- Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de N15 Source-Projekten für ultraschlanke Enterprise- Geschichtet, nicht gerührt? Architekturen. Seit 2 Jahren leitet er ehrenamtlich Einführung in die N-Layer Domain-Oriented Architecture eine Computer-AG am Reismann-Gymnasium in Paderborn. Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de N23

33 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

I, Robot Augenmerk auf elegantem, stabilem und wartbarem Code liegt. Programmiersession mit LEGO Mindstorms (Teil 1) Wenn er nicht gerade zum Arbeiten irgendwo in Deutschland un- Dienstag, 3. 9., 20:00 – 21:10 Uhr Di I de V16 terwegs ist, kann man ihn in Hamburg antreffen. I, Robot Programmiersession mit LEGO Mindstorms (Teil 2) Stapelweise Kaffeesäcke Mittwoch, 4. 9., 20:00 – 21:10 Uhr Mi I de V26 Batch-Verarbeitung mit Java EE 7 Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de J25 Daniel Lübke innoQ Schweiz GmbH Dr. Daniel Lübke arbeitet als Senior Consultant bei der innoQ Schweiz GmbH. Er ist dort in SOA- Markus Müller und BPM-Kundenprojekten aktiv und gibt Kurse datainfo.de zur Vorbereitung auf die iSAQB-Zertifizierung. Er ist Autor des Buches „Geschäftsprozesse auto- Markus Müller (www.datainfo.de) ist freiberuf- matisieren mit BPEL“ und Maintainer des BPEL- licher, Microsoft zertifizierter Consultant und Unit-Projekts. Trainer für Software-Entwicklung und Architek- turen. Sein Schwerpunkt liegt im Design von ver- Testobjekt: Geschäftsprozess teilten und hochskalierbaren Anwendungen auf Qualitätssicherung und Testen von automatisierten Geschäftsprozessen heterogenen Plattformen. Aktuell ist er im Be- Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de Q14 reich Medizintechnik in der Architektur für kli- nische Systeme im Einsatz und unterstützt Unternehmen in der Yann Massard Metropolregion Nürnberg bei neuen Software-Ideen. BTC Business Technology Consulting AG Flaschenhälse eliminieren Yann Massard arbeitet als Berater und Software- Performance Optimierung von .NET-Applikationen Entwickler bei der BTC AG. Seine Schwerpunkte Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do I de N33 liegen im Java Enterprise-Umfeld. Darüber hi- naus beschäftigt er sich mit aktuellen Entwick- lungen und Zukunftstechnologien im Web. Stephan Müller Geht nicht gibt’s nicht! open knowledge GmbH Einsatz von HTML5-Features im Jetzt Stephan Müller ist Enterprise Architect bei der Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de H12 open knowledge GmbH in Oldenburg. Er verfügt über mehrjährige Erfahrung als Entwickler, Archi- Christof May tekt, Projektleiter und Trainer im Enterprise-Um- Barco feld. Seine Interessensschwerpunkte sind leicht- gewichtige Architekturen, Web-Technologien und Christof May ist freiberuflicher Java-Entwickler Cloud Computing. Zu diesen Bereichen veröffent- und IT-Berater. Sein Interesse gilt insbesondere licht er Fachartikel und spricht regelmäßig auf Konferenzen. der Entwicklung von leichtgewichtigen Ajax Web-Applikationen im Business-Bereich. Darü- Tut er’s oder tut er’s nicht ber hinaus hat er eine starke Affinität zu Design, Wie ich Web-Apps richtig testen kann Usability, Lean Development und neuen Pro- Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de Q25 grammier-Methoden. Er ist aktives Mitglied der Echo3 OpenSource-Community und Begründer der Soplets (www. soplets.org).

Hybride Schönheit René Pfeuffer Die (Wieder-)Entdeckung des Java/JavaScript Web-Frameworks Echo T-Systems on site services GmbH Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de H25 Als Senior Consultant arbeitet René Pfeuffer für die T-Systems onsite daran, Praktiken für hoch- Thomas Much wertige Software zu etablieren und ständig zu muchsoft.com verfeinern. Dazu organisiert er neben der Pro- Dipl.-Inform. Thomas Much ist freiberuflicher jektarbeit z. B. Code Retreats und verbreitet die Software-Entwickler, Programmiertrainer und Ideen des Software Craftsmanship. Zusätzlich Coach für agile Projekte, vor allem im Bereich interessiert er sich für funktionale Programmie- der Java-Enterprise-Technologien. Seine Schwer- rung und mobile Technologien. punktthemen sind Komponenten- und Daten- Putztag Modellierung, Persistenztechnologien und auto- Clean Code Workshop matisiertes Testen, wobei sein besonderes Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T01

34 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Frank Pientka Application Lifecycle Management in Verbindung mit dem Micro- soft Team Foundation Server. Er steht für pragmatische und flexi- MATERNA GmbH ble Lösungen für seine Kunden und sorgt dafür, dass dabei das Frank Pientka ist Senior Architect bei der eigentliche Ziel nicht aus den Augen verloren wird. MATERNA GmbH in Dortmund und Gründungs- mitglied des iSAQB. Seit über zehn Jahren unter- ALM konkret stützt er Firmen bei der Umsetzung tragfähiger Die Aspekte des Application Lifecycle Management entdecken, verste- Software-Architekturen auf Basis von JavaEE. hen und nutzen Dabei führt er externe Reviews und Architektur- Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de V34 bewertungen als Gutachter durch. Dazu hat er auch schon mehrere Fachartikel und ein Buch veröffentlicht sowie Thomas Rümmler Vorträge gehalten. AIT GmbH & Co. KG TomEE Thomas Rümmler ist Senior Software Consultant Was braucht man mehr für JavaEE? und Projektleiter bei AIT sowie Mitglied des AIT Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de J21 TeamSystemPro-Teams. Sein Arbeitsschwer- Der polyglotte Architekt punkt liegt auf dem Application Lifecylce Ma- Willkommen in Babylon nagement. Er hiflt Unternehmen ihre Software Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de V23 unter Einsatz des Microsoft Visual Studio Team Foundation Servers effizienter zu entwickeln. Seine Erfahrung gibt er als Autor des TFS-Blogs und Sprecher im Nicole Rauch Microsoft ALM-Umfeld weiter. Das AIT TeamSystemPro-Team ist msgGillardon AG eine Gruppe von Experten zu den Themen Team Foundation Ser- Nicole Rauch ist Software-Entwicklerin mit um- ver und Application Lifecycle Management. fangreichem Hintergrund im Compiler-Bau und formalen Verifikationsmethoden. Aktuell ist sie Weltoffen an der Sanierung einer großen Legacy-Applikati- Einsatz des TFS 2012 in heterogenen .NET/Java-Umgebungen on beteiligt. Neben ihrer Entwicklertätigkeit Mittwoch, 4. 9., 20:00 – 21:10 Uhr Mi I de J26 wirkte sie an der Ausrichtung mehrerer selbstor- ganisierter Konferenzen mit, unter anderem der Jens Schauder SoCraTes 2011. Im Anschluss an die SoCraTes initiierte sie die T-Systems on site services GmbH Softwerkskammer, eine deutschlandweite User Community zum Jens Schauder ist Software-Entwickler aus Lei- Thema Software Craftsmanship, sowie die Karlsruher Regional- denschaft. In Zeitschriftenartikeln, seinem Blog, gruppe der Softwerkskammer. Konferenzvorträgen oder seiner Mitarbeit bei der JUG Ostfalen versucht er die Welt der Software- Macht der Gewohnheit Entwicklung ein klein wenig besser zu machen. Usus – ein Werkzeug zur Verbesserung der Code-Qualität Besonders wichtig ist ihm dabei die Vielseitigkeit Dienstag, 3. 9., 11:20 – 12:30 Uhr Di I de V12 der Software-Entwicklung: Vom Fachwissen, über Programmiersprachen, Bibliotheken und Tools bis zu Vorge- Matthias Reining hensmodellen, alles gehört dazu und kann verbessert werden. Seit RGI Deutschland GmbH Juli 2012 arbeitet Jens Schauder für die T-Systems on site GmbH Matthias Reining arbeitet seit über 10 Jahren im als Executive Consultant. Versicherungs IT-Umfeld. Technologisch macht ihm der JavaEE-Stack am meisten Spaß, dicht Putztag Clean Code Workshop gefolgt von diversen JS-Frameworks. Wer mehr Montag, 2. 9., 09:40 – 18:30 Uhr Tutorium I Mo I de T01 über ihn und seine aktuellen Aktivitäten erfah- ren will, wird auf http://about.me/matthiasrei- Unabhängigkeitserklärung ning fündig. Abhängigkeiten managen mit Degraph Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de V21 XLS-based Testing! Unit- und Integrationstests in Excel definieren Dr. Stefan Schlott Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de Q24 BeOne Stuttgart GmbH Dr. Stefan Schlott ist Senior Consultant bei der Sebastian Rölz BeOne Stuttgart GmbH und dort als Entwickler, conplement AG Architekt und Trainer im Java-Umfeld tätig. Security und Privacy gehören ebenso zu seinen Sebastian Rölz ist als Technology Specialist für Schwerpunkten wie skalierbare Architekturen ALM bei der conplement AG tätig. Für die Bera- und die alternativen JVM-Sprachen Groovy und tung im ALM-Umfeld kommen seine umfang- Scala. Sein Arbeitsumfeld ist bevorzugterweise reichen Erfahrungen aus dutzenden Software- geprägt von Pinguinen und OpenSource-Projekten. Projekten in den unterschiedlichsten Größen und Wirtschaftssektoren zur Geltung. In ver- Web-Anwendungen? Aber sicher! schiedenen Rollen war der Microsoft Stack sein Sicherheitsprobleme in Web-Anwendungen (und wie man sie vermeidet) steter Begleiter. Spezialisiert hat er sich vor einigen Jahren auf das Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de H24

35 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Benjamin Schmid Heiko Spindler eXXcellent solutions Seit über 15 Jahren ist Heiko Spindler als Soft- Benjamin Schmid ist Technology Advisor bei der ware-Entwickler, Projektleiter und Software-Ar- eXXcellent solutions und dort primärer An- chitekt in vielen Projekten unterschiedlicher sprechpartner in allen technologischen und me- Branchen tätig. Seine Aufgaben umfassen das thodischen Fragestellungen. Seine Erfahrungen Aufsetzen von Projekten sowie die Betreuung und Wissen gibt er regelmäßig und gerne auch über den gesamten Entwicklungszyklus. Er be- als Redner auf Konferenzen und Autor von Fach- schäftigt sich hauptsächlich mit Software-Archi- artikeln weiter. tekturen, modellgetriebener Entwicklung und der Verbindung von Geschäftsprozessen mit IT. Zudem berät er Kunden bei der Hybride Schönheit Auswahl moderner Software-Architekturen (Client-Server, Web-, Die (Wieder-)Entdeckung des Java/JavaScript Web-Frameworks Echo Mobile-Umfeld und SOA) und entsprechender technischer Fra- Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de H25 meworks. Er ist seit 2008 zertifizierter ScrumMaster (CSM) ge- mäß ScrumAlliance. Seit 2007 ist er Dozent an der Fachhoch­ schule Gießen-Friedberg (für MDA), schreibt regelmäßig für Alexander Schwartz Fachmagazine und präsentiert neue Entwicklungen auf Konfe- msg systems ag renzen. Alexander Schwartz arbeitet als Lead IT Consul- tant bei der msg systems ag. In den vergangenen Meteor vor dem Einschlag Ein flexibles JavaScript Framework Jahren hat er Software-Projekte mit J(2)EE und Mittwoch, 4. 9., 11:20 – 12:30 Uhr Mi I de H22 Spring in verschiedenen Rollen als Entwickler, ScrumMaster, Architekt und Projektmanager Think outside the box begleitet. Im Laufe der Zeit kam er mit verschie- Kreativitätstechniken in agilen Software-Projekten Mittwoch, 4. 9., 17:20 – 18:30 Uhr Mi I de V25 densten Web-Technologien in Verbindung. Er schätzt produktive Arbeitsumgebungen, agile Projekte und auto- matisierte Tests. Walery Strauch Aber eben lief das doch noch! Walery Strauch (Dipl.-Inform. FH) ist freiberuf- HTML5 Testing mit Jasmine BDD licher Software-Entwickler. Seit 2007 beschäf- Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de H14 tigt er sich intensiv mit Projekten in den Be- reichen Java, Web und Cloud. Als Mitbegründer und CEO einer Software-Firma im Jahre 2010 Sandro Sonntag konnte er sein Wissen auch im Business über adorsys GmbH & Co. KG Jahre erfolgreich anwenden. Sein Know-How hat er dabei nicht nur als unternehmensinterner Coach geteilt, Sandro Sonntag beschäftigt sich als Technical sondern auch in Java-Vorlesungen an der Hochschule Heidelberg Lead bei der adorsys GmbH & Co. KG seit vielen weitergegeben. Er ist ebenso einer der Organisatoren der MAJUG Jahren mit leichtgewichtigen Architekturen auf (Mannheim Java User Group). Basis von Spring und JavaEE. In den letzten Jah- ren lag dabei sein besonderes Interesse auf hoch- skalierbaren RESTful „Thin-Server“-Architek- Selenium WebDriver Automatisches Testen von Web-Apps auf gängigen Browsern turen, NoSQL-DBs sowie Web-Clients mit HTML5 Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de Q34 und JavaScript. Schmiedekunst Rainer Stropek Forge Beanstest Plugin für DI in Junit-Tests Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de Q13 Rainer Stropek ist seit 16 Jahren als Unterneh- mer in der IT-Industrie tätig. Er gründete und führte in dieser Zeit mehrere IT-Dienstleistungs- Artur Speth unternehmen und entwickelt im Augenblick in Microsoft Deutschland GmbH seiner Firma „software architects“ mit seinem Team die preisgekrönte Software „time cockpit“. Artur Speth arbeitet als Senior ALM-Architekt in Rainer hat Abschlüsse an der Höheren Tech- der Developer Platform & Strategy Group bei nischen Schule für MIS, Leonding (AT) sowie der University of Microsoft und ist Spezialist für Visual Studio und Team Foundation Server. Er berät Kunden bei Derby (UK). Er ist Autor mehrerer Fachbücher und Artikel in Ma- der Verbesserung ihrer Software-Entwicklungs- gazinen im Umfeld von Microsoft .NET und C#. Seine technischen prozesse und beim effizienten Einsatz der Micro- Schwerpunkte sind C# und das .NET-Framework, WPF/Silverlight, soft Entwicklungs- und Testwerkzeuge. die Windows Azure Plattform sowie SQL Server. Rainer tritt regel- mäßig als Speaker und Trainer auf namhaften Konferenzen in Überlebensfähig Deutschland, Österreich und der Schweiz auf (z. B. BASTA, SAP- Der moderne App Lifecycle PHIRE, MS BigDays, MS Architecture Conference, MS TechEd, Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de V14 OOP, ADC, DEVCamp, etc.). Sie können Rainer über Twitter

36 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

(@rstropek), Facebook (http://www.facebook.com/profile.php? wicklungsumgebungen. Schwerpunktmäßig im Java- und .NET- id=1671935584) oder über seine Blogs unter http://www.time- Bereich angesiedelt, verbringt er seine Freizeit am liebsten auf cockpit.com und http://www.software-architects.com folgen. dem Motorrad oder einem Segelboot.

Fundamental Sichere Software Neuheiten in der Base Class Library mit .NET 4.5 Vermeidung von Angriffspunkten bei der Software-Entwicklung Dienstag, 3. 9., 14:00 – 15:10 Uhr Di I de N13 Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do I de Q33 JavaScript on Steroids Eine Einführung in TypeScript Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de H15 Robert Walter conplement AG Robert Walter ist .NET-Software-Entwickler der David Tanzer conplement AG in Nürnberg und MCPD (Micro- David Tanzer ist seit 2006 als freiberuflicher Bera- soft Certified Professional Developer) für Web- ter, Trainer und Software-Entwickler tätig. Im Entwicklung mit .NET 4.0. Er programmiert Rahmen dieser Tätigkeit beschäftigt er sich mit ebenfalls Desktop-Anwendungen mit WPF und Software-Qualität in agilen Projekten, also unter arbeitet überwiegend am Frontend. Den konti- Anderem mit den Themen Architektur in agilen nuierlichen Verbesserungsprozess für Entwick- Projekten, Software-Design, agiles Anforderungs- ler unterstützt er dazu auch mit Coding Dojos im Unternehmen. management und Testen. Er „spricht“ mehrere Programmiersprachen und ist als Entwickler sowohl im Frontend als Test-Driven Development - Möge der Test beginnen auch im Backend – vor allem von Web-Anwendungen – zu Hause. Entwickler vs. Architekt Donnerstag, 5. 9., 09:40 – 10:50 Uhr Do I de Q31 Testen, aber richtig Komponententests, Integrationstests und Mocks vernünftig einsetzen Mittwoch, 4. 9., 14:00 – 15:10 Uhr Mi I de Q23 Wolfgang Weigend ORACLE Deutschland B.V. & Co. KG Zukunftssicher Konkurrenzfähig in die Zukunft Wolfgang Weigend, Systemberater für die Oracle Dienstag, 3. 9., 17:20 – 18:30 Uhr Di I de V15 Fusion Middleware bei der Or a c l e Deutschland B.V. & Co. KG, zuständig für Java-Technologie und -Architektur mit strategischem Einsatz bei Eduard Tudenhöfner Großkunden, verfügt über langjährige Erfahrung adesso AG in der Systemberatung und im Bereich objektori- entierter Software-Entwicklung mit Java. Davor Eduard Tudenhöfner ist als Senior Software En- war er als Principal Systems Engineer neuneinhalb Jahre bei der gineer bei der adesso AG tätig und hat bereits BEA Systems GmbH für strategische Kunden tätig und koordi- mehrjährige Erfahrung in der Entwicklung von nierte gleichzeitig als Teamleader Systems Engineering alle Sys­ Werkzeugen sowohl für die Analyse von Perfor- temberater in der Central Region Deutschland, Österreich und mance-Problemen als auch für die Generierung Schweiz. Wolfgang Weigend studierte an der FH Darmstadt Elek- von Last gesammelt. In Kundenprojekten liegen trotechnik/Automatisierungstechnik mit dem Studienschwer- seine Schwerpunkte in verschiedenen Schichten punkt Datentechnik. Bevor der Diplom-Ingenieur 1999 zu BEA des Performance Engineerings. Dies umfasst u. a. die Definition Systems kam, war er als Systemberater für Or a c l e , Texas Instru- von proaktiven Aktivitäten zur Sicherstellung der Performance, ments Software und Sun Microsystems tätig. detaillierte Problemanalysen von JEE-basierten Anwendungen und die Durchführung und Bewertung von Last-Tests. E-Neuauflage Beschleunigung Die Java Enterprise Edition 7 und GlassFish Mittwoch, 4. 9., 15:40 – 16:50 Uhr Mi I de J24 X ways to improve your web application‘s performance Mittwoch, 4. 9., 09:40 – 10:50 Uhr Mi I de H21 Joachim Weinbrenner Andreas Vombach jsolutions Joachim Weinbrenner (Inhaber jsolutions.de) Andreas Vombach arbeitet bei der HELVETING ist Software-Architekt und Entwickler im Java- AG in der Schweiz als Senior Software Entwick- EE-Umfeld. Er unterstützt JEE-Projekte mit ler. Seine Interessensgebiete befinden sich so- Schwerpunkt auf Web-basierte, verteilte Anwen- wohl im Software-, im Embedded- als auch im dungen. Darüber hinaus vermittelt er seine Hardware-Bereich. Aufgewachsen in der C64- Kenntnisse in verschiedenen Schulungen. und ZX81-Generation legte er 1993 das Diplom Elektrotechnik an der TH Darmstadt ab. Seine Tätigkeiten in der Schweiz führten ihn vom Telekommunikations- bereich über Mandate bei Banken und Arbeit in einem For- Web-Applikationen mit AngularJS schungsinstitut zu zahlreichen Programmiersprachen und Ent- Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do I de H33

37 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus

Christoph Wentzke timierung von agilen Methoden. Seine Scrum-Erfahrungen gibt infoteam Software AG Udo auch als Autor eines Videotrainings bei video2brain weiter. Christoph Wentzke ist seit 2011 Software-Engi- Politische AGILtation neer bei der infoteam Software AG in Buben- Scrum in der Staatsführung reuth. Er ist Spezialist für Configuration Ma- Mittwoch, 4. 9., 08:30 – 09:20 Uhr Keynote I Mi I de K20 nagement, Change Management und Project Management. Sein Schwerpunkt liegt dabei auf der Konzeptionierung und Umsetzung von pro- zessunterstützenden Tools rund um Microsofts Team Foundation Server für große Projekte im medizinischen Eberhard Wolff Sektor. adesso AG Loser Verbund Eberhard Wolff (Twitter: @ewolff) ist Grün- dungsmitglied der Java Champions, Autor zahl- Trennung von User Interface & Code Behind mit Model View ViewMo- del für Einsteiger reicher Artikel und Bücher sowie Sprecher auf Dienstag, 3. 9., 15:40 – 16:50 Uhr Di I de N14 internationalen Konferenzen. Er arbeitet für die adesso AG in Berlin als Architecture and Techno- Michael Wiedeking logy Manager. MATHEMA Software GmbH Michael Wiedeking ist Gründer und Geschäfts- Die Ecke führer der MATHEMA Software GmbH. Er ist Das vert.x Framework – modular, polyglott, asynchron Java-Programmierer der ersten Stunde, schreibt Donnerstag, 5. 9., 15:40 – 16:50 Uhr Do I de J34 regelmäßig Artikel und spricht auf Konferenzen. NoSQL hoch drei Am liebsten aber „sammelt“ er Programmier- 3 NoSQL Datenbanken in 70 Minuten sprachen und beschäftigt sich mit ihrem Design Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do I de V33 und ihrer Implementierung.

Dies & das Allerlei in aller Kürze Donnerstag, 5. 9., 08:30 – 09:20 Uhr Keynote I Do I de K30 Kai Wähner Schwarze 8 Talend Änderungen in Java 8 Kai Wähner ist als Principal Consultant bei Ta- Donnerstag, 5. 9., 14:00 – 15:10 Uhr Do de I J33 lend tätig. Seine Schwerpunkte liegen in den Be- reichen Java EE, SOA, Cloud Computing, BPM, Big Data und Enterprise Architecture Manage- Udo Wiegärtner ment. Außerdem ist er Autor von Fachartikeln, hält Vorträge auf internationalen IT-Konfe- conplement AG renzen (z. B. JavaOne, ApacheCon, OOP) und Udo Wiegärtner ist bei der conplement AG in berichtet in seinem Blog (www.kai-waehner.de/blog) über Erfah- Nürnberg als Resource Manager verantwortlich rungen mit neuen Technologien. Feedback gerne per Email (kon- für Mitarbeiterentwicklung und Weiterbildung. [email protected]), Twitter (@KaiWaehner) oder sozialem Durch seine Erfahrungen als Software-Entwick- Netzwerk (Xing, LinkedIn). ler, Projektleiter, Product Manager und Scrum Master war er schon in allen Bereichen eines Sc- You are not Facebook or Google? rum Teams aktiv. Als Scrum-Coach begleitet er Warum Sie sich trotzdem mit Big Data beschäftigen sollten Firmen und Teams seit mehreren Jahren bei Einführung und Op- Mittwoch, 4. 9., 11:20 – 12:30 Uhr V22

38 Programm Herbstcampus 2013 – Wissenstransfer par excellence Herbstcampus Höher, schneller, weiter Erweiterungen für CDI entwickeln von Werner Eberling

er inzwischen nicht mehr ganz so neue CDI-Standard kommt mittlerweile in immer mehr Projekten zum Einsatz. Doch was tun, wenn die out-of-the-box- Funktionalität des „Neuen“ nicht ausreicht? Für solche Situationen bietet CDI einen eingebauten Erweiterungsmechanismus,­ der dem Entwickler interessante Möglichkeiten zum Ausbau des DFrameworks bietet. Wie dies vonstatten geht, soll in diesem Artikel anhand zweier Beispiele genauer betrachtet werden.

Im Rahmen der JEE6 hat mit Contexts and Dependency • Dependency Injection in eigene Objekte zu realisieren. Injection ein neuer Standard das Licht der Welt erblickt. • Eigene Kontexte zu implementieren. Seitdem ist nun schon einige Zeit ins Land gegangen und so findet „der Neue“ inzwischen den Weg in immer • Die annotierten Metadaten von CDI-Beans zu erwei- mehr Java EE-Projekte. Doch wie es immer ist, finden tern oder abzuändern. sich neben jeder Menge schöner neuer Features auch oft Themen, die im Standard (noch) keine Berücksichtigung Aber wie implementiert man nun so eine Erweiterung? gefunden haben. Doch anstatt zu grollen, heißt es in die- Das CDI-SPI sieht dafür das leere Service-Interface sem speziellen Fall „selbst Hand anzulegen“. javax.enterprise.inject.spi.Extension vor. Eine Klasse, Anders als so manch anderer JEE-Standard ist CDI die dieses Interface implementiert, kann über den Ser- von Anfang an auf (funktionale) Erweiterung ausgelegt. vice Provider-Mechanismus als Erweiterung registriert Bereits die Spezifikation [1] [2] spricht auf einer der werden. Hierzu muss der vollqualifizierte Klassenna- ersten Seiten von „portable Extensions“ und auch die me der Erweiterung in einer Datei mit dem Namen Dokumentation der Referenzimplementierung bringt es META-INF/services/javax.enterprise.inject.spi.Extension am Anfang des entsprechenden Kapitels auf den Punkt: hinterlegt werden. „CDI is intended to be a foundation for frameworks, ex- Das leere Service-Interface bringt selbst erst einmal tensions and integration with other technologies“ [3]. keine Funktionalität mit sich. Die Arbeit in einer Ex- tension wird in einer oder mehreren Callback-Funktionen Extensions geleistet, die spezielle vom CDI-Container gefeuerte Das Mittel der Wahl, wenn es darum geht CDI zu erwei- Events abfangen.1 Nachdem dies über den CDI-eigenen tern, ist also die Portable Extension. Diese ist als Teil des leichtgewichtigen Eventing-Mechanismus vonstatten Service Provider Interfaces (SPI) nach eigenen Angaben geht, ist man hier in der Wahl der Methoden­namen dafür zu­ständig: grundsätzlich vollkommen frei. Es hat sich allerdings

1 Auf eine komplette Liste all dieser Events wird an dieser Stelle aus Gründen der • Eigene CDI Beans, Interceptoren und Dekoratoren be- Übersichtlichkeit verzichtet. Der geneigte Leser sei hierfür z.B. auf Kapitel 16 reitzustellen. der Dokumentation der Referenzimplementierung (Weld) verwiesen [3].

Seite 40 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Höher, schneller, weiter

eingebürgert die Namen der jeweiligen Events dafür zur Natürlich ist das erst die halbe Miete, denn die Annota- verwenden, um den Wieder­er­kennungs­wert zu steigern. tion dient nur zur Kennzeichnung der Komponenten, die beim Start des CDI-Containers erzeugt werden sollen. class EineExtension implements Extension { Jetzt wird noch das Stück Code benötigt, das die eigent- void beforeBeanDiscovery( @Observes BeforeBeanDiscovery bbd liche Arbeit übernimmt. In diesem Fall wäre das eine ) { CDI-Extension, die sich an zwei Stellen in den Startpro- Logger.global.debug( zess des Containers einhängt: "Die Suche nach CDI-Komponenten startet..." ); } 1. Im Rahmen der CDI-Bean-Verarbeitung werden die void processAnnotatedType( Beans identifiziert, die gestartet werden sollen (Event: @Observes ProcessAnnotatedType pat ProcessBean). ) { 2. Nachdem sichergestellt ist, dass alle Abhängigkeiten Logger.global.debug("Analysiere: " + pat.getAnnotatedType().getJavaClass().getName() erfüllt sind (Event: AfterDeploymentValidation), wer- ); den die benötigten Instanzen der identifizierten Be- } ans erzeugt. void afterBeanDiscovery( @Observes AfterBeanDiscovery abd public class StartupExtension implements Extension { ) { private final Set> startupBeans = Logger.global.debug( new LinkedHashSet>(); "Suche nach CDI-Komponenten beendet." void processBean( ); @Observes ProcessBean event } ){ } if ( event.getAnnotated().isAnnotationPresent( Startup.class Nun stellt sich natürlich die Frage, was man mit einem ) solchen Erweiterungsmechanismus sinnvolles anstellt. && Die folgenden beiden Beispiele sollen hierfür eine ge- event.getAnnotated().isAnnotationPresent( ApplicationScoped.class wisse Anregung geben. ) ){ Die Startup-Extension startupBeans.add(event.getBean()); Eine Problemstellung, die immer wieder in CDI-Pro- } } jekten auftaucht, ist das Starten von ApplicationScoped- void afterDeploymentValidation( Komponenten bereits beim Hochfahren der Anwendung. @Observes AfterDeploymentValidation event, BeanManager manager Zwar gibt es die @Startup-Annotation für Singleton Ses- ){ sionBeans, aber nur für diese Anforderung die Kompo- for (Bean bean : startupBeans){ nenten gleich als EJBs zu implementieren erscheint doch manager.getReference( etwas übertrieben. Hier stellt eine Extension die deutlich bean, bean.getBeanClass(), manager.createCreationalContext(bean) leichtgewichtigere Lösung dar oder etwas plakativer aus- ).toString(); gedrückt: „Sie haben ein Problem? Schreiben Sie sich } einfach eine passende Annotation!“ } }

Zeit zu coden Wird jetzt noch diese Extension als ServiceProvider ein- Der erste Teil der Aufgabe ist schnell erledigt. Nachdem getragen, so wird diese beim Start des Containers erzeugt die Startup-Annotation implementierungs­neutral ge- und sorgt dafür, dass alle mit @Startup und @Application- halten werden soll, kann das aus EJB bekannte @Startup Scoped versehenen CDI-Komponenten direkt instantiiert nicht verwendet werden, es muss also eine neue Anno- werden. tation her: Das nächste Level – ein eigener Scope @Retention(RetentionPolicy.RUNTIME) Nach der Einführung einer eigenen semantischen An- @Target(ElementType.TYPE) notation, wird es nun Zeit für die nächste Stufe: die Im- public @interface Startup { plementierung eines eigenen Kontextes. Als Beispiel soll } dafür ein anwendungsweiter Kontext dienen, der seine

Seite 41 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Höher, schneller, weiter

Instanzen für einen vordefinierten Zeitraum (z.B. 5 min) public T get(Contextual arg0) { 2 TimeBox box = hält. instances.get(((Bean)arg0).getName()); Auch hier wird als erstes wieder eine eigene Annota- if(box != null && !box.isTimedOut()){ tion benötigt, die Komponenten an den neu zu definie- return (T)box.getBean(); renden Kontext bindet. Da es sich hierbei de facto um die } Definition eines neuenScopes handelt, muss die­se Anno- return null; } tation zusätzlich mit @NormalScope ver­sehen werden. public T get( Contextual arg0, CreationalContext arg1 @Retention(RetentionPolicy.RUNTIME) ) { @Target(ElementType.TYPE) T bean = get(arg0); @NormalScope if(bean == null){ public @interface TimeScoped { bean = ((Bean)arg0).create(arg1); } TimeBox box = new TimeBox(bean); instances.put(((Bean)arg0).getName(), box); Wie bereits bei @Startup muss nun auch hier noch der } Code geschrieben werden, der die eigentliche Funktio­ return bean; } nalität realisiert. Im Falle eines Kontextes ist dies die public Class getScope() { Verwaltung der Bean-Instanzen, die ihm zugeordnet return TimeScoped.class; werden. Hierzu enthält die CDI-SPI das Interface javax. } enterprise.context.spi.Context. Dieses Interface definiert vier Methoden: public boolean isActive() { return true; } • public T get(Contextual arg0) Diese Methode muss die im Kontext hinterlegte Bean­ Alles was jetzt noch fehlt ist das Bekanntmachen des Instanz vom Typ T zurückliefern. Ist keine Instanz neuen Kontextes. Hierfür wird wieder eine Extension vorhanden, wird null zurückgeliefert. Eine genauere benötigt, die nach der BeanDiscovery-Phase (Event: After­ Beschreibung welche Instanz angefragt wird (z.B. de- BeanDiscovery) eine Instanz des Kontexts erzeugt und ren Bean-Name), wird durch den Übergabeparameter dem Container bekannt gibt: geliefert. public class TimedScopeContextExtension implements Extension • public T get(Contextual arg0, { CreationalContext arg1) public void afterBeanDiscovery( @Observes AfterBeanDiscovery event, o n t e x t u a l Diese Methode verhält sich wie get(C ) BeanManager manager mit dem einzigen Unterschied, dass sie die angefragte ){ Instanz bei Bedarf über den mitgelieferten Creational- event.addContext(new TimedScopedContext()); Context erzeugt. } } • public Class getScope() Auch diese Extension muss wieder über den Service Pro- Liefert den Typ der Scope-Annotation zurück, für den vider Mechanismus registriert werden. Ist dies gesche- dieser Kontext zuständig ist. hen, kann der neue Scope in der Anwendung verwendet • public boolean isActive() werden. Gibt an ob der Kontext aktiv ist oder nicht. @TimeScoped @Named public class TimedScopedContext public class TimedScopeSample {...} implements Context { private static class TimeBox{ … } Entdecke die Möglichkeiten Map instances = Die beiden genannten Beispiele zeigen natürlich nur ei- new ConcurrentHashMap(); nen kleinen Ausschnitt der Möglichkeiten, die dem Ent-

2 Die gewählte Semantik des neuen Kontextes legt keinen Wert auf gesteigerte wickler mit dem Extension-Mechanismus an die Hand Sinnhaftigkeit, vielmehr lag das Augenmerk auf Einfacheit bei gleichzeitiger gegeben werden. Der interessierte Leser sei an dieser Vollständigkeit der Implementierung (also Verzicht auf eine einfache Erweite- rung und Abänderung eines bestehenden Kontextes). Stelle noch einmal auf die Dokumentation der Refe-

Seite 42 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 renzimplementierung [3] verwiesen, mit dem speziellen Hinweis auf das BeanManager- bzw. das InjectionTarget- Interface. Herbstcampus Third Party Extensions Es müssen aber nicht immer selbstgeschriebene Er­ weiterungen sein. Auch für CDI-Extensions gibt es in- zwischen eine ganze Reihe von Anbietern. So bietet z.B. das Apache-Projekt Deltaspike [4] eine ganze Sammlung von Erweiterungen an. Diese sind in verschiedenen Mo- dulen organisiert und reichen u.a. von Kernfunktionali- täten (z.B. I18N und Exception-Handling) über Themen wie Sicherheit und BeanValidation-Integration bis hin zur erweiterten Container-Kontrolle (z.B. explizites Starten und Stoppen von Kontexten im Rahmen von Unit-Tests). Hier finden sich jede Menge funktionale Erweiterungen, die sicher einen Blick Wert sind.

Fazit CDI bietet mit den portable Extensions einen mächtigen Mechanismus zur Erweiterung des „Grundframeworks“ an. Damit gibt der Standard dem Entwickler die Möglich- keit Funktionalitäten, die er vermisst, auf eine wohl defi- nierte Art und Weise in das Gesamtsystem zu integrieren. Dank der – wie immer sehr aktiven – Java-Entwick- lergemeinde ist es teilweise nicht einmal mehr notwendig selbst Hand anzulegen. Unter Umständen reicht es bereits aus einfach die passenden Extensions zu „er-googeln“. Happy Coding September 2014 Insofern gilt ab sofort: nicht über fehlende Funktionalität im Framework schimpfen, sondern einfach passend er- weitern! In diesem Sinne: Happy CDI-Coding! in Nürnberg

Referenzen [1] Java Community Process JSR-299 – Contexts and Dependency Injection (V1.0) http://jcp.org/en/jsr/detail?id=299 [2] Java Community Process JSR -346 – Contexts and Dependency Injection (V1.1) http://jcp.org/en/jsr/detail?id=346 [3] SeamFramework.org Portable Extensions http://docs.jboss.org/weld/reference/latest/en-US/html/extend.html [4] Apache Deltaspike home http://deltaspike.apache.org

Kurzbiographie Werner Eberling ( ) ist Principal Consultant und Tech- nical Lead bei der MATHEMA Software GmbH in Erlangen. Seit 1999 beschäftigt er sich mit verteilten Systemen, sein Fokus liegt da- bei auf CORBA und der JEE. Sein aktuelles Steckenpferd ist die An- wendungsentwicklung für mobile Endgeräte bzw. deren Anbindung an Enterpri- se Systeme. Neben seiner Projekttätigkeit hält er Technologie-Trainings in Deutschland und der Schweiz und ist als Sprecher auf nationalen und internatio- nalen Konferenzen anzutreffen. Er ist u.a. Autor des Buches „Enterprise JavaBe- ans 3.1 Das EJB-Praxisbuch für Ein- und Umsteiger“, erschienen im Hanser Verlag.

Seite 43 Des Programmierers kleine Vergnügen Dünn besät von Michael Wiedeking

elegentlich hat man das Problem, dass ein Array nur verhältnismäßig wenige Einträge hat. Dieses Problem lässt sich etwa – wie schon in früheren Vergnügen gesehen – G teilweise mit einem Bit-Array lösen, womit zumindest geklärt ist, ob ein Element überhaupt vorhanden ist. Jetzt stellt sich nur die Frage, wie man das dazugehörige Element effizient finden kann.

Will man Elemente einem Index zuordnen, so bietet sich ausfindig gemacht wird, bei dem das korrespondierende zur Speicherung derselben oft ein Array an. Reichen die gesetzte Bit j das Vorhandensein markiert. Indizes etwa von 0 bis 999, so legt man entsprechend ein w = i ≫ 5; // i / 32 Array mit 1000 Elementen an. Allgemein benötigt man j = i & (32 – 1); // i mod 32 für die Indizes 0 bis k – 1 ein k-elementiges Array. Soll m = 1 ≪ j; dieses Array aber nur spärlich, etwa mit 100 Elementen word = words[w]; besetzt werden, so stehen 900 Plätze leer. Eigentlich könnte der Speicherplatz rein rechnerisch auf 10 % re- Ob das entsprechende Bit an der Stelle j gesetzt ist, kann duziert werden, wenn es denn eine Möglichkeit gäbe, die dann mit Hilfe der Maske m geprüft werden, in der nur Daten anders zu strukturieren und der Zugriff auf ein das Bit j gesetzt ist. Ist das Ergebnis bei einer Und-Ver- bestimmtes Element nicht all zu ineffizient wird. knüpfung 0, dann gibt es den entsprechenden Eintrag Bei einem dünn besiedelten Array gilt es zwei Pro- nicht. bleme zu lösen. Das erste ist, herauszufinden, ob denn das if ((word & m) == 0) { gewünschte Element überhaupt vorhanden ist; und das // Element ist nicht vorhanden. zweite ist, dass gewünschte Element zu liefern. return null; Das erste Problem lässt sich leicht lösen, indem man – } wie im Oktober-Vergnügen 2010 erklärt [1] – sich eines Bit-Arrays bedient. Damit lässt sich verhältnismäßig ef- Wenn das Element vorhanden ist, stellt sich natürlich die fizient herausfinden, ob ein Element vorhanden ist. Für Frage, wo man dieses finden kann. jedes Element muss dafür allerdings ein Bit bereitgestellt Dieses zweite Problem ist aus Speichersicht am ein- werden. Bei obigem Beispiel wären also 1000 Bits nötig, fachsten lösbar, indem man die Werte der Reihe nach in die man als Array words von 32-Bit-Worten vorhalten ein Array data schreibt. Ein Array ist eben das platzspa- könnte. rendste Mittel der Wahl, weil keine zusätzlichen Verwal- Die 1000 Bit benötigen dann 1000 Bit / 32 Bit = tungsstrukturen benötigt werden. Bei den im Beispiel 32 Worte. Ob das Element i mit 0 ≤ i < 1000 vorhanden angesprochenen 100 Elementen hat dieses Array tat- ist, lässt sich prüfen, indem das entsprechende Wort w sächlich nur die Größe von 100 Einträgen. Leider mit

Seite 44 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Des Programmierers kleine Vergnügen

dem Preis, dass das korrekte Element nicht auf Anhieb etc. Es genügt also alle Bits unterhalb des gewünschten gefunden werden kann. Bits j zu zählen. Oder mit anderen Worten: man muss Wie kann man denn herausfinden, welchem Index die gesetzten Bits zählen, wenn alle Bits oberhalb und das erste Element dieses data-Arrays zugeordnet wurde? einschließlich Bit j ignoriert werden. Eigentlich ganz einfach: Der erste Eintrag gehört zu dem Das können wir erreichen, indem wir die uner- ersten gesetzten Bit im words-Array und allgemein der wünschten Bits mit einer geeigneten Maske ausblenden. i-te Eintrag im data-Array zum i-ten gesetzten Bit im Dazu können wir die Maske m weiter verwenden. Wie words-Array. spätestens im Dezember-Vergnügen 2008 gezeigt wurde Mal angenommen nur die Elemente mit den Indizes [3], erhält man, wenn man von einer Zahl 1 subtrahiert, 5, 10, 50, 500 und 999 sind definiert, dann ergibt sich da- bei der nur das einzelne Bit k (mit k ≥ 0) gesetzt ist (einer raus das folgende words-Array (nicht dargestellte Wörter Zweierpotenz!), eine Zahl, bei der die niederwertigen k enthalten nur Nullen): Bits gesetzt sind. Da die Maske m nur ein gesetztes Bit hat, ist m – 1 die gesuchte Maske, mit der sich alle un- 00000000 00000000 00000100 00100000 = words[0] erwünschten Bits ausblenden lassen. Bestimmt man nun 00000000 00000100 00000000 00000000 = words[1] ⋮ die Anzahl der darin gesetzten Bits, so erhält man den 00000000 00010000 00000000 00000000 = words[15] gesuchten Versatz. ⋮ m = m – 1; 00000000 00000000 00000000 10000000 = words[31] data_i = sum[j] + bitCount(word & m); return data[data_i]; Damit wird also der erste Eintrag im data-Array über den Index 5 und damit durch das Bit 5 im Wort 0 re- Bezogen auf obiges Beispiel und unter der Annahme, dass präsentiert; das dritte Element im data-Array mit dem ein zu speicherndes Element 4 Byte = 32 Bit benötigt, ver- Index 50 steht für das Bit 18 im nächsten Wort 1. Wie braucht der vorgestellte Ansatz 100 · 4 Byte = 400 Byte kommt man aber darauf, dass es ausgerechnet der dritte für das data-Array plus 1000 Bit ≙ 128 Byte für das words- Eintrag ist? Weil im ersten Wort zwei Bits gesetzt sind Array plus 32 Byte = 128 Byte für das sum-Array. Damit und damit der dritte Eintrag durch das erste gesetzte Bit ist der Bedarf von 1000 · 4 Byte = 4000 Byte auf nur in diesem Wort repräsentiert wird. Das data-Array hat 656 Byte geschrumpft. Das ist beachtlich: Die rechne- nämlich genau so viele Elemente wie das words-Array in rischen 10 % werden natürlich nicht erreicht, aber im- seiner Gesamtheit gesetzte Bits hat. merhin 16,5 %. Hier hilft die bitCount-Funktion, mit der schon im Übrigens könnte man noch zusätzliche 96 Byte ein- November-Vergnügen 2008 die gesetzten Bits in einem sparen, wenn man die kumulierte Summe (die ja maximal Wort gezählt wurden [2]. Man könnte jetzt in einer 100 beträgt) in einem statt vier Byte unterbringt. Damit Schleife nachzählen, wie viele Bits bis (ausschließlich) reduziert sich der benötigte Platz auf 560 Byte respekti- zu dem gewünschten Wort gesetzt waren und anschlie- ve 14 %. Die Ersparnis schwankt natürlich stark mit der ßend in diesem Wort die Bits bis zu dem gewünschten Anzahl der Elemente im Verhältnis zur Gesamtgröße. Bit zählen. Damit hätte man den gewünschten Index für Der Preis den man dafür zahlt, ist der Zugriff auf das data-Array gefunden. zwei zusätzliche Arrays und der Berechnungsaufwand Anstatt jedoch dauernd die Schleife und die bit- für die Bestimmung des konkreten Bits und nicht zuletzt Count-Funktion zu bemühen, könnte man die wortwei- die Berechnung der gesetzten Bits. Wie immer gilt: Alles sen Ergebnisse in einem Array sum „zwischenspeichern“. hat seinen Preis. Und wer Platz sparen muss, macht es in Die Anzahl der kumulierten Bits für das erste Wort diesem Fall – wie so oft – auf Kosten der Performanz. ist sum[0] = 0, für das zweite sum[1] = 2, für das dritte = sum[2] 3 usw. Das Schöne ist, dass hier der Wortin- Referenzen dex w unverändert verwendet werden kann. [1] Wiedeking, M. Des Programmierers kleine Vergnügen – Überläufer, Jetzt fehlt zu unserem Glück nur noch eine Möglich- KaffeeKlatsch, Jahrgang 3, Nr. 10, S. 12, Bookware, Oktober 2010 http://www.bookware.de/kaffeeklatsch/archiv/KaffeeKlatsch-2010-10.pdf keit, den korrekten Versatz für das gesuchte Bit j inner- [2] Wiedeking, M. Des Programmierers kleine Vergnügen – Über das Zählen von Bits, halb des Wortes zu bestimmen. Auch hier kann wieder die KaffeeKlatsch, Jahrgang 1, Nr. 11, S. 14 f, Bookware, November 2008 bitCount-Funktion helfen. Das erste gesetzte Bit hat den http://www.bookware.de/kaffeeklatsch/archiv/KaffeeKlatsch-2008-11.pdf [3] Wiedeking, M. Des Programmierers kleine Vergnügen – Potenzweierlei, Versatz 0 zu der bereits ermittelten Summe der gesetzten KaffeeKlatsch, Jahrgang 1, Nr. 12, S. 3, Bookware, Dezember 2008 Bits. Das zweite gesetzte Bit hat dann den Versatz 1 http://www.bookware.de/kaffeeklatsch/archiv/KaffeeKlatsch-2008-12.pdf

Seite 45 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Deutsch für Informatiker wenn Sie hören, dass Ihnen das Stroh zu den Schuhen he- rausschaut (słoma z butów wystaje). Denn dann haben Sie etwas ganz Blödes gemacht. Redewendungen Wenn Sie nur Bahnhof verstehen, dann verstehen die von Alexandra Specht Franzosen und Spanier Chinesisch (c’est du chinois pour moi; esto me suena a chino) und die englisch Sprechenden ugust ist, zumindest hier in Bayern Griechisch (it’s all greek to me.). Das ist ja schon fast wie in respektive Franken, die Haupturlaubs- Babylon. zeit. Die Straßen sind erfreulich frei Und wenn Ihnen etwas spanisch vorkommt, dann ist am Morgen und man findet genü- es fischig für die Engländer (there is something fishy going gend freie Parkplätze in Wohnge- on here) und etwas unkatholisch für die Franzosen (cette bieten. Sicher sind auch von unse- affaire ne me paraît pas très catholique). Die Spanier wie- ren Leserinnen und Lesern derum vermuten, dass irgendwo eine Katze eingesperrt sein A viele gerade im Urlaub. Und muss (aquí hay gato encerrado). vielleicht auch im Ausland. Für diesen Fall oder einen Im Deutschen heißt es lapidar andere Länder andere späteren Urlaub möchte ich Ihnen nun ein paar nütz- Sitten. In anderen Sprachen wird einem gleich vorge- liche Redewendungen an die Hand geben, mit denen schlagen, dass es besser sei, es wie die Römer zu machen Sie, wenn alles gut läuft, Einheimische beeindrucken (when in Rome, do as the Romans; a Rome, fais comme les können. Romains) oder genereller sagen es die Spanier, die an- Natürlich wünsche ich Ihnen immer schönes Wet- scheinend nicht nach Italien möchten: man soll es machen, ter, aber wenn es mal wie aus Eimern regnet, dann sind wie man es beobachtet, wohin auch immer man geht (a donde es in England Katzen und Hunde; Eimer finden Sie da fueres, hay lo que vieres). nicht (it is raining cats and dogs). Ich hoffe, Sie müssen Vergebliche Liebesmühe ist ebenfalls in den Ländern nicht auf Norwegisch sagen, dass es stark regnet, denn unterschiedlich umschrieben. Sie können Eulen nach dann müssten Sie übersetzt sagen, dass es weibliche Trolle Athen, Kohlen nach Newcastle (carry coals to Newcastle), regnet – leider habe ich dafür keine Übersetzung. In ei- Wasser zum Meer (porter de l’eau à la rivière) oder aber nigen afrikanischen Ländern regnet es sogar alte Damen Holz zum Berg tragen (levar leña al monte). mit Keulen, aber auch da müssen Sie im Zweifelsfall den Holz kann ich Ihnen noch mehr anbieten: auf dem 1 dortigen Dialekt lernen. Holzweg sein. Die Engländer bellen den falschen Baum an Wenn es denn tatsächlich regnet, können Sie sich (barking up the wrong tree). Die Franzosen stechen sich den 2 oder Ihrer Begleitung zur Aufheiterung sagen auf Re- Finger ins Auge (se mettre le doigt dans l’œil) während die gen folgt Sonnenschein. Das verstehen sicher auch unsere Spanier den Schuß nur verpassen und offensichtlich nicht deutschsprachigen Nachbarn. Oder every cloud has a silver verletzt werden (errar el tiro). lining ( Jede Wolke hat einen Silberstreif ) wenn Sie in So, dann hoffe ich, dass niemand sie am Bein (pull England sind. Ob man das in den USA auch sagt, weiß someone’s leg) oder an den Haaren zieht (tomar el pelo a ich nicht. Aber vielleicht weiß das nach dem Urlaub je- alguien) und nicht mit auf ’s Boot nimmt (mener quelqu’un mand, der es ausprobiert hat und einen verständnislosen en bateau). Dann würde Ihnen nämlich jemand einen Bä- Blick geerntet hat. In Frankreich ist das Sprichwort fast ren aufbinden. gleich wie im Deutschen: après la pluie, le beau temps. Und Ich hoffe vielmehr, dass Sie sich im Urlaub, bezie- in Spanien gibt es nichts Schlechtes, das nicht auch Gutes hungsweise im ganzen Sommer, egal wo Sie sich befin- bringt (no hay mal que por bien no venga). den, wohlfühlen wie die Made im Speck, ein Käfer im Tep- Ich hoffe, Sie gehören nicht zu den typisch deutschen pich (snug as a bug in a rug), ein Hahn in der Pastete (comme Touristen, die aus jeder Mücke einen Elefanten machen. Falls un coq en pâte) oder sie es einfach gemütlich und warm doch könnten Sie in England hören, dass sie a mountain haben (estar acurrucadito y calentito). out of a molehill (einen Berg aus einem Maulwurfhügel) machen, oder in Spanien hacer una montaña de un grano 1 Da kann ich Ihnen auch noch erzählen, woher das kommt: Wenn Holzfällar- beiten im Wald erledigt werden, werden die Stämme oft ein bisschen tiefer in de arena (aus einem Sandkorn einen Berg). Dann wissen den Wald gezogen und gelagert, bevor sie abgeholt werden. Dadurch werden Sie, dass Sie erkannt sind. Wege geschaffen, die allerdings dann nirgendwo hinführen als zu den Stämmen oder leeren Plätzen. Man war also auf dem Holzweg.

Und wenn Sie sich ganz schrecklich aufführen und 2 Das ist ein bisschen eklig. Und ich kann mir auch nicht vorstellen, warum man gerade in Polen sind, dann sollte Ihnen zu denken geben, so dazu sagt.

Seite 46 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Kaffeesatz Altmodisch bewährt sich von Lisa Marie Wehlmann-Wiedeking

ei technischen Geräten weiß man ja nie. Fehlermeldungen, Verschicken ganzer Adressbücher und mehr oder weniger abhörbare Korrespondenzen. Es scheint als hätte es früher weniger Überfälle auf Kutschen mit versiegelten BStaatsangelegenheitsbriefen gegeben, als es heute Hacker gibt.

Oder vielleicht wurden die Räuber damals nicht vom Nachbarland geschickt, weil man sich für weiter entfernte Länder einfach noch nicht interessierte, soweit sie einem nicht den Krieg erklären wollten. Auf jeden Fall scheint es den Politikern heute nicht zu gefallen, wenn ihre ge- heimen Staatsbeschlüsse in die Hände von ausländischen Spionen und Regierungen fallen. Im Kreml in Moskau hat man jetzt seine Konsequenzen gezogen. Obwohl Computer natürlich tausende von Vorteilen haben, wie schnelles Eintip- pen, Backups und Autokorrektur, können sie von Außerhalb eingesehen werden, so man das nötige technische Verständnis mitbringt. Im Kreml setzt man seit Kurzem wieder auf Schreibmaschinen. Da können Fehler nur mit Tipp-Ex und ruhiger Hand korrigiert werden und auch das Kopieren sieht wahrscheinlich wieder eher nach lästigem Abtippen aus. Wenn man die hinterlassenen Kohlepapiere dann nicht falsch entsorgt, sodass zufäl- lig ein Spion, der sich der altmodischen Verwendungsweise der Geräte anpasst und die Mülltonnen durchsucht, steht dem neuen Trend nichts mehr im Wege. Retro ist ja heute überall in. Denn auch wenn die viel mehr Lärm machen, wenn man auf sie einhackt, und die hübschen Sekretärinnen, soweit sie überhaupt mit den geheimen Schriften beauf- tragt werden, muskulösere Arme bekommen sollten, kann man diese entstehenden Papierberge nicht nur hinter einer Firewall, sondern hinter richtigen Steinwänden verstecken. Und durch die kann man von Außen nun wirklich nicht hineinschauen.

Kurzbiographie Lisa-Marie Wehlmann-Wiedeking ist fünfzehn Jahre alt und Neuntklässlerin. Wenn sie ein schönes Thema findet, das in den KaffeeKlatsch passt, schreibt sie sehr gerne Artikel. Sie hat sich vorgenommen zu bloggen (allerdings nicht zu Soft- ware-Entwicklungs-Themen) und möglichst bald eines ihrer Bücher fertig zu stellen.

Seite 47 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 JUGC Java User Group Köln User Groups http://www.jugcologne.org Fehlt eine User Group? Sind Kontaktdaten falsch? Kontakt: Herr Michael Hüttermann Dann geben Sie uns doch bitte Bescheid. ( ) Bookware jugm Henkestraße 91, 91052 Erlangen Java User Group München Telefon: 0 91 31 / 89 03-0 http://www.jugm.de Telefax: 0 91 31 / 89 03-55 Kontakt: Herr Andreas Haug ( ) E-Mail: JUG Münster Java User Group für Münster und das Münsterland Java User Groups http://www.jug-muenster.de Deutschland Kontakt: Herr Thomas Kruse ( ) JUG MeNue JUG Berlin Brandenburg Java User Group der Metropolregion Nürnberg http://www.jug-bb.de c/o MATHEMA Software GmbH Kontakt: Herr Ralph Bergmann ( ) Henkestraße 91, 91052 Erlangen JUG DA http://www.jug-n.de Java User Group Darmstadt Kontakt: Frau Alexandra Specht http://www.jug-da.de ( ) Kontakt: JUG Ostfalen Java User Group Saxony Java User Group Ostfalen Java User Group Dresden (Braunschweig, Wolfsburg, Hannover) http://www.jugsaxony.de http://www.jug-ostfalen.de Kontakt: Herr Torsten Rentsch ( ) Kontakt: Uwe Sauerbrei ([email protected]) Herr Falk Hartmann ( ) JUGS e.V. Herr Kristian Rink ( ) Java User Group Stuttgart e.V. rheinjug e.V. c/o Dr. Michael Paus Java User Group Düsseldorf http://www.jugs.org Heinrich-Heine-Universität Düsseldorf Kontakt: Herr Dr. Micheal Paus ( ) http://www.rheinjug.de Herr Hagen Stanek ( ) Kontakt: Herr Heiko Sippel ( ) ruhrjug Schweiz Java User Group Essen JUGS Glaspavillon Uni-Campus Java User Group Switzerland http://www.ruhrjug.de http://www.jugs.ch ( ) Kontakt: Herr Heiko Sippel ([email protected]) Kontakt: Frau Ursula Burri JUGF Java User Group Frankfurt http://www.jugf.de Kontakt: Herr Alexander Culum .NET User Groups ([email protected]) Deutschland JUG Deutschland e.V. Java User Group Deutschland e.V. .NET User Group OWL c/o asc-Dienstleistungs GmbH http://www.gedoplan.de/cms/gedoplan/ak/ms_net http://www.java.de ( ) c/o GEDOPLAN GmbH JUG Hamburg .NET User Group Bonn Java User Group Hamburg .NET User Group "Bonn-to-Code.Net" http://www.jughh.org http://www.bonn-to-code.net ( ) Kontakt: Herr Roland Weigelt JUG Karlsruhe Java User Group Karlsruhe .NET User Group Dortmund (Do.NET) Universität Karlsruhe, Gebäude 50.34 c/o BROCKHAUS AG http://jug-karlsruhe.de http://do-dotnet.de [email protected] Kontakt: Paul Mizel ( )

Seite 48 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 User Groups

Die Dodnedder Österreich .NET User Group Franken .NET Usergroup Rheintal http://www.dodnedder.de c/o Computer Studio Kogoj Kontakt: Herr Udo Neßhöver, Frau Ulrike Stirnweiß http://usergroups.at/blogs/dotnetusergrouprheintal/default.aspx ( ) Kontakt: Herr Thomas Kogoj ( ) .NET Usergroup Frankfurt .NET User Group Austria c/o Thomas Sohnrey, Agile IService c/o Global Knowledge Network GmbH, http://www.dotnet-ug-frankfurt.de http://usergroups.at/blogs/dotnetusergroupaustria/default.aspx Kontakt: Herr Thomas 'Teddy' Sohnrey Kontakt: Herr Christian Nagel ( ) ( ) .NET DGH .NET Developers Group Hannover Software Craftsmanship http://www.dotnet-hannover.de Kontakt: Herr Friedhelm Drecktrah Communities ( ) Deutschland, Schweiz, Österreich INdotNET Softwerkskammer – Mehrere regionale Gruppen und Ingolstädter .NET Developers Group Themengruppen unter einem Dach http://www.indot.net http://www.softwerkskammer.org Kontakt: Herr Gregor Biswanger ( ) DNUG-Köln DotNetUserGroup Köln http://www.dnug-koeln.de Kontakt: Herr Albert Weinert ( ) .NET User Group Leipzig http://www.dotnet-leipzig.de Kontakt: Herr Alexander Groß ( ) Herr Torsten Weber ( ) .NET Developers Group München http://www.munichdot.net Kontakt: Hardy Erlinger ( ) .NET User Group Oldenburg c/o Hilmar Bunjes und Yvette Teiken http://www.dotnet-oldenburg.de Die Java User Group Kontakt: Herr Hilmar Bunjes ( ) Metropolregion Nürnberg Frau Yvette Teiken ( ) trifft sich regelmäßig einmal im Monat. .NET User Group Paderborn c/o Net at Work Netzwerksysteme GmbH, http://www.dotnet-paderborn.de Thema und Ort werden über ( ) Kontakt: Herr Mathias Raacke www.jug-n.de .NET Developers Group Stuttgart Tieto Deutschland GmbH bekannt gegeben. http://www.devgroup-stuttgart.de ( ) Kontakt: Frau Catrin Busley Weitere Informationen .NET Developer-Group Ulm finden Sie unter: c/o artiso solutions GmbH http://www.dotnet-ulm.de www.jug-n.de Kontakt: Herr Thomas Schissler ( )

Seite 49 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 meet the experts of enterprise infrastructure

Programmierung mit Java Einführung in die Java-Technologie und die Programmiersprache Java 21. – 25. Oktober 2013, 1.645,– € (zzgl. 19 % MwSt.)

Neues in Java 7 Die nächste Java Generation 6. – 7. November 2013, 835,– € (zzgl. 19 % MwSt.)

Spring Framework JavaEE ganz ohne EJB 18. – 20. November 2013, 1.315,– € (zzgl. 19 % MwSt.)

Mobile Anwendungen für das Apple iPhone 25. – 27. November 2013, 1.180,- € (zzgl. 19 % MwSt.) Lesen bildet. Training macht fit.

Software GmbH Telefon: 09131/ 89 03-0 Internet: www.mathema.de Henkestraße 91, 91052 Erlangen Telefax: 09131/ 89 03-55 E-Mail: [email protected]

Software-Entwickler (m/w) Software-Architekt (m/w)

Arbeiten Sie gerne selbstständig, motiviert und im Team? Haben Sie gesunden Ehrgeiz und Lust, Verantwortung zu übernehmen? Wir bieten Ihnen erstklassigen Wissensaustausch, ein tolles Umfeld, spannende Projekte in den unterschiedlichsten Branchen und Bereichen sowie herausfordernde Produktentwicklung. Wenn Sie ihr Know-how gerne auch als Trainer oder Coach weitergeben möchten, Sie über Berufserfahrung mit verteilten Systemen verfügen und Ihnen Komponenten- und Objektorientierung im .Net- oder JEE-Umfeld join the vertraut sind, dann lernen Sie uns doch kennen. Wir freuen uns auf Ihre Bewerbung! expertsof enterprise infrastructure

Software GmbH Telefon: 09131/ 89 03-0 Internet: www.mathema.de Henkestraße 91, 91052 Erlangen Telefax: 09131/ 89 03-55 E-Mail: [email protected] Hanser Hitlist

Werner Eberling, Jan Leßner Enterprise JavaBeans 3.1 Das EJB-Praxisbuch für Ein- und Umsteiger 2., aktualisierte und erweiterte Auflage.

ISBN 978-3-446-42259-9 · € 39,90

ISBN 978-3-446-42728-0 · € 44,90 ISBN 978-3-446-42924-6 · € 34,90 ISBN 978-3-446-42986-4 · € 34,90

ISBN 978-3-446-41841-7 · € 49,90 ISBN 978-3-446-43338-0 · € 39,99 ISBN 978-3-446-43059-4 · € 34,90

Jedes Buch mit www.hanser-fachbuch.de/computer kostenlosem E-Book Wir suchen ab sofort einen:

Java Enterprise Entwickler (m/w) Für die Weiterentwicklung einer mehrschichtigen Webanwendung

Die CLEAR IT GmbH ist ein erfolgreich expandierender IT-Dienstleister für Produkte der High Tech Software und neben drei weiteren Smart Companies ein Unternehmen der CLEAR GROUP. Der Schwerpunkt der CLEAR IT liegt in der Entwicklung objektorientierter Softwareapplikationen, datenbankgestützter Informa- tionssysteme und der Anpassung von High Tech-Software.

Ihr Profi l: Wir machen • Abgeschlossenes Studium in Informatik / Wirtschafts- High-Tech und Karrieren! informatik oder eine vergleichbare Ausbildung • Gute Kenntnisse in objektorientierter Programmierung Wir freuen uns auf die Zusendung im Bereich Java EE Ihrer aussagekräftigen Bewerbungs- • Praktische Erfahrungen mit Open Source Frameworks unterlagen per E-Mail. wie Spring und Hibernate • Affi nität zu agilen Softwareentwicklungsmethoden Ansprechpartner: Herr Czyperreck E-Mail: [email protected] Ihre Aufgaben:

• Entwicklung releasefähiger Software-Inkremente • Durchführung von Code Reviews und Refactoring • Intensive Kommunikation mit Projektpartnern und Kunden

CLEAR IT GmbH Wir bieten Ihnen: Am Weichselgarten 21 91058 Erlangen • Ein modernes und agiles Arbeitsumfeld • Überdurchschnittliche Gehaltsentwicklung Tel: +49 9131 68 59 18 35 • Zielgerichtete Weiterbildungsangebote Internet: www.clear-it.de • Individuelle Karrieremöglichkeiten innerhalb der E-Mail: [email protected] Unternehmensgruppe www.dpunkt.de Testen

2013 · 390 Seiten · E 42,90 (D) 2013 · 248 Seiten · E 34,90 (D) ISBN 978-3-86490-048-8 ISBN 978-3-89864-799-1 2013 · 224 Seiten · E 32,90 (D) 2013 · 184 Seiten · E 29,90 (D) ISBN 978-3-86490-046-4 ISBN 978-3-89864-831-8

NEU NEU NEU

Programmierung 2013 · 370 Seiten · E 34,90 (D) 2013 · 324 Seiten · E 26,90 (D) ISBN 978-3-86490-047-1 ISBN 978-3-86490-022-8 2013 · 260 Seiten · E 32,90 (D) 4. Auflage ISBN 978-3-86490-049-5 2013 · 376 Seiten · E 39,90 (D) ISBN 978-3-86490-081-5

Web

2013 · 314 Seiten · E 36,90 (D) 2013 · 238 Seiten · E 33,90 (D) 2012 · 334 Seiten · E 32,90 (D) ISBN 978-3-86490-008-2 2013 · 228 Seiten · E 34,90 (D) ISBN 978-3-86490-025-9 ISBN 978-3-89864-829-5 ISBN 978-3-86490-023-5

Buch + E-Book: www.dpunkt.de/plus dpunkt.verlag GmbH · Wieblinger Weg 17 · D-69123 Heidelberg fon: 0 62 21 / 14 83 40 · fax: 14 83 99 · e-mail: [email protected] Das Allerletzte

public static final String HTTP_RESPONSE_STATUS_OK = "200"; public static final String HTTP_RESPONSE_STATUS_NOT_OK = "–200";

Dies ist kein Scherz! Dieser Code-Abschnitt wurde tatsächlich in der freien Wildbahn angetroffen.

Ist Ihnen auch schon einmal ein Exemplar dieser ­Gattung über den Weg gelaufen? Dann scheuen Sie sich bitte nicht, uns das mitzuteilen.

Der nächste KaffeeKlatsch erscheint im September.

Seite 54 KaffeeKlatsch Jahrgang 6 / Nr. 8 / August 2013 Herbstcampus

Wissenstransfer par excellence

September 2014 in Nürnberg