Jul 2, 2011 at 10:55 AM
Edited Jul 2, 2011 at 10:56 AM
We got a very interesting feedback (from Arnis), and I completely agree with it, stating that the word 'Core' we use for our re-usable code/assemblies, could be confused by the word 'Core', when Eric Evans talks about the 'Core Domain'. This 'Core Domain'
is a completely different concept. Your 'Core Domain' is the most important and strategic Domain knowledge of your system. It is what you have to take care of, your strategic Domain, your 'know how' regarding your Domain and business and it must be distilled
in a different way than non strategic domains (maybe collateral BOUNDED-CONTEXTS). In any case, clearly, it has nothing to do with reusable technical code, like the following assemblies we are using:
And quite a few other projects within Cross-Cutting, etc.
The point is, when you read NLayerApp.Domain.Core, you could think it is about the 'Core Domain' Eric Evans talks about, and it is a different concept, like mentioned.
You could think this issue is a very small nuance if you understand the objectives of our 'Projects.Core', but regarding DDD, I think it is really important not to show it in current way as it can cause an
Therefore, we're thinking about refactoring all V2.0 projects and switching from the
'Core' word to 'Seedwork'.
Seedwork means a small framework or reusable code only for your project or even several projects, but it does not have the same isolation and a dedicated dev-team that a framework should have.
Martin Fowler defined this term quite nicely, here:
And I think it is exactly what our current 'Core' assemblies are about, therefore, we are probably going to refactor that in V2.0. We would have namespaces and assemblies' names like:
If you have any suggestion related to this, do it quickly, as we'll do this refactoring ASAP. We need to have it changed in order to take screenshots for the V2.0 guidance (chapters) and I have to change it in a lot of places... :-(