I'm currenty building several new themes using NopCommerce, a .NET e-commerce platform using the MVC architecture.
NopCommerce exposes a lot of services to you for communicating with the db, and is itself built with the Entity Framework code first approach.
Overall, I think NopCommerce is pretty well-rounded, the platform is pretty extensive and very easy to get up and running, decent developer experience and whatnot. The only thing I am missing from the platform is a built-in way of creating asynchronous views.
The NopCommerce team currently uses a lot of jQuery for updating some certain DOM-elements, such as a cart drawer, cart quantity indicator, toasters and some other things. I would prefer to exclude jQuery from the project completely, as I don't feel new developers at work should have to learn jQuery in 2021.
We have discussed using some sort of front end framework for asynchronous UI components for some time now, but are hesitant to include React or Angular due to 1) the bundle size and 2) the need for our developers to also learn these frameworks. Preact was an option but painpoint 2 was still being hit. We also don't want to do everything "vanilla", but if we would, one concern was how long time it would take to craft such an implementation compared to the benefits it would give.
We came across Web Components and noticed that the support is pretty good now, and there is an official polyfill for the V1 spec. It also results in pretty neat looking DOM-structure, and is very lightweight (<0.5kb), and also has the webcomponent-redux npm package available for dead-simple redux-bindings!
Initially, it looks promising, but again, questions are raised.. Is the time to make this work worth it? It probably wouldn't take very long to make one async components in this manner, but since you can make web components in so many ways (https://webcomponents.dev/blog/all-the-ways-to-make-a-web-component/), I'm very unsure what a good approach would be for our specific case.
As an example: Basically, we are going to take the existing (synchronous) "GetProductsByFilters" endpoint, and rewrite it to return JSON instead, which our Web Component would then request when filters are changed by a customer, then rendering the new product grid asynchronously instead of rerendering the page.
If anyone has any experience with .NET Core and Web Components, and with redux in particular (or a self-built implementation?), I would appreciate any input you have!
Bonus: Also interested in thoughts about a monorepo for said Web Components!
All the best