DNN Platform comes with thousands of .Net APIs, allowing developers to customize DNN to their needs. From time to time we deprecate some of these APIs as well.
Reasons for Deprecation
A few reasons why we deprecate APIs:
- API is insecure
- API does not perform very well
- API has bugs
- API is no longer needed
Count of Deprecated APIs
We did our analysis and found the following deprecated APIs existed at the time of 9.1.1
- 4.x 1
- 5.x 285
- 6.x 176
- 7.x 178
- 8.x 7
- 9.x 2
As can be seen, majority of the deprecated APIs belonged to 7.x and prior. We have removed deprecated APIs from 4.x, 5.x and 6.x ONLY. Deprecated APIs from 7.x are still in the product, which we will remove in a future version. Please note that 6.0 was released in summer of 2011. It's been almost 7 years since that release. DNN 7.0 was released in November of 2012, over 5 years ago.
Replacement for Deprecated APIs
We always provide an alternative when we deprecate an API. Generally, we ensure that both old and new APIs continue to function.
Am I using deprecated APIs?
If you have not updated your extension (module / theme (skin) in a long time, it's likely that you are using deprecated APIs.
How to tell if I am using deprecated APIs?
Simply recompile your application with a newer version of DNN, e.g. 9.1.1, and look for warnings in Visual Studio. Your extension will run while using a deprecated API, although you are highly recommended to use the alternate APIs.
How do I know the alternate APIs?
We always note down the name of new APIs (if there is one) while deprecating APIs. This will appear in compiler warning. As an example, the method "protected bool IsPreview" in namespace "DotNetNuke.UI.ControlPanels.ControlPanelBase" has been "Deprecated in 5.0. Replaced By UserMode."
Will my site break if I upgrade to 9.2?
It may. We have removed over 500 deprecated APIs in 9.2, and if you happen to use any one of them, the page hosting that module will definitely break. Please advise your module developer to update the module.
What errors I might see?
As an example, you may see this: System.MissingMethodException: Method not found: 'Void DotNetNuke.Framework.CDefault.AddStyleSheet(System.String, System.String)
List of APIs being removed
We have made a list of all the APIs that we have removed in 9.2 in this Jira issue. This issue has an excel file attachment containing the full list.