Compatibility Settings

Release 1.0 - ...

Ensuring that new versions of iXperion we ship are SXML backwards compatibile with the previous version is very, very important to us. We have invested a lot of energy in defining unit tests for all the macros and vipers we ship. For each macro and viper, we have multiple tests that are performed with different inputs to make sure that every  new release we ship won't break your site. We are very carefull with fixing bugs in this area. When bugs do need to be fixed we either introduce a new viper or macro and deprecate the old one (like we did with the datatable viper methods). The old one will keep working, though you will no longer be able to see it in the intellisense, ensuring that new sites will use the new, hassle free viper or macro.

On rare occasions, deprecating an existing method is not feasable. On these occasions we will introduce a Compatibility Mode setting that you can use to enforce the old behaviour. These changes are thoroughly documented in the release notes. Unless properly documented, macros or vipers that, given the same input, return a different value on two different versions os iXperion are generaly considered bugs.

Using an application setting in the smartsite.config file, you can set compatibility with a previous release.

Smartsite SXML CopyCode image Copy Code
<add key="Compatibility" value="1.2"/>
Currently, the following settings can be used:

  • 1.0
  • 1.01
  • 1.02
  • 1.1
  • 1.2
  • 1.2 build 2
  • 1.3
  • 1.3 build 3
  • 1.4
  • 1.4 build 11

Configuring individual settings

When a release introduces several compatibility settings, a site might need only a subset of the compatibility settings for the new release. As of Release 1.1 it's possible to add individual compatibility settings in the smartsite.config:

XML CopyCode image Copy Code
<add key="compatStartHierarchyAtLevelZero" value="false"/>

The Compatibility key will determine the default for each setting:

Setting 1.0 1.01 1.02 1.1 1.2 1.2 build 2 1.3 1.3 build 3 1.4 1.4 build 11 1.5
compatAlwaysEncodeQueryParams false false false true true true true true true true true
compatConvertInvariantCulture true true true true true true true true true true true
compatItemDataViperUsesDefaultParameterForEmptyDataTable false false false false true true true true true true true
compatResolveSxmlInXsltFormatting false false false false true true true true true true true
compatSaveBufferScope field field field field field field field field field field field
compatStartHierarchyAtLevelZero false false false true true true true true true true true
compatTypedViperDefaults true true true true true true true true true true true
compatUseCurrentRoleToDetermineContentAccess true true true true true false false false false false false
compatJsonReturnsNulls false false false false false false true true true true true
compatClearSaveBuffersOnInstructionSourceChange false false false false false false true true true true true
compatRegionOverrulesLocalBufferScope true true true true true true false false false false false
compatStaticallyResolveSmartletPropertyDefaults true true true true true true true true false false false
compatDebugWriteCultureInvariant false false false false false false false false true true true
compatCompareDateTimeInUTC false false false false false false false false false false true
compatSiteMapUsesRawItemFormat false false false false false false false false false false true
compatInsecureCookieDefaults true true true true true true true true true false false

Topics