A friend recommended me to read the book “POJOs in action: Developing Enterprise Applications with Lightweight Frameworks”. In case you haven’t heard what a POJO is, it’s an acronym that stands for Plain Old Java Objects. Of course, my first reaction was that it was a Java book not a .net book but he told me that the book is about generic concepts that could be used in .net without much trouble so I purchased the book:
This book complements Fowler’s Enterprise Architectural Patterns as it is more practical and it has a lot of samples. The author (Chris Richardson) explains his methodology to build enterprise applications using test driven development.
I haven’t used Java since 2001 and I didn’t have any problem following the book. If you are not a Java expert you can still read the book ignoring the comments about EJB. A little of background of JSP and Servlets is usefull when talking about the presentation layer but you can understand most of the content without it. The author uses a lot of Java tools/frameworks that have an equivalent counterpart in the .net world (NUnit, NMock, NHibernate, Spring Framework .net, etc) so even if there are some differences between the Java and the .net versions the information provided is useful.
The first pages of the book are about the decisions to make when building an application (organizing the business logic, encapsulating the business logic, accessing the database, handling concurrency in database transactions and handling concurrency in long transactions), and the rest of the book elaborates more on the usual strategies chosen in the design (OO domain model with O/R mapping) and some variations (transaction scripts, exposed domain model). When the author explains a topic it provides useful samples and the pros and cons of using one approach versus other approaches.
The O/R mapping material is very good and details the inner workings of JDO (AFAIK a Java only O/R mapper so I skipped most sections about it) and Hibernate. Also there is a chapter about complex search forms and how to make dynamic paged queries in order to retrieve data as fast as possible and integrate those queries with Hibernate.
The last part of the book is about concurrency in short and long transactions and I found it quite useful as in most applications I’ve seen don’t do anything about concurrency conflicts in long running transactions and the book has code explaining how to implement it where other books only give guidelines.
After reading the book I have added to my long TODO list to take a look to the spring framework so if somebody that reads this wants to share his experiences with it feel free to send me an email or post a comment.
 Fowler's book