Smartstore.NET is a solid choice if you’re comfortable with .NET and want modularity. Always use plugins instead of editing the core, it’ll make upgrades much easier. For performance, caching and async loading help a lot with medium-load stores. This post on Creceri eCommerce Development also gives a good overview of building scalable and flexible online stores.