Skip to content

Replace CDF#6729

Merged
valadas merged 76 commits intodnnsoftware:developfrom
donker:remove-cdf
Nov 12, 2025
Merged

Replace CDF#6729
valadas merged 76 commits intodnnsoftware:developfrom
donker:remove-cdf

Conversation

@donker
Copy link
Copy Markdown
Contributor

@donker donker commented Sep 29, 2025

This PR will move DNN away from the ClientDependencyCore project and replace this with our own (simplified) logic for managing client dependencies.

Motivation

We do this for two main reasons:

  1. The CDF has gone stale and all immediate potential replacements have also gone stale
  2. The CDF will not allow us to include an MVC pipeline and hinders further development of DNN

Overview of Changes

The main changes are in the System.Web.Client library that managed most interaction with the CDF. The central class ClientDependencyManager now reroutes calls to the new logic and has been marked as deprecated. The new logic is concentrated in System.Web.Client.ResourceManagement and consists of an injectable IClientResourceController. This controller is used as follows to add a resource:

    this.clientResourcesController
        .CreateScript()
        .FromSrc("~/Resources/Search/Search.js")
        .SetPriority(FileOrder.Js.DefaultPriority)
        .SetProvider(ClientResourceProviders.DnnFormBottomProvider)
        .Register();

It is important to call Register() at the end to add the resource. Various extension methods allow you to specify specific attributes to be added for the resource such as async and defer. There are also shorthand extensions in the DotNetNukelIbrary project to register a script with defaults: this.clientResourcesController.RegisterScript("~/Resources/Search/Search.js");

Breaking Changes

Note that this PR removes the ability to minify and bundle from the framework. Our motivation to cut support for this is:

  1. It is a non-trivial task to reimplement these and carries a significant risk
  2. Modern front-end development uses minifying as a build step when rolling out to production, begging the question why the framework should do this
  3. HTTP2 has reduced the need for bundling as a way to speed page load. Instead, server side bundling would now just add needless processing and management.

This PR addresses #6643

donker and others added 29 commits August 22, 2025 15:13
…classes to include all the required methods.
donker and others added 16 commits November 4, 2025 22:43
…rceController.cs

Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
…rceController.cs

Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
…rocessingProvider.cs

Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
…urceBase.cs

Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
…ptResource.cs

Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
…Resource.cs

Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
…esheetResource.cs

Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
…urceBase.cs

Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
Co-authored-by: Brian Dukes <bdukes@engagesoftware.com>
Using case-insensitive comparisons makes it unnecessary
@bdukes
Copy link
Copy Markdown
Contributor

bdukes commented Nov 5, 2025

@donker I've adjusted a few other places, including the version comparison. This is ready from my perspective.

Copy link
Copy Markdown
Contributor

@mitchelsellers mitchelsellers left a comment

Choose a reason for hiding this comment

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

I did one additional WebForms test and all still good

@mitchelsellers
Copy link
Copy Markdown
Contributor

@valadas or @david-poindexter Can I get a review from one of you on this one, since Brian made the last edits

Copy link
Copy Markdown
Contributor

@valadas valadas left a comment

Choose a reason for hiding this comment

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

Awesome, thanks!

@valadas valadas merged commit 699703c into dnnsoftware:develop Nov 12, 2025
3 checks passed
@donker donker deleted the remove-cdf branch November 14, 2025 12:59
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