Source code organization
Structure of the Smartstore repository and solution
Smartstore's repository keeps concerns separated and supports modular development.
Solutions
Smartstore.sln
– main solution containing application projects, modules, and tests.Smartstore.Tools.sln
– separate solution for tooling and utilities.
Top-level directories
src/
Application source code: core libraries, domain layer, web host, database providers, and modules.
test/
Unit and integration tests mirroring the structure of src/
.
build/
Build automation scripts and configuration.
tools/
Additional tools used during development and build.
src/
breakdown
src/
breakdownSmartstore – cross-cutting infrastructure (caching, I/O, routing, engine runtime).
Smartstore.Core – domain models, business logic, migrations, and service abstractions.
Smartstore.Web – ASP.NET Core host with controllers, views, and configuration.
Smartstore.Web.Common – shared web helpers, MVC components, theming, and bootstrapping.
Smartstore.Modules – optional features like payment or shipping providers. Each module is a separate project with its own resources and optional migrations.
Smartstore.Data.* – database provider packages (SQL Server, MySQL, PostgreSQL, SQLite) keeping data access provider-specific.
During a build, modules from src/Smartstore.Modules
are compiled and copied to src/Smartstore.Web/Modules
for runtime loading.
Tests
Test projects reside in the test/
directory and follow the layout of src/
. Typical projects include Smartstore.Tests
, Smartstore.Core.Tests
, and module-specific tests. All tests run via:
dotnet test Smartstore.sln
Last updated
Was this helpful?