Composite C1 v6.10 Release Notes

Release Date: 2020-10-08 // about 1 year ago
  • C1 CMS 6.10 (6.10.7583.21856)

    Download

    πŸš€ Download C1 CMS 6.10

    What’s new in C1 CMS 6.10?

    πŸ“š CodeBasedFunctionRegistry as a simple way to register a C# method as a C1 function (Documentation)

    πŸ› Bug fixes

    πŸ›  Multiple fixes to ResxEditor
    Selecting a position for a new page doesn't work if there are multiple versions of any page at the same level of the tree #751
    "{body}#xD;" added to TextArea parameter value in function #755

    CodeBasedFunctionProvider now creates objects with ActivatorUtilities @burningice2866
    βš™ Runtime compilation is now based on DotNetCompilerPlatform #735 @burningice2866

    🐎 Performance and caching fixes

    PageObjectCacheFunction evaluating parameters, even when the result value being returned from the cache
    CmsPageHttpHandler should disable public caching when there's a function with PreventFunctionOutputCaching == true
    PageRenderer should disable output cache when there's a function with PreventFunctionOutputCaching == true


Previous changes from v6.9

  • C1 CMS 6.9 (6.9.7410.31615)

    Download

    πŸš€ Download C1 CMS 6.9

    What’s new in C1 CMS 6.9?

    • πŸ‘ Better support for running C1 from the command line.
    • A new rendering pipeline
    • Donut caching

    A new rendering pipeline

    🌐 There's a new option in Composite.config that allows rendering pages without using ASP.NET Web Forms internally.

    <configuration>
      <Composite.Core.Configuration.Plugins.GlobalSettingsProviderConfiguration ..>
        <GlobalSettingsProviderPlugins>
          <add ... omitAspNetWebFormsSupport="false" />
    

    🐎 When set to "true", rendering UserControl functions is no longer supported, but in exchange, there's a performance gain and it enables us to build some rendering related features on top of it, namely "donut caching".

    "Donut caching"

    On a page with dynamic/user specific content, where ASP.NET full-page caching is usually not applicable, now it is possible to mark certain functions as "excluded from the cache". By doing so, you will have all the other parts of the content cached server side.

    To use the feature:

    βž• Add or set the attribute value omitAspNetWebFormsSupport="true" in /App_Data/Composite/Composite.config

    Override PreventFunctionOutputCaching on a Razor function with dynamic content:

    @inherits RazorFunction
    
    @functions {
        public override string FunctionDescription { get { return "Shows a timestamp"; } }
        public override bool PreventFunctionOutputCaching { get { return true; } }
    }
    
    <div xmlns="http://www.w3.org/1999/xhtml" style="color:red; font-size:34px">
        Timestamp: @DateTime.Now.ToString("s")
    </div>
    

    🌐 1. Enable the full page caching in web.config

    πŸ›  Minor changes and bug fixes

    • πŸ›  Fixed: the console search is not working when SqlDataProvider is used #720
    • πŸ›  Fixed: the page selector widget is not showing a previously selected value when being opened.
    • ⚑️ Updated: the list of self-closing HTML elements #694