DNN Blog

Apr 1

Posted by: Chris Paterra
4/1/2007  RssIcon

I was looking around for some details on the xml node available for an installable DNN module labeled compatibleversions. I was able to find a forum post in our private team forums where Shaun talks about this (from back in November) and I figured I would share with the community. This node can be placed in the .dnn manifest file, used by the DotNetNuke module installer,  and can set the minimum required DotNetNuke core version a module requires.

For example, the next major forum release requires DotNetNuke core 4.4.0 or greater. In order to handle the potential support issues which would arise from users trying to install in DotNetNuke 4.3.5, for example, this node allows me to specify in the .dnn manifest file the lowest compatible core DotNetNuke version my module requires.

To use this in my module, I structured my .dnn manifest file as such:

<?xml version="1.0" encoding="utf-8" ?>
<dotnetnuke version="3.0" type="Module">
 <folders>
  <folder>
   <name>Forum</name>
   <friendlyname>Forum</friendlyname>
   <foldername>Forum</foldername>
   <modulename>DNN_Forum</modulename>
   <description>The core forum module for DotNetNuke.</description>
   <version>04.04.00</version>
   <businesscontrollerclass>DotNetNuke.Modules.Forum.ThreadController, DotNetNuke.Modules.Forum</businesscontrollerclass>
   <compatibleversions>^[0-9]{1}[4-9]{1}.[0-9]{1}[4-9]{1}.[0-9]{1}[0-9]{1}$</compatibleversions>
   <resourcefile>Resources.zip</resourcefile>
   <modules>
    <module>
     <friendlyname>Forum</friendlyname>
       <cachetime>-1</cachetime>
      <controls>
       <control>
        <title>Forum</title>
        <src>Forum_Container.ascx</src>
        <type>View</type>
       </control>

As you can see above, I have higlighted the area that we are discussing here (I also didn't post the remainding section of the example .dnn manifest file). This node uses a regular expression to set the minimum DotNetNuke core version. You can test for a proper match at http://www.regextester.com/. The above example requires DotNetNuke 4.4.0 or greater. (Remember that DotNetNuke uses the xx.xx.xx format)

I believe this support has existed since DotNetNuke 3.3.6/4.3.6. (If not these, I know the x.x.7 series has this capability in there) If you add this node and someone tries to install in a verion prior to those, the check will not be done but the module install will fail because the schema for the manifest file in those versions had no idea what compatibleversions was. If someone tried to install the example forum in a DotNetNuke core 4.3.7, a message would be displayed about the core version being incompatible. If the version is compatible, however, the install process will complete as before.

Just a note, if you wanted to support a module on both 3.x and 4.x you can do something like:

^[0-9]{1}[3-9]{1}.[0-9]{1}[3-9]{1}.[0-9]{1}[0-9]{1}$

This means that 03.03.00 - 09.03.99 will pass and 02.02.02, 03.01.00 would fail.

Hope this comes in handy!

Tags:
Categories:

5 comment(s) so far...


Re: Minimum DotNetNuke Core Version Support

Good post Chris, thanks for the info. I didn't know that was in there.

The regex needs to be tweak a little to handle versions such as 04.13.00 or 05.00.00.
To match these you'd have to change to the following:

^[0-9]{1}[4-9]{1}.[0-9]{1}[4-9]{1}.[0-9]{2}|[0-9]{1}[4-9]{1}.[1-9]{1}[0-9]{1}.[0-9]{2}$

Let's hope we don't get to rev 13 :)

By dnnstuff on   4/5/2007

Re: Minimum DotNetNuke Core Version Support

Hi again Chris. I've finally got around to trying this in a manifest for my module because I'm targeting the new DNN 4.5.0+ now and I was getting installer errors when trying to install in DNN 4.4.0 or DNN 4.4.1.

I found the problem was because I had the compatibleversions node after the resourcefile node. After I reordered the nodes it started working. I'm not sure why the order of nodes makes a difference but wanted to mention this in case anyone else had the same problem. I think this must be a bug in the installer. Node order shouldn't be an issue with an xml format.


By dnnstuff on   4/7/2007

Re: Minimum DotNetNuke Core Version Support

The order of the nodes are important because they are defined in the xsd file which can be found at: DotNetNuke\Website\Components\ResourceInstaller\ModuleDef_V3.xsd.

By Crispy on   4/7/2007

Re: Minimum DotNetNuke Core Version Support

Just a note, it seems there is a bug in core 4.4.1 which doesn't allow the installer to use this feature. I know it is working properly in 4.5 though, so please keep this in mind.

By Crispy on   4/10/2007

Re: Minimum DotNetNuke Core Version Support

FYI - this didn't work in v4.06.02. It worked prior though. I had to make the preceding zero optional: ^[0]?[3-9]{1}\.[0-9]{1}[3-9]{1}\.[0-9]{1}[0-9]{1}$

By hismightiness on   1/28/2008
Attend A Webinar
Free Demo Site
Download DotNetNuke Professional Edition Trial
Have Someone Contact Me

Like Us on Facebook Join our Network on LinkedIn Follow DNN Corporate on Twitter Follow DNN on Twitter

Advertisers

Sponsors

DotNetNuke Corporation

DotNetNuke Corp. is the steward of the DotNetNuke open source project, the most widely adopted Web Content Management Platform for building web sites and web applications on Microsoft .NET. Organizations use DotNetNuke to quickly develop and deploy interactive and dynamic web sites, intranets, extranets and web applications. The DotNetNuke platform is available in a free Community and subscription-based Professional and Enterprise Editions with an Elite Support option. DotNetNuke Corp. also operates Snowcovered.com where users purchase third party apps for the platform.