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)

DotNetNuke.Web.MvcWebsite.csproj

  • New website-level MVC support library

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 Layout
  • MVC Default skin
  • mvc.js minimal stuff needed for dnn to work
  • Terms and privacy pages views (razor files)

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 9 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
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.

6 participants