Hi folks,
I've created this topic in order to know your thoughts and suggestions about further architecture improvements (and performance etc). Here are my thoughts:
Architecture improvements:
1. Usage of IoC/DI pattern. I personally prefer autofac library over StructureMap and Unity. But of course implementing this pattern will affect all existing nopCommerce sites (I mean upgrading and moving away from static managers).
2. More pluggable architecture. And it should not require source code changes.
3. Add web service API support
4. Pass entities as parameters to Manager methods. For example, OrderManager.InsertOrder(Order order) instead of OrderManager.InsertOrder(Guid orderGuid, int customerId,...other parameters)
5. Use PagedList instead of most of the stored procedures. See the post of Ben Foster ('nopCommerce team | retroviz' username) here for more info
6. Move to MVC. Please discuss this task here
7. Repository pattern
8. Entities should be persistence ignorant. They should not depend on managers/services (remove custom properties).
Performance optimization:
1. Optimize nopCommerce for catalogs with more than 100,000 products
2. Precompiling linq querries (...but this change will complicate the source code for further modifications)
3. Caching. More extended caching mechanism. Let's allow developers to decide whether entities should be cached per request or between requests. Original topic is here
4. Full-text search support
5. Use lucene.net for search (Thanks, Will)
Let's discuss these suggestions. Let's discuss your ones.