DDD is not bound to a specific technology or a "supporting framework" for that matter. It's more about a process to develop good software and at the core of it lies object-oriented-modelling. Every language and environment that support s OOP is therefore suited to DDD.
Nonetheless, tooling can play a supportive role to build your Domain Infrastructure.
- Most certainly, you will find an
Object-Relational-Mapper (such as
(N)Hibernate) very helpful to
implement your data access. They are often built around the idea of the repository and specification pattern.
- Inversion of Control will help you achieve a Supple Design based on low coupling that remains flexible in regards to an evolving domain model. Some environments require a Dependency Injection Framework (Spring, Castle) to take full advantage of DI, others don't since they support mixins (e.g. Objective-C)
- Business Rules Engines and Domain Specific Languages will help you implement complex business processes. Some environments provide extensive support for them (esp. Java and .NET), other don't.
Since DDD is so much about modeling and OOP, a good knowledge of the SOLID principles (again, platform agnostic) will help you along the way. Nonetheless, there are some frameworks that provide the nuts and bolts of a DDD Infrastructure (Rhino Commons, Proteus, Sharp Architecture to name a few .net projects).