erik doernenburg


Older Talks

These talks are probably somewhat outdated.

Dependency Injection

An introduction into the Inversion of Control principle and the Dependency Injection pattern, with a discussion of the benefits of using these, practical examples using the popular Spring IoC container, and an explanation why using IoC will benefit any Agile development effort.

The presentation follows the implementation of an examplary user story. It discusses different implementation strategies, including traditional Service Locators, and demonstrates the benefits of an implementation that uses Dependency Injection. It also contrasts testability of the respective designs. The source code linked on the left hand side is the code written on stage at ØreDev.

History:
  • Øredev 2005 - Malmö, Sweden

[Slides] [Source]

Open Source Software

This presentation gives a very brief introduction into Open Source Software (OSS) and its relevance to IT projects in commercial organisations.

In the first half I talk about the Open Source movement, describing how it came into existence, how it works and why people and companies are interested in it. The second half is concerned with the adoption of Open Source Software and I discuss perceived barriers and outline some basic criteria for the selection of OSS.

History:
  • Lloyds IT Club - London, UK

[Slides] [ThoughtWork OSS site]

Test-Driven Development - An Overview

Our opening statement is that Test Driven Development is, despite its name, not mainly about testing. This is explained and we briefly discuss the TDD mantra “red-green-refactor” before demonstrating Test Driven Development in a programming session. We start from scratch with no prepared code and implement 5 user stories in 3 iterations, each of which has a theme:TDD using state-based testing, embracing change and refactoring, and interaction-based testing with Mock Objects.

Of course, we pair-program and discuss many of the small design decisions we are making. It is worth noting that we use the ReSharper and TestDriven.NET add-ins for Visual Studio to increase our productivity and thus the pace of the session.

History:
  • NorDev 2005 - Stockholm, Sweden - with Jimmy Nilsson

[Slides]

Towards a testable application architecture

In the first half of the presentation John Horgan and I discuss Dependency Injection and Infrastructure wrappers, which we think are essential ingredients for testable application architectures. We also introduce PicoContainer, a lightweight Inversion of Control container that pioneered constructor based dependency injection.

In the second half of the presentation we show how these concepts can be applied in a real enterprise application. In particular, we will show how to refactor a set of EJBs that use service locators into a set of objects that are managed by PicoContainer and wrapped by a single EJB facade. We will also show how to exend the popular Struts MVC framework so that it uses the Dependency Injection pattern for it web actions.

History:
  • JAOO 2004 - Århus, Denmark - with John Horgan

[Slides] [Source]

Data programming beyond ADO.NET

With the first versions of the .NET framework Microsoft released a new data programming API in the form of ADO.NET. This has proven quite flexible and popular with developers. Nonetheless, there are several projects underway that either extend ADO.NET or provide more advanced frameworks.

I am presenting the Neo framework, an Open Source project which I started, and the forthcoming ObjectSpaces framework from Microsoft. [Plans for this have changed substantially since the talk.] I will also compare their individual strengths and differences in approach.

History:
  • B.NET User Group meeting May 2004 - Bangalore, India

[Slides] [Neo site] [ObjectSpaces on MSDN]

Persistence Neutrality using the EOB application service framework

Working with J2EE for almost five years [as of 2003], developers of enterprise software have gained much experience with this platform. Common enterprise design patterns have emerged and strength as much as weaknesses of the EJB model have been discovered. Despite the successful introduction of container managed persistence we believe to have spotted a trend towards reduced EJB container usage and the appearance of several new persistence frameworks.

Enterprise Object Broker (EOB) is an application service framework that imposes no restriction on the persistence framework used. Common choices include Prevayler and Hibernate. It is an open framework to leverage existing designs and provides transparent RPC for easy client-side usage.

History:
  • JAOO 2003 - Aarhus, Denmark - September 2003

[Slides]