Thank you so much for your feedback on this. I am going to experiment more, using your guidelines.
as for the need for additional layer, a valid use case could be this: lets say you are going to deploy your app on GAE. for the persistence, there are several options: - JDO/JPA - DataStore LowLevel APIs - Objectify, Twig Persist many of these technologies are new and subject to (rapid) change, it is a good idea to use interfaces to declare our DataAccess "contract" without exposing infrastructure related detail that is specific to each of those technologies. if one has 20 domain objects(entities), and for each entity, certain requests/methods : findX, findXInRange, findByX, it can get out of hand quickly. it would be very difficult to swap one persistence technology for another, sometime down the road. the idea is, - loose coupling - easily swapping infrastructure specific code, without affecting other part of system (easy refactoring, testing,) - clearly defined contracts in the form of interfaces, when you look at an interface you can see what is expected of this DAO, rather than going through hundreds of lines of codes, some of which scattered with try/catch/finally blocks (i am exaggerating a bit, IDEs can provide a quick overview) having said that, if one is working on a project that uses a legacy database, a database that's been in that environment for years, where DBAs have developed custom scripts, and its been used in day to day operation of that business/organization for many years, and there are policies within that business/organization to continue using that database in the future, I agree, using abstractions might be an overkill. As with most things, I believe it all depends on the requirements/ constraints. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.