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
  • 7.1
  • 7.11
  • 7.12 (this is actually 7.11 build 3)

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.4 1.4 build 11 7.1 7.11 7.11 build 3
compatAlwaysEncodeQueryParams true true true  true true 
compatConvertInvariantCulture true true true true  true 
compatItemDataViperUsesDefaultParameterForEmptyDataTable true true true true  true 
compatResolveSxmlInXsltFormatting true true true true true 
compatSaveBufferScope field field field  field field 
compatStartHierarchyAtLevelZero true true true true true 
compatTypedViperDefaults true true true true  true 
compatUseCurrentRoleToDetermineContentAccess false false false  false false 
compatJsonReturnsNulls true true true true  true 
compatClearSaveBuffersOnInstructionSourceChange true true true true  true 
compatRegionOverrulesLocalBufferScope false false false false  false
compatStaticallyResolveSmartletPropertyDefaults false false false false  false
compatDebugWriteCultureInvariant true true true true   true
compatInsecureCookieDefaults true false false false  false
compatCompareDateTimeInUTC  false false true  true  true
compatSiteMapUsesRawItemFormat false  false true  true  true
compatDefaultHandlingMetaNavigation false  false true  true  true
compatDefaultPreFollowReferenceItem false  false false true  true
compatStripHtmlInEmailBody true true  true true false
compatUseCurrentCultureForFormatting false  false   false false  true 

Topics