Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
96b3954
Initial port of MVC-PAGE branch to DNN 10
donker Mar 20, 2025
806a567
Fixes
donker Mar 20, 2025
18dda02
With previous
donker Mar 20, 2025
2b93b83
More moving stuff around
donker Mar 20, 2025
e66429e
Moving more classes to Mvc Pipeline project
donker Mar 20, 2025
195b407
Add build file
donker Mar 20, 2025
192a1fe
Move MVC skin detection to separate class
donker Mar 20, 2025
ed9dfad
Added the controllers for the core website
donker Mar 20, 2025
0b39bb2
NewDDRMenu project which forks the original DDR menu project with cus…
donker Mar 21, 2025
23b6b13
Rewire the way we detect MVC skins
donker Mar 23, 2025
825ae25
Ability to replace the urlrewriter
donker Mar 24, 2025
26a4165
Changes that hard wired to ascx files for the skin
donker Mar 24, 2025
261a156
Revert changes to core project
donker Mar 31, 2025
9ec0a3d
Merge branch 'release/10.0.0' into MVCPL
donker Mar 31, 2025
44c90c7
Rolling back mvc skin detection to what it was previously
donker Mar 31, 2025
bcba2c6
Fixing routing
donker Mar 31, 2025
6b1f317
Fix layout issue
donker Apr 1, 2025
4700236
Merge pull request #1 from donker/fix1
donker Apr 1, 2025
af884e5
- avoid dublicate key error with standard DDRMENU
Apr 3, 2025
78bcb42
client dependecy for mvc (because it not exist in nuget)
Apr 3, 2025
419c044
Merge pull request #3 from sachatrauwaen/mvcppl1
donker Apr 3, 2025
5e3b2d4
restrore use of clientdependency.core.mvc
Apr 3, 2025
d17225a
add use of css variables
Apr 3, 2025
e903cda
add support for report-to
Apr 3, 2025
55308ab
update web.config for mvc
Apr 3, 2025
e107bd4
port all what is needed to run from dnn9 version
Apr 3, 2025
c91f68a
first part of the html module : view control
Apr 3, 2025
09c4c04
Merge pull request #4 from sachatrauwaen/mvcpl2
sachatrauwaen Apr 3, 2025
4aae3e8
use dnn10 default.css
Apr 8, 2025
0fd3b47
make edit in mvc work again
Apr 9, 2025
2f322e0
Merge pull request #5 from sachatrauwaen/html-module
sachatrauwaen Apr 9, 2025
bbe31c4
Merge branch 'develop' into MVCPL
donker Apr 10, 2025
fbb2798
fix html compile errors
Apr 10, 2025
daca3d9
Merge pull request #6 from sachatrauwaen/fix-html-module
donker Apr 10, 2025
e9510a7
fix build of install package
Apr 14, 2025
fcd1661
Merge pull request #7 from sachatrauwaen/install-mvc
donker Apr 15, 2025
dbc02ce
enhance ModuleViewContollerBase
Apr 15, 2025
35bffb5
Merge pull request #9 from sachatrauwaen/module
sachatrauwaen Apr 15, 2025
6b7aada
Trying to fix skin packaging for MVC pipeline
donker Apr 15, 2025
a54636a
Fix and task to test packages
donker Apr 15, 2025
f59b679
Merge pull request #10 from donker/2025-04-15-skinpackage
donker Apr 16, 2025
271bc92
razor containers for the skin
Apr 17, 2025
994abe6
Merge branch 'MVCPL' into containers
Apr 17, 2025
4693637
Merge pull request #11 from sachatrauwaen/containers
donker Apr 17, 2025
b6275b9
fix double class
sachatrauwaen Apr 23, 2025
f3dab1b
add support for mvc modules
sachatrauwaen Apr 23, 2025
85dc08c
a step farter in mvc module support
sachatrauwaen Apr 23, 2025
baaef7b
Merge branch 'MVCPL' into mvc-module
sachatrauwaen Apr 23, 2025
7125224
fix key same as mvc modules
sachatrauwaen Apr 24, 2025
37b459b
make existing mvc modules work on the mvc pipeline
sachatrauwaen Apr 24, 2025
14d32b3
Merge pull request #13 from sachatrauwaen/mvc-module
donker Apr 24, 2025
3750061
Merge branch 'develop' into MVCPL
donker Apr 27, 2025
87306d4
Merge pull request #14 from donker/MVCPL
donker Apr 27, 2025
1dd392f
Make MyWork control mvc
sachatrauwaen Apr 29, 2025
63ecbec
make NewDDRMenu compatible with ddrmenu razor menu templates and use …
sachatrauwaen Apr 30, 2025
3876e96
remove unused files
sachatrauwaen Apr 30, 2025
2802019
fix buit to include web.config in skin folder
sachatrauwaen May 2, 2025
a7520b8
fix build of skin
sachatrauwaen May 2, 2025
09abe33
fix skin build, issues when extension not provided
sachatrauwaen May 2, 2025
e1c419e
Merge pull request #15 from sachatrauwaen/html-mywork
donker May 3, 2025
3e2dee6
Merge pull request #16 from sachatrauwaen/ddrmenu
donker May 3, 2025
2d44234
Merge branch 'release/10.0.1' into MVCPL
donker May 3, 2025
70ccbeb
Add use of route with area for mvc pipeline modules
sachatrauwaen May 8, 2025
2b4cd9e
Merge pull request #20 from sachatrauwaen/area
donker May 8, 2025
269950d
Prevent any meddling of the module foldername for the purpose of area…
donker May 8, 2025
fa00ff7
Merge pull request #22 from donker/routeareafixalt
donker May 9, 2025
49d6628
Create the ModuleContext in the Initialize of the controller to give …
sachatrauwaen May 9, 2025
10e6692
Merge branch 'MVCPL' into mvc-module-init
sachatrauwaen May 9, 2025
38615b3
add page header and portal header to the layout
sachatrauwaen May 9, 2025
9931d1c
Merge pull request #24 from sachatrauwaen/mvc-module-init
donker May 9, 2025
8f9ec8e
Merge pull request #25 from sachatrauwaen/fix-pageheader
donker May 9, 2025
bf50796
Merge branch 'release/10.0.1' into tmpmerge
donker May 19, 2025
d8e2c23
Merge pull request #32 from donker/tmpmerge
donker May 19, 2025
2c7ae88
Merge branch 'develop' into MVCPL
donker May 30, 2025
28a8578
Merge branch 'develop' into tmpmerge
donker Jun 5, 2025
26bbd90
Fix method call
donker Jun 5, 2025
a321c0d
Fix build error
donker Jun 5, 2025
6f44d1f
Fix for postback in MVC modules
donker Jun 7, 2025
26b700a
Merge pull request #34 from donker/tmpmerge
donker Jun 7, 2025
a6d4027
Merge branch 'develop' into MVCPL
donker Jun 7, 2025
9ab6e50
Merge branch 'develop' into tmp
donker Jun 18, 2025
fdcde3a
Merge pull request #35 from donker/tmp
donker Jun 18, 2025
ec3b710
Code fixes for outdated code
donker Jun 18, 2025
d94ca80
Rolling back earlier change
donker Jun 19, 2025
c369e1e
Solution to get AF token to work on MVC pipeline
donker Jun 25, 2025
df42015
Merge pull request #36 from donker/aftoken
donker Jun 25, 2025
4476348
Merge branch 'develop' into MVCPL
donker Jul 10, 2025
ae00a15
Merge branch 'develop' into MVCPL
donker Aug 29, 2025
863cbb7
fix test of DnnController
sachatrauwaen Oct 14, 2025
7be534e
Fix tests on DnnController.cs
sachatrauwaen Oct 14, 2025
526412b
Fix blank lines in DnnController.cs
sachatrauwaen Oct 14, 2025
9ab7cae
remove blank linesDnnController.cs
sachatrauwaen Oct 14, 2025
fda5223
mvc pipeline doc
sachatrauwaen Oct 17, 2025
f6231bc
doc
sachatrauwaen Oct 17, 2025
ee09648
modified proposition
sachatrauwaen Oct 17, 2025
626e5a0
modified proposition
sachatrauwaen Oct 17, 2025
e07308a
fix layout
sachatrauwaen Oct 17, 2025
4a18e30
Revert "fix layout"
sachatrauwaen Oct 17, 2025
e007e36
Merge branch 'feature/mvc-pipeline-old' of https://github.com/sachatr…
sachatrauwaen Oct 17, 2025
a3d5c18
fix layout
sachatrauwaen Oct 17, 2025
74b12d4
fix layout
sachatrauwaen Oct 17, 2025
4bf447e
fix text
sachatrauwaen Oct 17, 2025
d89fbb8
Merge branch 'feature/mvc-pipeline-old' of https://github.com/sachatr…
sachatrauwaen Oct 17, 2025
0f32c9a
fix text
sachatrauwaen Oct 17, 2025
6a24f3a
Fix typos in mvc-pipeline.md
sachatrauwaen Oct 22, 2025
567c571
blog post
sachatrauwaen Oct 22, 2025
b9fa629
rremove docs from this branch
sachatrauwaen Oct 22, 2025
039633e
Remove module settings, because actually out of scope of MVC pipeline…
sachatrauwaen Oct 22, 2025
ac6941f
Remove CSP from mvc pipeline (it will be integrated later)
sachatrauwaen Oct 22, 2025
f522728
Merge branch 'dnnsoftware:feature/mvc-pipeline-old' into feature/mvc-…
sachatrauwaen Oct 22, 2025
12e1d64
remove CSP from html module and module settings for mvc pipeline
sachatrauwaen Oct 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@

# .NET Development Rules

You are a senior .NET full stack developer and an expert in C#, ASP.NET Framework, ASP.NET Core, and ReactJS

## This project

This is a CMS that runs on classic ASP.NET Framework (version 4.8). The default entry point is /default.aspx which can be found under /DNN Platform/Website.
We are building a new pipeline based on ASP.NET MVC with the goal of moving away from webforms and towards .NET Core. Right now we will create a hybrid solution
with two rendering mechanisms: the old webforms pipeline through default.aspx and a new pipeline through /DesktopModules/Default/Page/{tabId}/{locale}. This
should be picked up and handled in the DotNetNuke.Web.MvcPipeline library. The skin that is being loaded should decide which pipeline is being used to render a
page to the client.

## Code Organization

We want to minimize any code changes to the existing project and concentrate as much as we can any code changes in the DotNetNuke.Web.MvcPipeline project.
If need be we can create more projects to house new code.

## Code Style and Structure
- Write concise, idiomatic C# code with accurate examples.
- Follow .NET and ASP.NET Core conventions and best practices.
- Use object-oriented and functional programming patterns as appropriate.
- Prefer LINQ and lambda expressions for collection operations.
- Use descriptive variable and method names (e.g., 'IsUserSignedIn', 'CalculateTotal').
- Structure files according to .NET conventions (Controllers, Models, Services, etc.).

## Naming Conventions
- Follow guidelines from the stylecop.json file

## C# and .NET Usage
-

## Syntax and Formatting
- Use 'var' for implicit typing when the type is obvious.

## Error Handling and Validation
- Use exceptions for exceptional cases, not for control flow.
- Implement proper error logging using built-in .NET logging or a third-party logger.
- Use Data Annotations or Fluent Validation for model validation.
- Implement global exception handling middleware.
- Return appropriate HTTP status codes and consistent error responses.

## API Design
- Follow RESTful API design principles.
- Use attribute routing in controllers.
- Implement versioning for your API.
- Use action filters for cross-cutting concerns.

## Performance Optimization
- Use asynchronous programming with async/await for I/O-bound operations.
- Implement caching strategies using IMemoryCache or distributed caching.
- Use efficient LINQ queries and avoid N+1 query problems.
- Implement pagination for large data sets.

## Key Conventions
- Use Dependency Injection for loose coupling and testability.
- Implement repository pattern.
- Use AutoMapper for object-to-object mapping if needed.
- Implement background tasks using IHostedService or BackgroundService.

## Testing
- Write unit tests using xUnit, NUnit, or MSTest.
- Use Moq or NSubstitute for mocking dependencies.
- Implement integration tests for API endpoints.

## Security
- Implement proper CORS policies.

## API Documentation
- Provide XML comments for controllers and models.

Follow the official Microsoft documentation and ASP.NET MVC guides for best practices in routing, controllers, models, and other API components.
36 changes: 36 additions & 0 deletions Build/Tasks/BuildPackages.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// 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.Build.Tasks
{
using Cake.Frosting;

/// <summary>A cake task to compile the platform and create all of the packages.</summary>
/// <remarks>This is the task run during CI.</remarks>
[IsDependentOn(typeof(CleanArtifacts))]
[IsDependentOn(typeof(UpdateDnnManifests))]
[IsDependentOn(typeof(GenerateSecurityAnalyzerChecksums))]
[IsDependentOn(typeof(SetPackageVersions))]
[IsDependentOn(typeof(CreateInstall))]
[IsDependentOn(typeof(CreateUpgrade))]
[IsDependentOn(typeof(CreateNugetPackages))]
[IsDependentOn(typeof(GeneratePackagesChecksums))]
public sealed class BuildPackages : FrostingTask<Context>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the purpose/goal of this task addition? I'm concerned that this will be deleting a source controlled file.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@donker Can you answer this ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry ... that is my code bleed. I can delete it. It just builds the packages. But I believe the "default" task also does this.

{
/// <inheritdoc/>
public override void Run(Context context)
{
this.RevertSqlDataProvider(context);
}

private void RevertSqlDataProvider(Context context)
{
var fileName = context.GetTwoDigitsVersionNumber() + ".SqlDataProvider";
var filePath = "./Dnn Platform/Website/Providers/DataProviders/SqlDataProvider/" + fileName;
if (!context.SqlDataProviderExists && System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
}
}
}
}
5 changes: 5 additions & 0 deletions Build/Tasks/packaging.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@
"/bin/System.Web.Http.dll",
"/bin/System.Web.Http.WebHost.dll",
"/bin/DotNetNuke.Web.Mvc.dll",

"/bin/ClientDependency.Core.Mvc.dll",
"/bin/DotNetNuke.Web.MvcPipeline.dll",
"/bin/DotNetNuke.Web.MvcWebsite.dll",

"/bin/System.Web.Mvc.dll",
"/bin/System.Web.Helpers.dll",
"/bin/Microsoft.Web.Helpers.dll",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,21 @@
<assemblies>
<assembly>
<path>bin</path>
<name>ClientDependency.Core.Mvc.dll</name>
<version>1.9.10.0</version>
</assembly>
<assembly>
<path>bin</path>
<name>DotNetNuke.Web.MvcPipeline.dll</name>
<version>0.0.1.0</version>
</assembly>
<assembly>
<path>bin</path>
<name>DotNetNuke.Web.MvcWebsite.dll</name>
<version>0.0.1.0</version>
</assembly>
<assembly>
<path>bin</path>
<name>DotNetNuke.Web.Mvc.dll</name>
<version>9.10.0</version>
</assembly>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// 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.ContentSecurityPolicy
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the same as the pending CSP PR into develop?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes it's the same. It need to be removed from here after the pr in develop is merged, so we can remerg it in this branch.
Or some other sujestion how to manage this ?

{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

/// <summary>
/// Base class for all CSP directive contributors.
/// </summary>
public abstract class BaseCspContributor
{
/// <summary>
/// Gets unique identifier for the contributor.
/// </summary>
public Guid Id { get; } = Guid.NewGuid();

/// <summary>
/// Gets or sets type of the CSP directive.
/// </summary>
public CspDirectiveType DirectiveType { get; protected set; }

/// <summary>
/// Generates the directive string.
/// </summary>
/// <returns>The directive string.</returns>
public abstract string GenerateDirective();
}
}
Loading