close

Search whole Azing

check_circle

Notes: this assumes you now have 2sxc 10.24 or newer running. You can also just start with step one and reload the page, then fix issues step-by step.

Always Required

  1. Add this to the first line: @inherits ToSic.Sxc.Dnn.RazorComponent
    Note: no semicolon at the end (;). This first line to tells the compiler to use the new base class which enables new features and disables obsolete features. 
  2. Change any @Content.Toolbar to 
    this also applies to other dynamic objects that use .Toolbar
    1. @Edit.TagToolbar(Content) - recommended see this
    2. or @Edit.Toolbar(Content) (this behaves the same as the previous one)

Changes for Content-Lists

  1. Change all ListContent to Header
    The old name ListContent was always confusing, so in RazorComponents we changed it to Header and disabled the use of ListContent. 
  2. Change all ListPresentation or ListContent.Presentation to Header.Presentation

Changes for Data-Code (LINQ and List-Loops)

  1. Change all list-uses of AsDynamic(...) to AsList(...)
    Previously AsDynamic was used both for single-items as well as for lists. The compiler couldn't always figure out what to use, so you had to cast objects - which was nasty. Now you use AsList for lists, and AsDynamic for single items.
    See also AsDynamic(...) - Magic Objects and AsList(...) - Magic Lists
  2. If you ever cast to IEntity, use the new one on ToSic.Eav.Data.IEntity - see this
  3. If you ever had a DynamicEntity cast change that to dynamic - see this
  4. If you ever had to cast to IEnumerable, prefer... 
    to use, use 
    @using Dynlist = System.Collections.Generic.IEnumerable<dynamic>;
    to cast it - in the code it will look a bit like this:
    (person.Awards as Dynlist).Select(a => a.Name)

Changes to jQuery

For performance reasons jQuery isn't automatically included any more. If your code expects to use jQuery, make sure you tell DNN about it.

Changes to CustomizeData or CustomizeSearch

  1. Use Purpose instead of InstancePurpose
  2. The signature of CustomizeSearch has slightly different object types - see docs