Sure, there's load's in platform code (taxonomy, journal, htmleditorprovider, htmleditor etc.) - grab a source download from http://www.dnnsoftware.com/community/...
Here's a simple example from DNN Platform\Modules\HTML\Components\HtmlTextController.cs
public class HtmlTextController : ModuleSearchBase, IPortable, IUpgradeable
...removed various content
public string UpgradeModule(string Version)
{
switch (Version)
{
case "05.01.02":
//remove the Code SubDirectory
Config.RemoveCodeSubDirectory("HTML");
//Once the web.config entry is done we can safely remove the HTML folder
var arrPaths = new string[1];
arrPaths[0] = "App_Code\\HTML\\";
FileSystemUtils.DeleteFiles(arrPaths);
break;
case "06.00.00":
DesktopModuleInfo desktopModule = DesktopModuleController.GetDesktopModuleByModuleName("DNN_HTML", Null.NullInteger);
desktopModule.Category = "Common";
DesktopModuleController.SaveDesktopModule(desktopModule, false, false);
break;
case "06.02.00":
AddNotificationTypes();
break;
}
return string.Empty;
}
If you look into DNN Platform\Modules\HTML\dnn_HTML.dnn you'll see the module definition businessControllerClass mode referencing the class above, and declaring that it supports Upgradeable i.e.
<component type="Module">
<desktopModule>
<moduleName>DNN_HTML</moduleName>
<foldername>HTML</foldername>
<shareable>Supported</shareable>
<businessControllerClass>DotNetNuke.Modules.Html.HtmlTextController, DotNetNuke.Modules.Html</businessControllerClass>
<supportedFeatures>
<supportedFeature type="Portable" />
<supportedFeature type="Searchable" />
<supportedFeature type="Upgradeable" />
</supportedFeatures>
<moduleDefinitions>