2

So I came across this post while researching about package structuring for MVC. I just need some clarifications on what a business domain and technical domain are. Examples would be helpful.

2
  • 2
    You should consider looking up definitions for these terms and then asking specific questions about the parts you don't understand.
    – JeffO
    Apr 5 '16 at 19:37
  • Yes, I did that. Examples would be helpful after looking up definitions that were not elaborate enough for me. Thank you.
    – Wabbage
    Apr 5 '16 at 19:41
9

Business Domain refers to real-world aspects of your solution (e.g. Healthcare, Aviation, Finance, Military, Retail, etc). The business domain informs your requirements and acceptance criteria for the system; it can be suggestive of a very high-level form of segregation for different areas.

For example, if you happen to be building a solution for a Business' ERP, you might create high-level divisions in your overall system as follows:

  • Security
  • Finance
  • Sales
  • Stock Control
  • Shipping
  • Customer Support
  • IT Helpdesk

I would expect these kinds of divisions to exist at the top level of software - i.e. there's probably not very much cross-over between IT Helpdesk or Stock Control, so it could make sense to keep those separate.


In the question you've linked to, Technical domain refers to technologies used, including patterns and frameworks (e.g. ASP.NET/Ruby on rails, MVC Pattern, etc). These tend to inform specific design choices and architectures for applications or related groups of applications.

Technologies are often suggestive or prescriptive of particular structures - usually used at an application-level rather than the top level.

For example, "MVC" might suggest a project structure for a particular application as follows:

  • Models
  • Views
  • Controllers
  • Shared/Common
  • Scripts

That structure might happen to be mirrored across multiple different applications, or maybe other applications will use different technologies. Ultimately, the Business domain will have some bearing on the choice of technologies used (e.g. "We need a website" or "We're only willing to pay for X"), and may help inform a very high-level structure, but typically not to the degree of dictating technical decisions about design or architecture.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.