-
-
Notifications
You must be signed in to change notification settings - Fork 771
Description
Is there an existing issue for this?
- I have searched the existing issues
Description of problem
At this moment the pipeline selection is done by MVC tag in page settings for normal pages (without ctl query parameter) and this was a tempory hack.
Other pages (with ctl query parameter) can run on the mvc pipeline based on a query string parameter (mvcpage=yes/no) that need to be added to the url.
For modules ctl pages it's the module developer than define it, actually per pipeline.
For core ctl pages, it's defined in the core (without configuration), actually per pipeline.
This routing / selection is done in the urlrewriter. Actually there exist a tempory new rewriter for mvc. This need to be merged with the default dnn rewriter.
The skin is expected to have the corresponding razor skin.
Nice to have : Standad created pages (search result,404, profile pages ) ? forced to webforms by default to not rely on portal settings except search because it will support mvc pipeline.
Description of solution
1. Normal page with multiple module.
- Portal settings : Page Pipeline = Webforms (default)/MVC/Auto
- Page settings : Page Pipeline = Webforms/MVC/Inherit from portal (default)
In this solution the rendering pipeline is decided by a switch on the page settings. This will be combined with a master switch at portal. But the general idea is that this decides which rendering pipeline is used. Modules that do not support MVC will render a blue warning for admin users.
Note this solution could be augmented with a "test button" which analyses a page before you can switch it to MVC.
Automatic : this expands on the previous option by having the pipeline examine the modules on the page and deciding accordingly whether to use MVC pipeline or not. Would need work out to see how we could determine this and how to cache the choice so we don't have unnecessary processing.
Advantages:
- Close to the current solution
Disadvantages
- It is a technical feature which has the potential to confuse end users in the page settings
- No fallback in case skin is not hybrid (how to detect this to avoid mishaps?)
Webforms will be the fallback.
2. Module Control pages (pages with ctrl and mid query parameter in the url) with only one module on the page.
The module developer need to create the URL with extra query parameter (mvcpage=yes) for module controls that supports MVC. Typically in the method that create the module actions.
Advantages :
- no overhead in the urlrewriter. No need to read module information to determine the pipeline.
- give the possibility to mix mvc and webform pipeline module controls for progressive module migration to mvc pipeline.
Disadvantages
- not automatic
Description of alternatives considered
- selection based on skin (need a lot of core modifications and mix of 2 concepts layout and pipeline)
Anything else?
Needs db schema updates and UI updates in de persona bar
Do you plan to contribute code for this enhancement?
- Yes
Would you be interested in sponsoring this enhancement?
- Yes
Code of Conduct
- I agree to follow this project's Code of Conduct
Metadata
Metadata
Assignees
Labels
Type
Projects
Status