Modules

Introduction

Dynamix is using modules for installing components into web sites.

Some of the things that the modules can do is:

  • Copy files

  • Create virtual directories

  • Execute upgrade code

  • Manage dependecies

  • Update web.config assembly bindings

  • Share modules between multiple sites

The modules are normally installed in the standard Program Files folder. Dynamix Manager is then used to install the modules into web sites. The modules are defined using a Module.xml-file in the project root folder.

Module.xml

Example Module.xml:

<?xml version="1.0" encoding="utf-8"?>
<modules schemaVersion="1.0" xmlns="http://initiva.se/Dynamix/Module1_0.xsd">
  <module name="Module1" version="1.0.0" databaseName="Module1">
    <assembly fullName="Module1, Version=1.0.0.0, Culture=neutral"
              upgradeClass="Module1.Upgrades.ModuleUpgradeInstaller" />
    <virtualDirectories>
      <virtualDirectory diskPath="Module1" sitePath="Module1" isPublic="true" />
    </virtualDirectories>
    <files>
      <file diskPath="bin\Module1.dll" sitePath="DynamixBin\Module1.dll"/>
      <file diskPath="bin\sv\Module1.resources.dll"
            sitePath="DynamixBin\sv\Module1.resources.dll"/>
      <file diskPath="favicon.ico" sitePath="favicon.ico"/>
    </files>
    <dependencies>
      <dependency name="Dynamix" databaseName="Dynamix"
                  minimumVersion="6.0.122" />
      <dependency name="SlideShowModule" databaseName="SlideShowModule2"
                  minimumVersion="2.0.3" />
    </dependencies>
    <httpModules>
      <httpModule name="Module1.HttpModule" type="Module1.HttpModule" />
    </httpModules>
  </module>
</modules>

Module element

  • name - the name of the module presented in Dynamix Manager

  • version - the module version

  • databaseName - The module internal name. This string must be the same as in the UpgradeInstaller property "ModuleName". This name is used for grouping the different versions of the same module.

  <module name="Module1" version="1.0.0" databaseName="Module1">

Assembly element

Defines the main assembly in the module and the type used for upgrades. "assemblyBinding"-elements with upgrade information is added to web.config for this assembly.

  • fullName - the main assembly in the module

  • upgradeClass - the name of the UpgradeInstaller-class used for upgrades

    <assembly fullName="Module1, Version=1.0.0.0, Culture=neutral"
              upgradeClass="Module1.Upgrades.ModuleUpgradeInstaller" />

Virtual directory element

Creates a virtual directory in the web site.

  • diskPath - the relative disk folder path ({InstallFolder}\Module1 in the example)

  • sitePath - the virtual folder name. (http://website/Module1 in the example)

  • isPublic - not used, set to true

      <virtualDirectory diskPath="Module1" sitePath="Module1" isPublic="true" />

File element

Copies the specified file to the web site

  • diskPath - the relative disk file path ({InstallFolder}\bin\Module1.dll in the example)

  • sitePath - the web site relative destination file name. ({Web site}\DynamixBin\Module1.dll in the example)

      <file diskPath="bin\Module1.dll" sitePath="DynamixBin\Module1.dll"/>

Dependency element

Specifies that the module is dependant on another module.

  • name - the name of the required module (used for presentation in Dynamix Manager if the module is not installed)

  • databaseName - the databaseName of the required module

  • minimumVersion - the minimum version of the required module

      <dependency name="Dynamix" databaseName="Dynamix"
                  minimumVersion="6.0.122" />

HttpModule element

Registers HttpModule-elements in web.config.

  • name - the module name used in web.config

  • type - the class name for the HttpModule

      <httpModule name="Module1.HttpModule" type="Module1.HttpModule" />

Last updated 2016-01-15