A competitive advantage. An extensible, domain-specific framework models the key abstractions of the problem domain. Domain-specific frameworks, along with the classes from general-purpose class libraries (see FAQ 28.01), are the building blocks for constructing applications/systems for that problem domain. An extensible, domain-specific framework should have as much domain-specific knowledge as possible while remaining as independent as possible from any single problem being solved. If there is not enough domain-specific knowledge, future developers must largely rediscover the problem domain. If it has too much problem-specific knowledge, future developers will always be fighting the problem-specific assumptions. |