Todo before adding any more features

Posted: October 18, 2015 at 8:01 AM Quote #153415
There are two things about nopCommerce architecture that bother me a lot and I don't undersant why they are not the two most requested items by developers:

1.- nopCommerce is not transactional! most operations that require modifying the DB do several independent writes, some times, many writes. For every operations there are many chances that something fails and leaves the DB in an inconsistent state. In my experience it is the number one requirement for any software project that an operation should either succeed or fail, but never something in between.
Hasn't really anyone had troubles with this?
There are requests about this since April 2012, maybe earlier, but nothing has been done. Are there any plans to do this?
I see there is an issue scheduled for 3.70 which is to use async requests to third party services. I hope this includes DB requests, as they are the most common, but using the unit of work patter is far more important. In any case, moving to async and to uow can be done at the same time as I suggest in the issue.

2.-  nopCommerce domain model is a big mess. Many entities have a lot of mixed concerns (Catalog, reviews, orders, payments, reporting, etc). This makes working with these entities very difficult and controllers and services have litteraly thousands of lines of code with many concerns mixed up. I think it's very important, before adding more features and more concerns on the existing models and services, to split them up in bounded contexts with limited concerns (as above, catalalog, orders, payments, reports, etc).

Number 1 is more imporant as it affects the reliability of the system and number 2, to me, would make nop a platform prepared for the challenges in the years ahead.

I would love to know the opinion on these topics from the nop team and the community.
This post/answer is useful
7
This post/answer is not useful

Please login or register
to vote for this post.

(click on this box to dismiss)
Francesc Castells

Software Architect
www.nopStuff.com
www.trainerinside.com
Posted: October 18, 2015 at 9:02 AM Quote #153417
Also, related to #2, consider Feature Folders Structure or MvcCodeRouting.
This post/answer is useful
5
This post/answer is not useful

Please login or register
to vote for this post.

(click on this box to dismiss)
www.noptools.com
Posted: June 15, 2019 at 3:37 AM Quote #237850
I totally agree with you! I think that 1) is absolutely terrifying! How it is possibile?
I commented on this github post where they were talking about UoW
https://github.com/nopSolutions/nopCommerce/issues/214
This post/answer is useful
0
This post/answer is not useful

Please login or register
to vote for this post.

(click on this box to dismiss)
Premium support services
  • Dedicated premium support services provided by core developers are intended for persons who run mission critical websites, work on projects with tight deadlines, or want to get dedicated support.
Professional services
  • Want to open a new store? Want to take your store to the next level? Need a custom extension? We can customize nopCommerce to fit your store perfectly. Request a quote to get started.
eCommerce CONFERENCE 2019
Learn more