A website is usually a collection of multiple types of content and services, these could be in the form of:
- A Shopping Cart
- Product Display
- Services Offered
- Billing/Shipping Addresses
- Card Payment Provider
- Cheque/Postal Order
- Cusotomer Management
- Order Dispatch
- Stock Management
Each of these custom elements are systems within their own rights and can be loaded as plugins.
Each section or sub section of a website can be developed and tested in isolation.
Specific elements can be shared as plugins, between different customer websites, supporting the DRY pinciple.
How it Works
A sub system is developed using ASP.Net Core, and pre-defined routing agreed upon, this routing will ensure a system works together when all the pieces are plugged in.
The resources required by the project can either be embedded in, or deployed seperately. Plugin Manager supports either method.
If for instance you have a design team which creates the themes the views for each customer, these can be developed as part of the main host project. Alternatively the views, css, images and JScript files can be embedded into the plugin website. Plugin Manager will extract all resources where required, however, appsettings.json can be configured so that resources are not overridden.
To embed resources, these being .cshtml files, images, css or script etc, right click the item in the solution explorer, select properties and choose Embedded Resource as the build action.
The resources are then extracted by the plugin manager, into the correct path for use when required