Click or drag to resize
Standard sections configuration

This section describe the needed configuration in the standard .NET configuration sections for the engine to work.

Core engine

For the core engine to work, you need to register the EngineModule and associate the EngineHandler with the paths you want to intercept. In the following example, we just intercept all ashx files with the handler, but you can target specific file names if needed.

You must also declare the activsoft.engine configuration section.

Application pool in integrated mode

<configSections>
  <section name="activsoft.engine" type="Activsoft.Engine.EngineSection,Activsoft.Engine"/>
</configSections>
<activsoft.engine>
  <handlers>
  </handlers>
</activsoft.engine>
<system.webServer>
  <modules>
    <add name="activsoft.engine" type="Activsoft.Engine.Web.EngineModule,Activsoft.Engine.Web" />
  </modules>
  <handlers>
    <add name="activsoft.engine" path="*.ashx" verb="*" type="Activsoft.Engine.Web.EngineHandler,Activsoft.Engine.Web" resourceType="Unspecified" preCondition="integratedMode" />
  </handlers>
</system.webServer>

Application pool in classic mode

<configSections>
  <section name="activsoft.engine" type="Activsoft.Engine.EngineSection,Activsoft.Engine"/>
</configSections>
<activsoft.engine>
  <handlers>
  </handlers>
</activsoft.engine>
<system.web>
  <httpModules>
    <add name="activsoft.engine" type="Activsoft.Engine.Web.EngineModule,Activsoft.Engine.Web"/>
  </httpModules>
  <httpHandlers>
    <add path="*.ashx" verb="*" type="Activsoft.Engine.Web.EngineHandler,Activsoft.Engine.Web"/>
  </httpHandlers>
</system.web>
Dashboard

For the dashboard to work, you need the following elements:

  • declare a section to define a DashboardRendererFactory and use it in a handler.

  • declare a section to define a XslFilterSection, add the XslFilter to its filter list, and use it in the handler defined above.

  • declare at least two handlers, CssHandler and JavascriptHandler (other handlers are needed for certain controls, see the comments below).

  • some controls need additional javascript, excluded from the standard libraries, and you can add javascript libraries yourself in the libraries.ashx delivered javascript file.

    in this case, you must declare the jslibraries section, with only one key named libraries, containing resources included into assemblies separated by spaces (the format is assemblyname.resourcename, see below)

Application pool in integrated mode

<configSections>
  <section name="dashboardRenderer" type="Activsoft.Dashboard.DashboardRendererFactory,Activsoft.Dashboard"/>
  <section name="xslfilter" type="Activsoft.Engine.XslFilter.XslFilterSection,Activsoft.Engine"/>
  <!-- if you need to add javascript libraries in the libraries.ashx -->
  <section name="jslibraries" type="System.Configuration.NameValueFileSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<activsoft.engine>
  <handlers>
    <handler name="xslt" path="xslt.ashx" defaultTemplate="30001"> 
      <actions>
        ...
      </actions>
      <extractors>
        ...
      </extractors>
      <renderers>
        <renderer section="dashboardRenderer"/>
      </renderers>
      <enginemodule>
        ...
      </enginemodule>
      <transformgenerator section="xslfilter"/>
    </handler>
  </handlers>
</activsoft.engine>
<xslfilter>
  <filters>
    <add type="Activsoft.Dashboard.XslFilter,Activsoft.Dashboard">
      <javascript outputDir="..\xsljs"/>
    </add> 
  </filters>
</xslfilter>
<!--
  ckeditor4 defines that the HtmlEditor control uses CKEditor v4 instead of CKEditor v3
  Activsoft.Dashboard.jquery-min.js Activsoft.Dashboard.jquery-ui.min.js Activsoft.Dashboard.activsoft.ajax.arbo-min.js Activsoft.Dashboard.activsoft.ajax.cache-min.js Activsoft.Dashboard.activsoft.dragdrop-min.js are needed for the acs:Tree control
  Activsoft.Dashboard.activsoft.maps-min.js is need for the acs:Map control
-->
<jslibraries>
  <add key="libraries" value="ckeditor4 Activsoft.Dashboard.jquery-min.js Activsoft.Dashboard.jquery-ui.min.js Activsoft.Dashboard.activsoft.ajax.arbo-min.js Activsoft.Dashboard.activsoft.ajax.cache-min.js Activsoft.Dashboard.activsoft.dragdrop-min.js Activsoft.Dashboard.activsoft.maps-min.js" />
</jslibraries>
<system.webServer>
  <modules>
    <add name="activsoft.engine" type="Activsoft.Engine.Web.EngineModule,Activsoft.Engine.Web" />
  </modules>
  <handlers>
    <add name="activsoft.engine" path="*.ashx" verb="*" type="Activsoft.Engine.Web.EngineHandler,Activsoft.Engine.Web" resourceType="Unspecified" preCondition="integratedMode" />
    <add path="dashboardcss.ashx" verb="*" type="Activsoft.Dashboard.CssHandler,Activsoft.Dashboard" />
    <add path="libraries.ashx" verb="*" type="Activsoft.Dashboard.JavascriptHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:ListChooser control -->
    <add path="sort.ashx" verb="*" type="Activsoft.Dashboard.SortHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:HtmlEditor or acs:AppletEditor controls -->
    <add path="blobapplet.ashx" verb="*" type="Activsoft.Dashboard.BlobAppletHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:AppletEditor control -->
    <add path="applet.ashx" verb="*" type="Activsoft.Dashboard.AppletHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:HtmlEditor control -->
    <add path="media_analyzer.ashx" verb="*" type="Activsoft.Dashboard.MediaAnalyzerHandler,Activsoft.Dashboard" />
  </handlers>
</system.webServer>

Application pool in classic mode

<configSections>
  <section name="dashboardRenderer" type="Activsoft.Dashboard.DashboardRendererFactory,Activsoft.Dashboard"/>
  <section name="xslfilter" type="Activsoft.Engine.XslFilter.XslFilterSection,Activsoft.Engine"/>
  <!-- if you need to add javascript libraries in the libraries.ashx -->
  <section name="jslibraries" type="System.Configuration.NameValueFileSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<activsoft.engine>
  <handlers>
    <handler name="xslt" path="xslt.ashx" defaultTemplate="30001"> 
      <actions>
        ...
      </actions>
      <extractors>
        ...
      </extractors>
      <renderers>
        <renderer section="dashboardRenderer"/>
      </renderers>
      <enginemodule>
        ...
      </enginemodule>
      <transformgenerator section="xslfilter"/>
    </handler>
  </handlers>
</activsoft.engine>
<xslfilter>
  <filters>
    <add type="Activsoft.Dashboard.XslFilter,Activsoft.Dashboard">
      <javascript outputDir="..\xsljs"/>
    </add> 
  </filters>
</xslfilter>
<!--
  ckeditor4 defines that the HtmlEditor control uses CKEditor v4 instead of CKEditor v3
  Activsoft.Dashboard.jquery-min.js Activsoft.Dashboard.jquery-ui.min.js Activsoft.Dashboard.activsoft.ajax.arbo-min.js Activsoft.Dashboard.activsoft.ajax.cache-min.js Activsoft.Dashboard.activsoft.dragdrop-min.js are needed for the acs:Tree control
  Activsoft.Dashboard.activsoft.maps-min.js is need for the acs:Map control
-->
<jslibraries>
  <add key="libraries" value="ckeditor4 Activsoft.Dashboard.jquery-min.js Activsoft.Dashboard.jquery-ui.min.js Activsoft.Dashboard.activsoft.ajax.arbo-min.js Activsoft.Dashboard.activsoft.ajax.cache-min.js Activsoft.Dashboard.activsoft.dragdrop-min.js Activsoft.Dashboard.activsoft.maps-min.js" />
</jslibraries>
<system.web>
  <httpModules>
    <add name="activsoft.engine" type="Activsoft.Engine.Web.EngineModule,Activsoft.Engine.Web"/>
  </httpModules>
  <httpHandlers>
    <add path="*.ashx" verb="*" type="Activsoft.Engine.Web.EngineHandler,Activsoft.Engine.Web"/>
    <add path="dashboardcss.ashx" verb="*" type="Activsoft.Dashboard.CssHandler,Activsoft.Dashboard" />
    <add path="libraries.ashx" verb="*" type="Activsoft.Dashboard.JavascriptHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:ListChooser control -->
    <add path="sort.ashx" verb="*" type="Activsoft.Dashboard.SortHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:HtmlEditor or acs:AppletEditor controls -->
    <add path="blobapplet.ashx" verb="*" type="Activsoft.Dashboard.BlobAppletHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:AppletEditor control -->
    <add path="applet.ashx" verb="*" type="Activsoft.Dashboard.AppletHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:HtmlEditor control -->
    <add path="media_analyzer.ashx" verb="*" type="Activsoft.Dashboard.MediaAnalyzerHandler,Activsoft.Dashboard" />
  </httpHandlers>
</system.web>
Insite

For Insite to work, you need the following elements:

  • a working dashboard installation, as defined above

  • declare a InSiteActionFactory section

  • declare a InSiteRenderer section

  • add the Activsoft.InSite.insite-min.js,Activsoft.InSite javascript library to the jslibraries section

  • define a handler to insite.ashx as below

  • add the XslFilter filter to the xslfilter section before the dashboard filter

  • if you need to define one or more IInSiteTrigger, declare a insite-triggers section

Application pool in integrated mode

<configSections>
  <section name="dashboardRenderer" type="Activsoft.Dashboard.DashboardRendererFactory,Activsoft.Dashboard"/>
  <section name="xslfilter" type="Activsoft.Engine.XslFilter.XslFilterSection,Activsoft.Engine"/>
  <!-- if you need to add javascript libraries in the libraries.ashx -->
  <section name="jslibraries" type="System.Configuration.NameValueFileSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <section name="insiteAction" type="Activsoft.InSite.InSiteActionFactory, Activsoft.InSite"/>
  <section name="insiteRenderer" type="Activsoft.InSite.InSiteRenderer, Activsoft.InSite"/>
  <section name="insite-triggers" type="System.Configuration.NameValueFileSectionHandler"/>
</configSections>
<insiteAction/>
<insiteRenderer/>
<insite-triggers> 
  <add key="document" value="MyNamespace.MyTrigger,MyNamespace"/>
  <add key="document-tree" value="MyNamespace.MyTrigger,MyNamespace"/>
</insite-triggers>
<activsoft.engine>
  <handlers>
    <handler name="insite" path="insite.ashx" defaultTemplate="1">
      <actions>
        <action section="insiteAction"/>
      </actions>
      <extractors>
      </extractors>
      <renderers>    
        <renderer section="insiteRenderer"/>
      </renderers>
      <enginemodule>
        ...
      </enginemodule>
      <transformgenerator section="xslfilter"/>
    </handler>
  </handlers>
</activsoft.engine>
<xslfilter>
  <filters>
    <add type="Activsoft.InSite.XslFilter,Activsoft.InSite">
      <javascript outputDir="..\xsljs"/>
    </add>  
    <add type="Activsoft.Dashboard.XslFilter,Activsoft.Dashboard">
      <javascript outputDir="..\xsljs"/>
    </add> 
  </filters>
</xslfilter>
<!--
  ckeditor4 defines that the HtmlEditor control uses CKEditor v4 instead of CKEditor v3
  Activsoft.Dashboard.jquery-min.js Activsoft.Dashboard.jquery-ui.min.js Activsoft.Dashboard.activsoft.ajax.arbo-min.js Activsoft.Dashboard.activsoft.ajax.cache-min.js Activsoft.Dashboard.activsoft.dragdrop-min.js are needed for the acs:Tree control
  Activsoft.Dashboard.activsoft.maps-min.js is need for the acs:Map control
-->
<jslibraries>
  <add key="libraries" value="Activsoft.InSite.insite-min.js,Activsoft.InSite ckeditor4 Activsoft.Dashboard.jquery-min.js Activsoft.Dashboard.jquery-ui.min.js Activsoft.Dashboard.activsoft.ajax.arbo-min.js Activsoft.Dashboard.activsoft.ajax.cache-min.js Activsoft.Dashboard.activsoft.dragdrop-min.js Activsoft.Dashboard.activsoft.maps-min.js" />
</jslibraries>
<system.webServer>
  <modules>
    <add name="activsoft.engine" type="Activsoft.Engine.Web.EngineModule,Activsoft.Engine.Web" />
  </modules>
  <handlers>
    <add name="activsoft.engine" path="*.ashx" verb="*" type="Activsoft.Engine.Web.EngineHandler,Activsoft.Engine.Web" resourceType="Unspecified" preCondition="integratedMode" />
    <add path="dashboardcss.ashx" verb="*" type="Activsoft.Dashboard.CssHandler,Activsoft.Dashboard" />
    <add path="libraries.ashx" verb="*" type="Activsoft.Dashboard.JavascriptHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:ListChooser control -->
    <add path="sort.ashx" verb="*" type="Activsoft.Dashboard.SortHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:HtmlEditor or acs:AppletEditor controls -->
    <add path="blobapplet.ashx" verb="*" type="Activsoft.Dashboard.BlobAppletHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:AppletEditor control -->
    <add path="applet.ashx" verb="*" type="Activsoft.Dashboard.AppletHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:HtmlEditor control -->
    <add path="media_analyzer.ashx" verb="*" type="Activsoft.Dashboard.MediaAnalyzerHandler,Activsoft.Dashboard" />
  </handlers>
</system.webServer>

Application pool in classic mode

<configSections>
  <section name="dashboardRenderer" type="Activsoft.Dashboard.DashboardRendererFactory,Activsoft.Dashboard"/>
  <section name="xslfilter" type="Activsoft.Engine.XslFilter.XslFilterSection,Activsoft.Engine"/>
  <!-- if you need to add javascript libraries in the libraries.ashx -->
  <section name="jslibraries" type="System.Configuration.NameValueFileSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <section name="insiteAction" type="Activsoft.InSite.InSiteActionFactory, Activsoft.InSite"/>
  <section name="insiteRenderer" type="Activsoft.InSite.InSiteRenderer, Activsoft.InSite"/>
  <section name="insite-triggers" type="System.Configuration.NameValueFileSectionHandler"/>
</configSections>
<insiteAction/>
<insiteRenderer/>
<insite-triggers> 
  <add key="document" value="MyNamespace.MyTrigger,MyNamespace"/>
  <add key="document-tree" value="MyNamespace.MyTrigger,MyNamespace"/>
</insite-triggers>
<activsoft.engine>
  <handlers>
    <handler name="insite" path="insite.ashx" defaultTemplate="1">
      <actions>
        <action section="insiteAction"/>
      </actions>
      <extractors>
      </extractors>
      <renderers>    
        <renderer section="insiteRenderer"/>
      </renderers>
      <enginemodule>
        ...
      </enginemodule>
      <transformgenerator section="xslfilter"/>
    </handler>
  </handlers>
</activsoft.engine>
<xslfilter>
  <filters>
    <add type="Activsoft.InSite.XslFilter,Activsoft.InSite">
      <javascript outputDir="..\xsljs"/>
    </add>  
    <add type="Activsoft.Dashboard.XslFilter,Activsoft.Dashboard">
      <javascript outputDir="..\xsljs"/>
    </add> 
  </filters>
</xslfilter>
<!--
  ckeditor4 defines that the HtmlEditor control uses CKEditor v4 instead of CKEditor v3
  Activsoft.Dashboard.jquery-min.js Activsoft.Dashboard.jquery-ui.min.js Activsoft.Dashboard.activsoft.ajax.arbo-min.js Activsoft.Dashboard.activsoft.ajax.cache-min.js Activsoft.Dashboard.activsoft.dragdrop-min.js are needed for the acs:Tree control
  Activsoft.Dashboard.activsoft.maps-min.js is need for the acs:Map control
-->
<jslibraries>
  <add key="libraries" value="Activsoft.InSite.insite-min.js,Activsoft.InSite ckeditor4 Activsoft.Dashboard.jquery-min.js Activsoft.Dashboard.jquery-ui.min.js Activsoft.Dashboard.activsoft.ajax.arbo-min.js Activsoft.Dashboard.activsoft.ajax.cache-min.js Activsoft.Dashboard.activsoft.dragdrop-min.js Activsoft.Dashboard.activsoft.maps-min.js" />
</jslibraries>
<system.web>
  <httpModules>
    <add name="activsoft.engine" type="Activsoft.Engine.Web.EngineModule,Activsoft.Engine.Web"/>
  </httpModules>
  <httpHandlers>
    <add path="*.ashx" verb="*" type="Activsoft.Engine.Web.EngineHandler,Activsoft.Engine.Web"/>
    <add path="dashboardcss.ashx" verb="*" type="Activsoft.Dashboard.CssHandler,Activsoft.Dashboard" />
    <add path="libraries.ashx" verb="*" type="Activsoft.Dashboard.JavascriptHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:ListChooser control -->
    <add path="sort.ashx" verb="*" type="Activsoft.Dashboard.SortHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:HtmlEditor or acs:AppletEditor controls -->
    <add path="blobapplet.ashx" verb="*" type="Activsoft.Dashboard.BlobAppletHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:AppletEditor control -->
    <add path="applet.ashx" verb="*" type="Activsoft.Dashboard.AppletHandler,Activsoft.Dashboard" />
    <!-- needed if you use the acs:HtmlEditor control -->
    <add path="media_analyzer.ashx" verb="*" type="Activsoft.Dashboard.MediaAnalyzerHandler,Activsoft.Dashboard" />
  </httpHandlers>
</system.web>