v10.0.0
⚠️ KNOWN ISSUES ⚠️
- On new installs only (not on upgrades) and issue has been found where some items would be missing in the web.config file. As a workaround, until the next patch release is published, if you want to start a new website on DNN10, you can install latest v9.x.x release first and then upgrade to 10.0.0 instead.
- We have identified some upgrade issues with localized sites. If your site uses localization we recommend waiting before upgrading to DNN v10.x.x for now. New installations do not appear to have that issue.
⚠️ BREAKING CHANGES ⚠️
- Removed all obsolete APIs marked as deprecated in v8 and before. #2869 #5722 Thanks @mitchelsellers
If you have 3rd party modules, themes, extensions, they may need to be updated, recompiling them against the latest v9 libraries should display any deprecated APIs as warnings or errors about usages of deprecated APIs. Please open an issue if you notice any remove API was not documented properly in v9. - Forced Telerik Removal #6327 Thanks @bdukes
If you had not removed the old Telerik libraries that used to ship with DNN in v9, it will be forcibly removed while upgrading to v10 and any module still having dependencies on it could end up in a broken state.
If you have a modern (recent) version of the Telerik libraries with your own license, they should not be automatically removed, should you encounter any problem with this scenario, please open an issue. - Removed support for WebSlices #4711 Thanks @joshgk00
IE being dead, no remediation is really needed. - Enabled Dependency Injection for Prompt commands #5600 Thanks @bdukes
If you implementedICommandRepository.GetCommandin your own extensions, you need to provide itIServiceProvidernow. - Enabled dependency injection for connectors #5601 Thanks @bdukes
IConnectionsManager.RegisterConnectionwas removed and if you implementedIConnectionsManager.GetConnectorsin your own extensions, you need to provide itIServiceProvidernow. - Installs CodeDOM provider by default #5690 #6002 Thanks @bdukes
Some hosting environments may not support this, if it is the case, you have a couple of options like changing the hosting environment or removing this package before installation/upgrade but some modules may not work if you do. - Upgraded all projects from .NET 4.7.2 to .NET 4.8 #5693 Thanks @bdukes
Make sure do update Windows and/or .Net Framework on your hosting environment before install/upgrade. - Fixed sql scripts and new rollup scripts #6038 #6324 Thanks @donker
The minimum supported SQL Server version is now 2017 (14.x). - Updated Html module to use the new Content Workflow API #6262 Thanks @tvatavuk
If you have content not approved using the previous workflow in this module, please commit or discard changes before upgrading.
Release Notes
We'd like to first thank everyone from the community who has submitted pull requests or reported issues.
A grand total of 180 pull requests by 15 contributors were processed for this release.
Noteworthy Changes in v10.0.0
New features
- Added support for JWT Audience #2182 Thanks @Behnam-Emamian
- Sitemap now produces alternate links in multilingual websites #2870 Thanks @mikebigun
- Multiple modules can now be part of a single package (manifest) #2887 Thanks @kestasjk
- Added support for RoleUpdated event. #5237 Thanks @dimarobert
- Added support for API tokens #5736 #5933 #6299 Thanks @donker
- New styles system: DNN now provides a way for site owners (hosts by default and admins optionaly) to choose some branding preferences using the UI. Designers and developers can then consume site branding preferences in their own solutions. As a developer, if you need the portal preferred styles server-side, you can now get them from
PortalSettings.GetStyles(). In the client-side of things, css variables (custom properties) as available in the:rootscope. All dnn custom properties are prefixed by--dnn- Implemented core support for portal styles. #5851 Thanks @valadas
- Implemented a new module to manage styles #5884 Thanks @valadas
- Imports css-variables into Persona Bar main styles #6279 Thanks @valadas
- Adds support for css-variables to the react common components #6291 Thanks @valadas
- Fixed a typo (missing prefix) for variation-opacity #6295 Thanks @valadas
- Added prefixes to css variables portal settings #6297 Thanks @valadas
- Revamped default.css #6316 Thanks @valadas
- Improvements for Dnn.ClientSide project #6326 Thanks @bdukes
- Fixed a tab position issue in install/upgrade wizard #6328 Thanks @valadas
- Added missing Styles.css file #6370 Thanks @valadas
- New default dependency-free theme
Aperture(customizable by above styles)- Implemented new default theme #5893 Thanks @david-poindexter
- Updated styling of login #5895 Thanks @david-poindexter
- Updated component style helpers to set the stage for template content dev #5897 Thanks @david-poindexter
- Added relatively basic (hehe) collection of utilities to help with content placement #5898 Thanks @david-poindexter
- Added title container (mainly for Resource Manager module use in templates) #5906 Thanks @david-poindexter
- Refined a few TypeScript compilerOptions #5907 Thanks @david-poindexter
- Resolved issue with responsive dimension utility classes #5908 Thanks @david-poindexter
- Added responsive image utilities #5909 Thanks @david-poindexter
- Added text alignment utility classes #5915 Thanks @david-poindexter
- Fixed base style issues and rearchitected SCSS #5916 Thanks @david-poindexter
- Refined various styles and utility classes #5917 Thanks @david-poindexter
- Added smooth scrolling on click for hashed nav items #5918 @david-poindexter
- Refined mobile menu #5921 Thanks @david-poindexter
- Updated Default Website template #5931 Thanks @david-poindexter
- Add responsive border radius utility #5932 Thanks @david-poindexter
- Fixed Default template photos #5936 Thanks @david-poindexter
- Updated Blank Website template #5938 Thanks @david-poindexter
- Removed hard-coded text for Terms and Privacy theme objects #5942 Thanks @david-poindexter
- Remove unused SCSS and CSS reference from partial #5959 @david-poindexter
- Resolved issue with main entry point in package.json file #5965 Thanks @david-poindexter
- Cleaned up additional references to Xcillion #6014 Thanks @david-poindexter
- Resolved issue with file watching and browsersync #6050 Thanks @david-poindexter
- Added new CSS variables support to Aperture theme #6202 Thanks @david-poindexter
- Updated DNN tab styling to comply with new color system #6215 Thanks @david-poindexter
- Updated permission grid styling to resolve a layout issue #6217 Thanks @david-poindexter
- Resolved issue with disabled page names and refactored logic #6288 Thanks @david-poindexter
- Fixed a typo in default website template #6292 Thanks @valadas
- Updated default template content to use proper background class from Aperture #6311 Thanks @david-poindexter
- Resolved issue with default template image src paths #6325 Thanks @david-poindexter
- Multiple small fixes to adjust for new default.css vs Aperture css #6335 #6334 #6333 #6331 #6346 #6337 Thanks @valadas @david-poindexter
- Fixed a font weight issue
- Resolved issue with login button styling on hover #6366 Thanks @david-poindexter
- Fixed a menu collapsion issue in Firefox #6372 Thanks @valadas
- Fixed missing css for dialogs #6379 Thanks @valadas
- Increased specificity of theme Header and Footer class #6408 Thanks @Timo-Breumelhof
- Added min height of Page Content #6409 Thanks @Timo-Breumelhof
- Added more distinction between PB and Theme #6413 Thanks @Timo-Breumelhof
- Resolved page description issue in mobile menu #6427 Thanks @david-poindexter
- Fixed typo in styles text #6436 Thanks @bdukes
Enhancements
- Move email above username field for registration #3204 Thanks @thabaum
- Added more detailed permissions #6043 Thanks @tvatavuk
- Change the way rolenames are localized #6133 Thanks @donker
- Include JWT Auth by default #6354 Thanks @bdukes
- Automatically remove TelerikRemoval module after removing Telerik #6355 Thanks @bdukes
- Made dnn.cookieconsent not require jQuery #6371 Thanks @valadas
- Improved permissions grid (React one) #6406 Thanks @valadas
- Fix styling issue with API Tokens Settings page on the PersonaBar #6417 Thanks @donker
Bug Fixes
- Fixed DDRMenu to handle duplicate page names #4484 Thanks @daguiler
- Bumped Microsoft.Web.Infrastructure from 1.0.0.0 to 2.0.0 #5463
- Resolved StackOverflowException #5655 Thanks @bdukes
- Updated GA4 Connector to build for DNN10 #5729 Thanks @valadas
- Fixed error installing DNN after #5463 #5733 Thanks @bdukes
- Fix SharpZipLib issues #6138 Thanks @donker
- Fixed issue with IndexOutOfRangeException in AdvancedPermissionProvider #6358 Thanks @tvatavuk
- Fixed an issue where install logs would not show after install/upgrade #6367 Thansk @valadas
- Refactored upgrade code after rollup of sql scripts #6381 Thanks @valadas
- Fixed an issue where auth providers config would use wrong layout #6416 Thanks @valadas
- Added a missing assembly file versions in Dnn.Jwt.dnn. #6444 Thanks @tvatavuk
- Fixed issues with migration of HTML content to Content Workflow #6450 Thanks @tvatavuk
- Prevents Roslyn Compilation Errors During DNN v10 Upgrade #6452 Thanks @tvatavuk
- Enhanced Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dnn to avoid potential compilation errors #6455 Thanks @tvatavuk
- Fixed an issue where popups would not work #6460 Thanks @valadas
- Avoids an SQL error for existing ContentWorkflowActions rows #6464 Thanks @bdukes
- Fixed an issue where normal users could not exit edit mode #6470 Thanks @valadas
Maintenance
- Several rebases to keep v10 updated with fixes done in v9 #5636 #5643 #5681 #5685 #5702 #5719 #5748 #5755 #5759 #5765 #5768 #5826 #5793 #5808 #5847 #5861 #5868 #5887 #5928 #5960 #5979 #6044 #6071 #6080 #6089 #6179 #6197 #6208 #6220 #6237 #6254 #6255 #6286 #6301 #6315 #6322 #6375 #6386 #6392 #6414 #6463 #6474 Thanks @valadas @bdukes
- Bumped Log4Net to v2.1.0 Thanks @zyhfish
- Bumped MailKit from 2.15.0 to 4.0.0 #5637
- Bumped SharpZipLib from 1.3.3 to 1.4.2 #5686 Tahnks @bdukes
- Bumped NUnit3TestAdapter for DotNetNuke.Tests.Modules.DDRMenu #5687 Thanks @bdukes
- Bumped Microsoft.CodeDom.Providers.DotNetCompilerPlatform from 2.0.1 to 4.1.0 #5688 Thanks @bdukes
- Bumped System.IdentityModel.Tokens.Jwt from 4.0.2.206221351 to 6.31.0 #5694 Thanks @bdukes
- Bumped the dependencyinjection group with 3 updates #5957
- Bumped Microsoft.AspNet.WebApi.Core dependency to 5.3.0 #6226 Thanks @david-poindexter
- Bumped several dependencies in a large batch #6350 Thanks @bdukes
- Replaced legacy System.IdentityModel.Tokens.Jwt #6356 Thanks @bdukes
- Bumped GitVersion from 5.12.0 to 6.1.0 #6357 Thanks @bdukes
- Use valid syntax for CSS gradients #6359 Thanks @bdukes
- Clean up DesktopModules folder in dev #6361 Thanks @donker
- Fixed reflection calls in Client Resources #6376 Thanks @bdukes
- Bumped Stylecop from 1.1.118 to 1.2.0-beta.556 #6393 Thanks @bdukes
Developer Experience
- Constructor injection is now available in Webforms controls. #4098 Thanks @GerardSmit
- Enabled DI for module injection filters #5602 Thanks @bdukes
- Enabled dependency injection for ImageTransform #5603 Thanks @bdukes
- Allows registration of custom IModuleControlFactory implementations #5606 Thanks @GerardSmit
- Enabled DI for Auth message handlers & routing #5613 Thanks @bdukes
- Enabled DI for DnnFormEditControlItem #5615 Thanks @bdukes
- Added IBusinessControllerProvider abstraction & Globals.GetOrCreateServiceScope #5616 Thanks @bdukes
- Added DI for EventMessageProcessorBase #5617 Thanks @bdukes
- Added support for DI in IPortable #5618 Thanks @bdukes
- Complete DI for business controller class #5619 Thanks @bdukes
- Added DI support for site export/import #5620 Thanks @bdukes
- Added DI for DDR Menu and NavigationProvider #5621 Thanks @bdukes
- Enabled DI for IExtensionController #5622 Thanks @bdukes
- Enabled DI for IMenuItemController #5623 Thanks @bdukes
- Introduced Globals.GetCurrentServiceProvider #5626 Thanks @bdukes
- Introduce FakeServiceProvider for tests #5627 Thanks @bdukes
- Use FakeServiceProvider for the rest of the tests #5631 Thanks @bdukes
- Added ComponentFactory fallback to service provider #5652 Thanks @bdukes
- Added packaging for Microsoft.Extensions.DependencyInjection #5670 Thanks @bdukes
- Add DataContext to DI #6310 Thanks @donker
List of Contributors
- @bdukes Brian Dukes
- @valadas Daniel Valadas
- @david-poindexter David Poindexter
- @donker Perter Donker
- @tvatavuk Tonći Vatavuk
- @mitchelsellers Mitchel Sellers
- @GerardSmit
- @zyhfish Ben
- @daguiler Daniel Aguilera
- @mikebigun Mikhail Bigun
- @dimarobert Robert Dima
- @thabaum Cody
- @Behnam-Emamian Behnam Emamian
- @kestasjk Kestas "Chris" Kuliukas
- @joshgk00 Josh Slaughter
- @Timo-Breumelhof Timo Breumelhof
Additional Resources.
Is this your first time installing or upgrading DNN? If so, you can find some help with the installation and upgrade wiki articles. If this is your 100th time upgrading DNN, maybe review the guides and submit a few changes!