First code submission for MVC Pipeline#6749
First code submission for MVC Pipeline#6749donker wants to merge 248 commits intofeature/mvc-pipelinefrom
Conversation
…tomizations for the MVC pipeline.
Fix layout issue
client dependecy for mvc (because it not exist in nuget)
Updated user guide for MVC pipeline with corrections and clarifications.
…auwaen/Dnn.Platform into feature/mvc-pipeline-old
# Conflicts: # DNN Platform/DotNetNuke.Web.Mvc/Framework/Controllers/DnnController.cs # DNN Platform/DotNetNuke.Web.Mvc/Framework/Modules/ResultCapturingActionInvoker.cs # DNN Platform/DotNetNuke.Web.Mvc/Routing/MvcRoutingManager.cs # DNN Platform/Library/Entities/Portals/PortalSettings.cs # DNN Platform/Library/Entities/Portals/PortalSettingsController.cs # DNN Platform/Library/Entities/Urls/AdvancedUrlRewriter.cs # DNN Platform/Library/UI/Modules/Html5/Html5HostControl.cs # DNN Platform/Library/UI/Modules/Html5/Html5ModuleControlFactory.cs # DNN Platform/Modules/DDRMenu/Common/DNNContext.cs # DNN Platform/Modules/DDRMenu/Localisation/Localiser.cs # DNN Platform/Modules/DDRMenu/MenuBase.cs # DNN Platform/Modules/DDRMenu/TemplateEngine/TemplateDefinition.cs # DNN Platform/Modules/HTML/Components/HtmlTextController.cs # DNN Platform/Providers/HtmlEditorProviders/DNNConnect.CKE/Web/EditorControl.cs # Dnn.AdminExperience/Dnn.PersonaBar.Extensions/admin/personaBar/Dnn.SiteSettings/App_LocalResources/SiteSettings.resx
|
I’d like to check the status of this PR. There hasn’t been any review activity for several months—are there any issues or blockers? How can I help move things forward? It might also be worth bringing this up during a TAG meeting ? I completely understand that reviewing this PR is a significant effort. At the same time, on the otherhand inoticing quite a few major changes being made elsewhere, which also require substantial merge work on my side. I believe it’s generally more efficient to process PRs in order (except for bug fixes, of course). Otherwise, each new PR tends to create additional merge overhead for those still pending. |
I wish this PR was a custom package that could be installed and uninstalled like a plugin. |
|
|
||
| if (isAuthenticated) | ||
| { | ||
| csp.FrameSource.AddHost("https://dnndocs.com").AddHost("https://docs.dnncommunity.org"); |
There was a problem hiding this comment.
I don't think this should be a global approval, this will result in some really funny security responses most likely
| value = requestBase.Headers[key]; | ||
| } | ||
|
|
||
| if (requestBase.Form[key] != null) |
There was a problem hiding this comment.
I would like to review/discuss the possible risks wit htis change, by accpeting the value from the form in any situation , as I believe this might expose a different method of manipulation that could have unintended consequences.
| // Licensed to the .NET Foundation under one or more agreements. | ||
| // The .NET Foundation licenses this file to you under the MIT license. | ||
| // See the LICENSE file in the project root for more information | ||
| namespace DotNetNuke.Web.MvcPipeline.Commons |
There was a problem hiding this comment.
This entire implementation already exists within the solution at DotNetNuke.Web.Mvc.Common
Should this be a move? Should the old file be marked as Obsolete?
| // The .NET Foundation licenses this file to you under the MIT license. | ||
| // See the LICENSE file in the project root for more information | ||
|
|
||
| namespace DotNetNuke.Web.MvcPipeline.Commons |
There was a problem hiding this comment.
To match other naming conventions if needed this namespace/folder should be Common not Commons
| /// <summary> | ||
| /// Base controller for DNN MVC page controllers, exposing common services and portal context. | ||
| /// </summary> | ||
| public abstract class DnnPageController : Controller, IMvcController |
There was a problem hiding this comment.
Similar question here for the fate of the existing IDNNController and related items, as I can see a lot of confusion without some level of guidance being provided at a programming perspective with different behaviors and purposes. For example this ONLY provides PortalSettings the legacy one provides much more rich context (User, etc)
| /// Builds an edit URL for the current module instance. | ||
| /// </summary> | ||
| /// <returns>The edit URL.</returns> | ||
| public string EditUrl() |
There was a problem hiding this comment.
I echo @valadas comments on this duplication of exploding items that are already there, the long-term maintenance of this, as we have seen with other changes, is not exactly "fun". I would prefer exposing the ModuleContext and leaving it at that personally
| .Register(); | ||
|
|
||
| /* | ||
| if (Host.CdnEnabled && !string.IsNullOrEmpty(jsl.ObjectName)) |
There was a problem hiding this comment.
This commented out code should be removed
Core Purpose
Introduces a new ASP.NET MVC-based rendering pipeline as an alternative to the traditional WebForms pipeline, allowing DNN to modernize its architecture while maintaining backward compatibility.
Key Features
Dual Pipeline Architecture:
Video showcase the general usage
Module Support:
More info about MVC Module Control Implementation
Razor+ Module Development Guide
How to compile Samples
Configuration:
More info about MVC pipeline (routing / settings)
New MVC Pipeline Projects
DotNetNuke.Web.MvcPipeline.csproj - New core MVC pipeline library
Razor Module Sample
NewDDRMenu
Core Platform Projects
DotNetNuke.Library
DotNetNuke.Abstractions
DotNetNuke.Web.Mvc
HTML
Dnn.PersonaBar.UI
UI for pipeline settings in Site and Page Settings
DNNConnect.CKE
Skins/Aperture
Skin conversion guide
Website
AdminExperiance
This PR is a first submission of the work of the MVC Pipeline team to bring the main project up to date with what has been developed in a forked repo.
Documentation
MVC Module Control Implementation
MVC pipeline (routing / settings)
Razor Module Development Guide
How to compile Samples
DNN MVC Pipeline - Developer User Guide