Dieser praxisorientierte Ganztagesworkshop führt in die Grundlagen der Entwicklung von Android-Anwendungen ein. Voraussetzung für den Workshop ist ein Notebook, denn die Teilnehmer installieren die komplette Entwicklungsumgebung selbst und erstellen im Laufe des Workshops eine komplette Anwendung. Der Test erfolgt gegen einen Device Emulator. Wer ein Android-Handy besitzt, sollte dieses auf jeden Fall mitbringen, da man auch darauf testen und debuggen kann. Die erstellte Anwendung ist ein Fahrtenbuch, mit dem man eigene Aktivitäten protokollieren kann.
Teil 1: Android-Grundlagen
Teil 2: UI Concepts
Teil 3: Storage, ContentProvider
Teil 4: Google Maps, Location, Sensors
Teil 5: Useful Stuff, Outlook
by mobileLarson
JavaServer Faces sind mittlerweile Standard, wenn es um die Entwicklung Java-basierter Webanwendungen geht. Allerdings sind einige der im Framework enthaltenen Konzepte zu Recht nicht ganz unumstritten, da sie entweder an der Realität vorbei spezifiziert wurden oder sich ausschließlich auf die Visualisierungsschicht konzentrieren und somit die anderen Schichten der Webanwendung nicht ausreichend berücksichtigen. JSF ManagedBeans, JSF Scopes und JSF-basierte Validierung sind nur einige der Punkte, die immer wieder Anlass zur Diskussionen bieten. Wie aber sieht die „richtige“ Lösung aus? Dank JSR 299 (CDI a.k.a. WebBeans) gibt es ein neues Dream Team in der Webentwicklung: JSF 2 und CDI. Der Workshop zeigt anhand eines praxisnahen Beispiels, wie mit JSF 2.0, CDI 1.0 und JPA 2.0 eine hocheffiziente Webarchitektur erfolgreich umgesetzt und bei Bedarf mit Hilfe von CDI Extension nahezu beliebig erweitert werden kann. Dabei werden neben der reinen Architektur und Integration der verschiedenen Technologien natürlich auch einige Highlights aus den einzelnen Spezifikationen gezeigt, die eine echte „State-of-the-Art“ Webanwendung ausmachen.
by romanroe
Scala erobert die Java-Welt im Flug. Und das ist kein Wunder, denn Scala ist eine ausgereifte, objektfunktionale, statisch typisierte, leichtgewichtige, ausdrucksstarke, pragmatische und skalierbare Sprache für die Java Virtual Machine, die hundertprozentig “abwärtskompatibel” zu Java ist. Was bedeutet das für Sie? Zum Beispiel können Sie mit Scala die Lines of Code signifikant reduzieren, wirklich ausdrucksstarken und damit gut verständlichen Code schreiben und neue Möglichkeiten wie Closures einsetzen. Interessiert? Dann lernen Sie in diesem Workshop die Grundlagen dieser zukunftsträchtigen Programmiersprache kennen. Wir werden zahlreiche praktische Übungen durchführen, bitte bringen Sie daher Ihr Notebook mit.
Web-Services-Technologie hat sich in vielen Unternehmen zu einem Standardwerkzeug für die Lösung von Integrationsaufgaben entwickelt. Vielfach stellt sich jedoch die Frage nach dem besten Ansatz für die Entwicklung von Services, insbesondere auch in Bezug auf das wichtige Thema Sicherheit. In diesem Hands-on-Workshop lernen Teilnehmer, wie sichere und interoperable Web-Services-Anwendungen erstellt werden. Dabei werden zahlreiche Best Practices vermittelt, die in über zehn Jahren praktischer Projektarbeit gesammelt wurden.
* Contract-First-Ansatz
* Implementierung und Deployment eines Service
* Testen des Service
* Implementierung eines Service-Clients
* Absicherung der Kommunikation mit SSL, WS-Security und Policies
Wichtiger Bestandteil dieses Workshops sind zahlreiche praktische Übungen.
Scrum setzt stark auf Teamarbeit. Typische Gruppenphänomene zu kennen ist somit hilfreich, um angemessen mit den sich ergebenden Situationen umgehen zu können. In dem Vortrag lernen Sie psychologische Phänomene aus der Gruppendynamik sowie angemessene Interventionsmöglichkeiten kennen und schätzen deren Bedeutung auf ein Scrum-Team ein.
by Halil-Cem Gürsoy and Eberhard Wolff
Cloud-Ansätze revolutionieren, wie IT-Services angeboten und verwendet werden. Dadurch ändern sich auch die Anforderungen an Softwarearchitekturen. Dieser Workshop gibt zunächst einen Überblick über verschiedene Cloud-Plattformen, insbesondere im Java-PaaS-Bereich. Dann wird praktisch gezeigt, wie mit PaaS-Clouds wie Cloud Foundry oder Google App Engine Anwendungen implementiert werden können. Grundlage für leistungsfähige Cloud-Systeme sind das CAP-Theorem oder der BASE-Ansatz, auf die im Weiteren eingegangen wird. Praktisch wird ein solcher Architekturansatz anhand einer NoSQL-Datenbank und der Messaging-Lösung RabbitMQ ausprobiert. Abschließend wird auf die Verarbeitung großer Datenmengen mit Map/Reduce (Apache Hadoop) eingegangen.
by Adam Bien
Man kann auch übertreiben und Java-EE-Anwendungen "konventionell" Entwickeln. Java EE 6 ermöglicht jedoch neue Möglichkeiten für die "pragmatische" Umsetzung von Konzepten. In diesem Workshop werden wir Java-EE-6/7-Projekte ganzheitlich betrachten, von Packaging mit Maven 3 bis zu embedded Integrations- und Stresstests in Jenkins. Neben dem gesamten Lebenszyklus der Software werden wir Web UI, Konfiguration, Logging (Injection), asynchrone Verarbeitung, proaktives Monitoring, Clustering, Timer, Comet/asynchrone Servlets, zustandbehaftete Persistenz, alternative Protokolle wie Hessian, Unit- und embedded Integration- und Stresstests, Continuous Integration/Fitnesse Tests, Java EE 6 Deployment und Paketierung, CDI, EJB, JPA, JAX-RS Features diskutieren und implementieren.
Dieser Workshop richtet sich in an alle Menschen, die professionell mobile Webanwendungen entwickeln möchten. Der Workshop gliedert sich in vier Blöcke, die jeweils kurz die benötigte Theorie vermitteln und dann Raum für eigene Übungen bieten. Der Tag beginnt mit einer Kurzeinführung (teil 1) in JavaScript, stellt die wichtigsten Programmierpraktiken vor und führt ein durchgängiges Beispiel inklusive eines fertigen REST Backends ein. Für dieses Beispiel wird im Laufe des Tages gemeinsam eine UI entwickelt. Teil 2 beschäftigt sich mit testgetriebener Entwicklung mit JavaScript. Er motiviert die Vorgehensweise und stellt Konzepte und Werkzeuge vor. Im dritten Teil schließen sich Entwurfsmuster für wart- und testbare JavaScript-Clients wie Dependency Injection und Data Binding an. Abgerundet wird der Tag im vierten Teil von einer Einführung in die Erstellung mobiler Webanwendungen mit HTML5. Die Teilnehmer lernen im Workshop den Einsatz von Frameworks wie js-test-driver, jasmine, angularJS sowie jQuery mobile kennen und schließen den Tag mit einer auf dem eigenen mobilen Endgerät lauffähigen HTML5-Anwendung ab.
by Stefan Roock
Agile Teams sehen sich schnell mit der Frage konfrontiert, ob sie z.B. Taskboard und Product Backlog mit Karteikarten und Moderationswänden realisieren oder doch lieber ein professionelles Softwaretool dafür verwenden sollten. Diese Session geht der Frage auf den Grund, welche Lösung wann die richtige ist.
by Henning Wolf
Der Einsatzbereich von Kanban geht weit über die Entwicklung von Software hinaus, es ist im Prinzip zur Optimierung jeglicher Geschäftsprozesse geeignet. "Warum also nicht die eigenen Angebots-, Bewerbungs- und Änderungsprozesse mit Kanban optimieren?" fragten wir uns. Dieser Vortrag erzählt von einem gnadenlosen Selbstexperiment auf dem Weg zur agilen Organisation - und von typischen Einstiegsschmerzen.
Flow herrscht in der Arbeit, wenn Bedarf und Fähigkeit gegeneinander ausbalanciert sind (z.B. in Kanban). Flow gibt es auch in der Psyche, wenn vom Einzelnen soviel gefordert wird wie er/sie auch leisten kann. Im Flow-Zustand entstehen die besten Ergebnisse, die Arbeit ist angenehm, man vergisst die Zeit. Matthias Bohlen zeigt, wer Sie sein können, wenn Sie Flow im Team entstehen lassen.
Agilität wird in vielen Projekten groß geschrieben. Aber kann man auch Web Services in einer SOA agil entwickeln? Lässt sich das mit einer statischen Schnittstellenbeschreibung vereinbaren? Gibt es ein serviceübergreifendes Refactoring? Die Referenten erörtern diese Fragen anhand konkreter Erfahrungen, die in einem Integrationsprojekt gesammelt wurden.
by Oliver Wolf
Für die Flickrs und Facebooks dieser Welt ist die enge Verbindung von Entwicklung und Betrieb - inzwischen unter dem Schlagwort DevOps bekannt - schon lange Realität. Aber auch Unternehmen mit "klassischer" IT, bei denen Time-to-Market eher in Monaten oder Jahren als in Tagen oder Wochen gemessen wird, können von einigen Prinzipien und Methoden der DevOps profitieren.
Es existieren unterschiedliche Cloud-Plattformen, die eine dynamische Skalierung von Java-Anwendungen versprechen. Doch die unterschiedlichen Ansätze von Amazon EC2, Microsoft Azure, Cloud Foundry oder Google AppEngine bedeuten auch, dass Anpassungsaufwände und Vorteile abgewogen werden müssen. Der Vortrag stellt die Ansätze gegenüber und bewertet die Unterschiede in verschiedenen Szenarien.
Termin verpasst? Software zu spät geliefert? Kein Geschäft mehr zu machen? Das ist das eine Extrem. Oder ist es bei Ihnen genau andersherum: Alle Termine gehalten, immer pünktlich geliefert, doch dafür Teams im Stress und Qualität/Architektur im Keller? Im Vortrag lernen Sie, solche Risiken mit dem "Classes of Service"-Konzept in Kanban zu managen und die Arbeit für Ihr Team angenehm zu gestalten.
In most disciplines built on skill and knowledge, from art to architecture, from creative writing to structural engineering, there is a strong emphasis on studying existing work. Exemplary pieces from past and present are examined and discussed in order to provoke thinking and learn techniques for the present and the future. Although programming is a discipline with a very large canon of existing work to draw from, the only code most programmers read is the code they maintain. They rarely look outside the code directly affecting their work. This talk examines some examples of code that are interesting because of historical significance, profound concepts, impressive technique, exemplary style or just sheer geekiness.
by Andrew Lee Rubinger, Lincoln Baxter III and Dan Allen
2000 called, it wants its bloatware back. No where do the Java EE specifications suggest that application servers and programming models must be slow, clunky and fat. At JBoss, we decided it was time to flip the switch on enterprise development and make it productive. In this session, we'll show you how to build real-world examples that are slim, fast and powerful. We'll start by talking about the new rendition of our flagship project, JBoss AS 7. Fast, fast, fast. Blazing fast! No doubt, that's the main reason to love JBoss AS 7. We'll dive into how this performance boost has been achieved through a clever use of parallelism and concurrency, how the modular design saves you from classloader hell and why it's such a pleasure to administer and test. It's everything you've wanted in an application server.
Next, we'll talk about how the Java EE Web Profile has brought new meaning to the double E: "easy" and "extensible". We’ll summarize the functionality you get out of the box. Hint: intelligent defaults replace XML and disparate technologies have been connected by powerful services like CDI. We won't pretend that one size fits all. You'll discover that the closed feature set has been abolished with the inclusion of the CDI extension facility. You now have the choice of building new features into the programming model in addition to using what's provided. Ah, but, how many times have you wanted to start a new project in Java EE, but struggled to put all the pieces together? You'll witness how JBoss Forge can incrementally assemble an application at your command and deploy it to AS 7. We'll remind you of the fact that you are doing all this with the "Enterprise Edition" of Java without any of the pain that would seem to imply.
Like we said, we've got a new attitude. Come experience it.
Die Session wendet sich an Java-Entwickler ohne Vorkenntnisse in funktionalen Sprachen, die sich auf die zukünftigen Erweiterungen von Java (Lambdas) einstellen wollen. Es wird eine Einführung in die Prinzipien der funktionalen Programmierung gegeben. Wofür braucht man First-Class-Funktionen, Lambda-Ausdrücke oder Closures? Was kann man damit besser oder anders machen als mit "normalem" Java?
by Andrew Lee Rubinger, Lincoln Baxter III and Dan Allen
Are you confident that you can release your application to production right now? Will it build? Deploy cleanly? Integrate interdependent components? Stand up to the juggernaut of environment conditions and end-user behaviors?
Confidence comes from tests. But when faced with testing complex code, our instinct is to reach for mocks or spin up embedded runtimes. Are those tests you can rely on down the road?
Arquillian brings your test to the runtime so you don't have to manage (or fake) the runtime from your test. With this plumbing out of the way, you're free to write simple, precise integration tests that are portable to different containers and environments. The tests are real and so are the results, allowing you to code with confidence.
We'll demonstrate how you can use Arquillian to test a range of JVM technologies that execute in various runtimes. You'll discover that a test involving multiple components, even multiple servers, can be as simple as a test for a single component. Even web service and browser-based tests become child's play.
Learn how to code tests that run in a container and feel confident your application will remain standing when send out to the real world.
In der Softwareentwicklung haben sich agile Methoden bereits bewährt. Wir berichten, wie wir diese Methoden auch in unseren BPM-Projekten angewendet haben. Lassen sich Testszenarien mit BPMN definieren und automatisieren? Wie können Prozesse iterativ umgesetzt werden? Warum sollten BPMN Guidelines in kleinen Schritten entwickelt werden? Um diese und andere spannende Fragen geht es in diesem Talk.
by Till Schulte-Coerne and Stefan Tilkov
Für die Entwicklung von Webanwendungen gibt es eine ganze Reihe unterschiedlicher Realisierungsalternativen. Die Entscheidung für eine bestimmte Programmiersprache oder ein bestimmtes Webframework ist dabei nur ein kleiner Baustein, denn eine Webanwendung, insbesondere wenn Sie hohen, nichtfunktionalen Anforderungen unterliegt, ist eine Gesamtlösung, die aus vielen individuell entwickelten, aber auch vielen Standardkomponenten besteht. Der Workshop beschäftigt sich dazu mit den zum Teil wenig bekannten Details der Basisprotokolle, mit den Auswirkungen, die sich aus der internen Anwendungsarchitektur für die Gesamtarchitektur ergeben, mit Frontend-Optimierungen und der Einbettung in die Gesamtinfrastruktur aus Standardkomponenten wie Intermediaries und den Invidualbestandteilen.
by Kai Tödter
Die neue Eclipse 4.1 Rich Client Platform (RCP) bringt eine ganze Reihe von neuen Features mit. Ein Ziel von Eclipse 4.x war es, die Entwicklung von Plug-ins und Rich Clients einfacher zu machen. In diesem Power Workshop werden wir eine kleine, aber vollständige Applikation auf Basis der Eclipse RCP 4.1 entwickeln, die viele der neuen Features beinhaltet. Dieser Workshop ist sehr interaktiv und beinhaltet viele praktische Übungen. Bringen Sie deswegen Ihr Notebook mit (mit aktuellem Java JDK installiert). Folgende Themen werden behandelt: Einführung und “Hello, World”-RCP-4.1-Applikation, das Workbench-Modell (inklusive Toolbar, Menü, Parts, Commands und Handlers), Dependency Injection, e4 Services, Look-and-Feel-Anpassungen mit CSS, dynamisches Theme-Switching und vieles mehr.
In diesem Workshop lernen Sie, wie Sie Spring nicht nur in großen Projekten effizient und effektiv nutzen können. Dabei werden Best Practices und Patterns vermittelt und verschiedene Architekturansätze erläutert. Ebenfalls wird auf die Nutzung von AOP in der Praxis, die Migration von Projekten zu Spring und die Einführung von Spring in existierende Projekte eingegangen. Der Workshop ist interaktiv: die Teilnehmer bestimmen die Schwerpunkte und die genaue Ausrichtung.
by Sven Peters
Es war einmal ein neues Projekt auf der grünen Wiese, das die neusten Technologien einsetzte und bei dem der Quellcode übersichtlich geschrieben wurde. Einige Jahre (oder Monate) später sah der Code allerdings nicht mehr ganz so frisch aus. Neue Funktionen wurden irgendwie hinzugefügt, die Rockstar-Programmierer haben das Projekt verlassen und viele Fehler sind schnell, aber nicht schön gefixt worden. Diese Session geht der Frage auf den Grund, warum Code die Tendenz hat, über die Zeit zu verschmutzen, und was man dagegen machen kann. Es werden Clean-Code-Techniken vorgestellt und gezeigt, wie man sie im Alltag anwendet.