I'm starting a new project; I wish to follow a DDD approach. We have talked to the business and achieved some insight into the domain in some detail (internet TV).
The team is five strong and distributed. We have adopted the repository pattern for data-access. We are following a service-based approach overall; services are responsible for performing operations, and we will expose some operations via a REST API, and some via our own client applications.
The people that do not have experience with ORMs (not that I have a massive amount either, at present) wish to model the entities without relationships between them, with the rationale that this forces the developers who use the Repositories to know precisely what effect they are having on the database. I am trying to point out that this will end up with a very chatty set of services, more code to maintain and test, and a domain model that fundamentally misses the point. I don't think this is a good approach, and neither do any of the people I've talked to about it.
Their desire for the implementation of this approach is Linq2SQL under the repository-facade. This requires a second model, a mapping class/layer between it and the domain model, and much duplication in the repositories because it doesn't appear to be possible (that we've seen so far) to write a generic repository. It also isn't possible to map L2S entities that leverage inheritance (which means that EVERY entity must have properties for created-on, created-by, etc)
1st question: Can anyone offer me any advice about how to change their minds? I'm in the process of writing a side-project which uses NHibernate, which of course supports the DDD-approach well, on the basis that "Show me the code" is a powerful argument.
2nd question: What sorts of thing should I attempt to demonstrate in my NHibernate-using on-my-own-time side-project? I am new to it; one of their dislikes for NHibernate is the learning curve and the requirement for XML; my counter-argument is that it's a powerful tool, and Fluent NHibernate eliminates the need for XML. They still don't like it.