Working with Enterprise Applications like large e-commerce sites often requires interaction with different systems for different purposes, like:
- Retrieving catalog data (products and categories)
- Retrieving customer information
- Retrieving inventory skus
- Retrieving prices
- Sending fullfilled orders
- … and the list continues …
In Vertica most of our projects are based on the principles of Domain-Driven Design. In short DDD is all about keeping the focus on the domain – e.g. a B2B-driven e-commerce site. The way we structure Commerce Server is to look at Commerce Server as a number of repositories applying the Repository Pattern. That means that we have somewhat few classes that encapsulate all Commerce Server specific logic and return not Commerce Server data types (Microsoft.CommerceServer…*) but data types that we have defined in our own application.