Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Packaging DNN extensions

Extension packaging is a powerful tool that extension creators have at their disposal to create a rich, consistent, safe experience for their users. Learn how you can take advantage of all of the tools that DNN provides for the installation experience, and how to avoid some of the more common pitfalls when creating installable extensions for DotNetNuke.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

  • Be the first to like this

Packaging DNN extensions

  1. 1. <ul>Packaging DNN Modules </ul><ul>Brian Dukes, Engage Software </ul>
  2. 3. <ul>Brian Dukes </ul><ul>Engage Software since 2006 Chief Software Architect in charge of Module Development Microsoft Certified Professional Developer </ul>
  3. 4. <ul>Agenda </ul><ul>Brief History & Context Pitfalls Templates & Automation Great tools </ul>
  4. 5. <ul>History </ul><ul>DNN 3 & 4   - Modules come in .zip files with 3.0 manifest   - 3.0 manifest is very convention-based   - Skins & containers come in .zip files without manifest DNN 5   - Extensions come in .zip files with 5.0 manifest   - 5.0 manifest is extremely declarative   - Old packages can still be installed   - New system has concept of Package above an Extension </ul>
  5. 6. <ul>Types of Installation Components </ul><ul>Dashboard Control Widget Core/Extension Language Provider Authentication System Skin Object Module Skin Container </ul><ul>Config Script File Assembly ResourceFile Cleanup Custom </ul>
  6. 7. <ul>Pitfall - Packages with Same Name </ul><ul>Install successful Uninstall - unsuccessful Upgrade - unsuccessful Repair - unsuccessful </ul>
  7. 8. <ul>Pitfalls - IUpgradeable </ul><ul><desktopModule>   <supportedFeatures>   <supportedFeature Type=&quot;Searchable&quot; />   </supportedFeatures>   ... </desktopModule> <eventMessage>  <processorType>DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke</processorType>   <processorCommand>UpgradeModule</processorCommand>   <attributes>    <businessControllerClass>...</businessControllerClass>    <desktopModuleID>[DESKTOPMODULEID]</desktopModuleID>    <upgradeVersionsList>01.00.00</upgradeVersionsList>   </attributes>   </eventMessage> </component> </ul>
  8. 9. <ul>Pitfalls - Missing files </ul><ul>Resource File Component (for content files) </ul><ul><component type=&quot;ResourceFile&quot;>  <resourceFiles>   <basePath>DesktopModules/ModuleName</basePath>   <resourceFile>    <name>Resources.zip</name>   </resourceFile>  </resourceFiles>  </component> </ul>
  9. 10. <ul>Pitfalls - Assembly Paths </ul><ul><component type=&quot;Assembly&quot;>  <assemblies>   <!--basePath>bin</basePath-->   <assembly>    <name>Company.Module.dll</name>    <sourceFileName>Company.Module.dll</sourceFileName    <version>1.0.0</version>   </assembly>  </assemblies> </component> </ul>
  10. 11. <ul>Pitfalls - Assembly Versions </ul><ul>Install DNN 4 module in DNN 5 site Assembly Version = Package Version </ul>
  11. 12. <ul>Templates </ul><ul>Code Endeavors   - http://codeendeavortemplate.codeplex.com   - MSBuild Community Tasks Christoc   - http://christoctemplate.codeplex.com   - NAnt </ul>
  12. 13. <ul>Powerful Tools - Config </ul><ul><component type=&quot;Config&quot;>  <config>   <configFile>web.config</configFile>   <install>    <configuration>     <nodes>      <node path=&quot;/configuration/system.web/httpHandlers&quot; action=&quot;update&quot; key=&quot;path&quot; collision=&quot;overwrite&quot;>       <add verb=&quot;*&quot; path=&quot;Telerik.Web.UI.WebResource.axd&quot; validate=&quot;false&quot; type=&quot;Telerik.Web.UI.WebResource, Telerik.Web.UI&quot; />      </node>     </nodes>    </configuration>   </install>   <uninstall>    <configuration>     <nodes />    </configuration>   </uninstall>  </config> </component> </ul>
  13. 14. <ul>Powerful Tools - Cleanup </ul><ul><component type=&quot;Cleanup&quot; version=&quot;05.01.03&quot;>  <files>   <file>    <path>bin</path>    <name>DotNetNuke.Caching.FileBasedCachingProvider.dll</name>   </file>  </files> </component> <component type=&quot;Cleanup&quot; version=&quot;05.01.02&quot; fileName =&quot;05.01.02.txt&quot; /> </ul><ul>05.01.02.txt </ul><ul>'remove App_code files App_CodeHTMLHtmlTextInfo.vb App_CodeHTML 'remove code behind files DesktopModulesHTMLEditHtml.ascx.vb </ul>
  14. 15. <ul>Powerful Tools - Dependencies </ul><ul>  - CoreVersion   - Package   - Type   - Permission   - WebPermission (external web services)   - ReflectionPermission   - AspNetHostingPermission </ul><ul><dependencies>  <dependency type=&quot;CoreVersion&quot;>05.04.00</dependency> </dependencies> </ul>
  15. 16. <ul>Powerful Tools - Assembly Versions </ul><ul><component type=&quot;Assembly&quot;>  <assemblies>   <assembly>    <path>bin</path>    <name>DotNetNuke.SqlDataProvider.dll</name>    <version>05.00.00</version>   </assembly>   <assembly>    <path>bin</path>    <name>Microsoft.ApplicationBlocks.Data.dll</name>    <version>02.00.00</version>   </assembly>  </assemblies> </component> </ul>
  16. 17. <ul>Tips </ul><ul>  - .dnn5 extension introduced in DNN 5.2   - HTML in release notes/license </ul>
  17. 18. <ul>Questions? </ul><ul>Commit to DotNetNuke's Stack Exchange: http://bit.ly/dnn-se </ul>

×