Packaging DNN extensions
-
Upload
engage-software -
Category
Technology
-
view
3.826 -
download
1
description
Transcript of Packaging DNN extensions
Packaging DNN Modules
Brian Dukes, Engage Software
Brian DukesBrian Dukes
Engage Software since 2006Engage Software since 2006Chief Software Architect in charge of Module DevelopmentChief Software Architect in charge of Module DevelopmentMicrosoft Certified Professional DeveloperMicrosoft Certified Professional Developer
AgendaAgenda
Brief History & Context Brief History & Context PitfallsPitfallsTemplates & Automation Templates & Automation Great toolsGreat tools
HistoryHistory
DNN 3 & 4DNN 3 & 4 - Modules come in .zip files with 3.0 manifest - Modules come in .zip files with 3.0 manifest - 3.0 manifest is very convention-based - 3.0 manifest is very convention-based - Skins & containers come in .zip files without manifest- Skins & containers come in .zip files without manifestDNN 5DNN 5 - Extensions come in .zip files with 5.0 manifest- Extensions come in .zip files with 5.0 manifest - 5.0 manifest is extremely declarative - 5.0 manifest is extremely declarative - Old packages can still be installed- Old packages can still be installed - New system has concept of Package above an Extension- New system has concept of Package above an Extension
Types of Installation ComponentsTypes of Installation Components
Dashboard ControlDashboard ControlWidgetWidgetCore/Extension LanguageCore/Extension LanguageProviderProviderAuthentication SystemAuthentication SystemSkin ObjectSkin ObjectModuleModuleSkinSkinContainer Container
ConfigConfigScriptScriptFileFileAssemblyAssemblyResourceFileResourceFileCleanupCleanupCustomCustom
Pitfall - Packages with Same NamePitfall - Packages with Same Name
Install successfulInstall successfulUninstall - unsuccessfulUninstall - unsuccessfulUpgrade - unsuccessfulUpgrade - unsuccessfulRepair - unsuccessfulRepair - unsuccessful
Pitfalls - IUpgradeablePitfalls - IUpgradeable
<desktopModule><desktopModule> <supportedFeatures><supportedFeatures> <supportedFeature Type="Searchable" /> <supportedFeature Type="Searchable" /> </supportedFeatures></supportedFeatures> ......</desktopModule></desktopModule><eventMessage> <eventMessage> <processorType>DotNetNuke.Entities.Modules.EventMessageProcessor, <processorType>DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke</processorType>DotNetNuke</processorType> <processorCommand>UpgradeModule</processorCommand> <processorCommand>UpgradeModule</processorCommand> <attributes> <attributes> <businessControllerClass>...</businessControllerClass><businessControllerClass>...</businessControllerClass> <desktopModuleID>[DESKTOPMODULEID]</desktopModuleID> <desktopModuleID>[DESKTOPMODULEID]</desktopModuleID> <upgradeVersionsList>01.00.00</upgradeVersionsList> <upgradeVersionsList>01.00.00</upgradeVersionsList> </attributes> </attributes> </eventMessage></eventMessage></component></component>
Pitfalls - Missing filesPitfalls - Missing files
Resource File Component (for content files)Resource File Component (for content files)
<component type="ResourceFile"><component type="ResourceFile"> <resourceFiles> <resourceFiles> <basePath>DesktopModules/ModuleName</basePath> <basePath>DesktopModules/ModuleName</basePath> <resourceFile> <resourceFile> <name>Resources.zip</name> <name>Resources.zip</name> </resourceFile> </resourceFile> </resourceFiles> </resourceFiles> </component></component>
Pitfalls - Assembly PathsPitfalls - Assembly Paths
<component type="Assembly"><component type="Assembly"> <assemblies> <assemblies> <!--basePath>bin</basePath--> <!--basePath>bin</basePath--> <assembly> <assembly> <name>Company.Module.dll</name> <name>Company.Module.dll</name> <sourceFileName>Company.Module.dll</sourceFileName<sourceFileName>Company.Module.dll</sourceFileName <version>1.0.0</version><version>1.0.0</version> </assembly> </assembly> </assemblies> </assemblies></component></component>
Pitfalls - Assembly VersionsPitfalls - Assembly Versions
Install DNN 4 module in DNN 5 siteInstall DNN 4 module in DNN 5 siteAssembly Version = Package Version Assembly Version = Package Version
TemplatesTemplates
Code EndeavorsCode Endeavors - http://codeendeavortemplate.codeplex.com- http://codeendeavortemplate.codeplex.com - MSBuild Community Tasks - MSBuild Community Tasks ChristocChristoc - http://christoctemplate.codeplex.com- http://christoctemplate.codeplex.com - NAnt- NAnt
Powerful Tools - ConfigPowerful Tools - Config
<component type="Config"><component type="Config"> <config> <config> <configFile>web.config</configFile> <configFile>web.config</configFile> <install> <install> <configuration> <configuration> <nodes> <nodes> <node path="/configuration/system.web/httpHandlers" <node path="/configuration/system.web/httpHandlers" action="update" key="path" collision="overwrite">action="update" key="path" collision="overwrite"> <add verb="*" path="Telerik.Web.UI.WebResource.axd" <add verb="*" path="Telerik.Web.UI.WebResource.axd" validate="false" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" />validate="false" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" /> </node> </node> </nodes> </nodes> </configuration> </configuration> </install> </install> <uninstall> <uninstall> <configuration> <configuration> <nodes /> <nodes /> </configuration> </configuration> </uninstall> </uninstall> </config> </config></component></component>
Powerful Tools - CleanupPowerful Tools - Cleanup
<component type="Cleanup" version="05.01.03"><component type="Cleanup" version="05.01.03"> <files> <files> <file> <file> <path>bin</path> <path>bin</path> <name>DotNetNuke.Caching.FileBasedCachingProvider.dll</name> <name>DotNetNuke.Caching.FileBasedCachingProvider.dll</name> </file> </file> </files> </files></component></component><component type="Cleanup" version="05.01.02" fileName <component type="Cleanup" version="05.01.02" fileName ="05.01.02.txt" />="05.01.02.txt" />
05.01.02.txt05.01.02.txt'remove App_code files 'remove App_code files App_Code\HTML\HtmlTextInfo.vbApp_Code\HTML\HtmlTextInfo.vbApp_Code\HTML\App_Code\HTML\
'remove code behind files'remove code behind filesDesktopModules\HTML\EditHtml.ascx.vbDesktopModules\HTML\EditHtml.ascx.vb
Powerful Tools - DependenciesPowerful Tools - Dependencies
- CoreVersion - CoreVersion - Package - Package - Type- Type - Permission- Permission - WebPermission (external web services)- WebPermission (external web services) - ReflectionPermission- ReflectionPermission - AspNetHostingPermission- AspNetHostingPermission
<dependencies><dependencies> <dependency type="CoreVersion">05.04.00</dependency> <dependency type="CoreVersion">05.04.00</dependency></dependencies></dependencies>
Powerful Tools - Assembly VersionsPowerful Tools - Assembly Versions
<component type="Assembly"><component type="Assembly"> <assemblies> <assemblies> <assembly> <assembly> <path>bin</path> <path>bin</path> <name>DotNetNuke.SqlDataProvider.dll</name> <name>DotNetNuke.SqlDataProvider.dll</name> <version>05.00.00</version> <version>05.00.00</version> </assembly> </assembly> <assembly> <assembly> <path>bin</path> <path>bin</path> <name>Microsoft.ApplicationBlocks.Data.dll</name> <name>Microsoft.ApplicationBlocks.Data.dll</name> <version>02.00.00</version> <version>02.00.00</version> </assembly> </assembly> </assemblies> </assemblies></component></component>
TipsTips
- .dnn5 extension introduced in DNN 5.2 - .dnn5 extension introduced in DNN 5.2 - HTML in release notes/license- HTML in release notes/license
Questions?Questions?
Commit to DotNetNuke's Stack Exchange: http://bit.ly/dnn-seCommit to DotNetNuke's Stack Exchange: http://bit.ly/dnn-se