Paul Grenyer BEng (hons)

Software Engineer

(Local)

Email: paul.grenyer (at) gmail.com
Blog: http://paulgrenyer.blogspot.com/

Paul has been programming in one form or another for over 20 years. After several years using C++ and a brief period using C#, Paul became happy somewhere he hoped he'd never be, programming in Java. However, he is currently back programming with C# and grappling with WPF.

After time in industries such as marking machinery, direct mail, mobile phones, internet TV and credit hire, Paul is back in investment banking.

Paul has been an ACCU member since 2001, a regular publications contributor, including the now well established Desert Island Books column, creator of the mentored developers and a committee member for most of that time. When he's not programming and family life allows, Paul thoroughly enjoys science fiction, heavy metal and cycling.

Articles

Continuous Integration with CruiseControl.Net

A guide to CruiseControl.Net setup.

Continuous Integration with CruiseControl.Net - Part 2

A look at the CruiseControl.Net web dashboard.

Continuous Integration with CruiseControl.Net - Part 3

How to write a plugin for CruiseControl.Net.

An Introduction to Test Driven Development

An introduction to unit, integration and system testing.

C#

Visiting Files and Directories in C#

A look at how to use C# to remove a source tree and develop the code into a enumeration method and visitor compound that can be used for general purpose file and directory traversal.

Testing Visiting Files and Directories in C#

A look at how to write automated tests for a directory traverser and discussion of the differences between unit and integration testing and when to use them.

Introduction to WPF with MVVM

An introduction to the Windows Presentation Framework (WPF) using the Model-View-ViewModel (MVVM) pattern.

Java

Java Web Start

How to create applications and deploy Java applications user Java Web Start.

Model View Controller

How to implement the Model View Controller pattern in Java.

Boiler Plating Database Resource Cleanup - Part I

How to reduce the amount of code needed to access a database in Java by introducing some boiler plate and the Finally For Each Release pattern.

Boiler Plating Database Resource Cleanup - Part II

How to reduce the amount of code needed to access a database in Java by introducing some boiler plate and the Execute Around Method pattern.

Java Dependency Management with Ivy - Part I

Using Ivy for Maven like Java dependency management without the restrictions.

Java Dependency Management with Ivy - Part II

Setting up an Ivy repository.

Data Access Layer Design for Java Enterprise Applications

Java Database Connectivity (JDBC) can be used to persist Java objects to databases. However JDBC is verbose and difficult to use cleanly and therefore is not really suitable for enterprise scale applications. In this article I will demonstrate how to replace JDBC persistence code with an Object Resource Mapper to reduce its verbosity and complexity and then, through the use of the appropriate patterns, show how you might design a more complete data access layer for a Java enterprise application

Integration Testing A Java Enterprise Application Data Access Layer

Finding the best design approach is only part of the solution to writing an Enterprise Application. As with all software, the application must be tested. Unit tests are the first line of defence, but they only the units of the application individually. You also need to test how the units interact with each other and other parts of the application, such as the database. These sorts of tests are called integration tests.

ACCU