Skip to content

Conversation

@donker
Copy link
Contributor

@donker donker commented Oct 3, 2025

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:

  • Traditional WebForms pipeline continues through /default.aspx
  • New MVC pipeline routes through /DesktopModules/Default/Page/{tabId}/{locale}

Video showcase the general usage

Module Support:

More info about MVC Module Control Implementation
Razor Module Development Guide

  • HTML module converted to MVC
  • Sample modules demonstrating Razor+, MVC and SPA patterns

How to compile Samples

Configuration:

  • Pipeline selection at portal and page level
  • Settings UI integrated into Site and Page Settings
  • URL rewriter modifications to route based on pipeline settings

More info about MVC pipeline (routing / settings)

New MVC Pipeline Projects

DotNetNuke.Web.MvcPipeline.csproj - New core MVC pipeline library

  • Skins : Html Helpers (replacement for skin objects)
  • Containers : Html Helpers (replacement for skin objects for containers)
  • ModelFactories : construction of the Page Model (Model of the DefaultController)
  • ModuleControl : Module Control infrastructure
  • Utils : MvcViewEngine (Replacement for RazorEngine based on MVC 5 and can only be used inside HttpContext)
  • UI/Utilities : MvcClientAPI (replacement for ClientAPI for mvc)

Razor Module Sample

  • Razor-based module sample project

NewDDRMenu

  • Fork of DDRMenu for MVC navigation support (WIP)

Core Platform Projects

DotNetNuke.Library

  • Added Site and Page pipeline settings
  • Added Module Control settings
  • URL rewriter changes to route based on pipeline settings
  • Update SPA (Html5) to use new CDF

DotNetNuke.Abstractions

  • Added PagePipeline property to IPortalSettings

DotNetNuke.Web.Mvc

  • Integration with new MVC pipeline
  • Make actual DNN MVC modules run on the MVC Pipeline

HTML

  • Add support for MVC Pipeline rendering
  • Add MVC views and controllers
  • This is implemented as true MVC (with form tags) using AJAX

Dnn.PersonaBar.UI

UI for pipeline settings in Site and Page Settings

DNNConnect.CKE

  • HTML helper additions for CKEditor in MVC context

Skins/Aperture

  • Added mvc suport to the skin (Razor files)

Website

  • MVC Razor Layout
  • MVC Default skin
  • mvc.js minimal stuff needed for dnn to work
  • Terms and privacy pages (razor files)
  • DefaultController
  • ModuleActions Controller

AdminExperiance

  • settings ui for new settings
  • mvc controls for persona and edit bar

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

donker and others added 30 commits March 20, 2025 11:36
client dependecy for mvc (because it not exist in nuget)
@donker donker changed the title [WIP] First code submission for MVC Pipeline First code submission for MVC Pipeline Dec 17, 2025
donker and others added 12 commits December 20, 2025 10:26
# Conflicts:
#	DNN Platform/DotNetNuke.Web.Client/packages.config
#	DNN Platform/DotNetNuke.Web.Mvc/Framework/Controllers/DnnController.cs
#	DNN Platform/Library/Entities/Urls/AdvancedUrlRewriter.cs
#	DNN Platform/Providers/HtmlEditorProviders/DNNConnect.CKE/packages.config
#	Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Components/Pages/Converters.cs
# Conflicts:
#	Dnn.AdminExperience/Dnn.PersonaBar.Extensions/Components/Pages/PagesControllerImpl.cs
@thienvc
Copy link
Contributor

thienvc commented Jan 1, 2026

This is fantastic, I've been waiting for this for a long time. It feels like DNN is experiencing a strong resurgence. I hope the core version is finalized soon so I can experience it and gradually migrate the webform modules.

sachatrauwaen and others added 2 commits January 3, 2026 21:26
move MvcPipeline outside of Support Project
rename querystring  mvcpage= yes/no to pipeline = mvc/webforms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

7 participants