When creating things for 2sxc 11, please always use the following conventions.

Code

  1. Follow the standard guide on RazorComponents - migrate
  2. Move functions, complex data manipiulation or multiple used snippets to code behind
    More info
  3. Snippets that are used in multiple views should be outsourced into their own file in the shared folder
    Pay attention that the app does not get too split up and is still easy to customize for a web designer
  4. If the app uses a kind of Polymorphism, simplify it
    1. For bs3/bs4 use this checklist
    2. For staging/live use this checklist
  5. Change the inheritance of the 2sxc ApiController in web apis to: public class XYZController : ToSic.Sxc.Dnn.ApiController to ensure that we're using the newest mode.
  6. Ensure paths are properly encoded by using @Tags.SafeUrl() in href or src attributes
  7. Use Tosic.Razor.Blade HtmlPage to set page Title, Metadata, headers, JsonLD, etc.
  8. Toolbars
    1. Try to use only hover toolbars
    2. Use the newest syntax for customized toolbars.
  9. Do RazorComponent adjustments
    1. Replace String.IsNullOrEmpty with Text.Has
    2. Replace Permissions.UserMayEditContent with Edit.Enabled
    3. Replace x.Count() != 0 with x.Any()
    4. Replace AsDynamic/AsList(Data["default"]) with AsDynamic/AsList(Data)
    5. Replace ToString("dd.MM.yyyy")/ToString("MM/dd/yyyy") with ToString("d")

App Administration (2sxc)

  1. Try to simplify the queries in general, logically and technically
    1. Change all queries to use Parameters only
    2. If there are different Streams for admins and normal users, use the StreamPick DataSource
    3. Outsource duplicated query parts into their own query and use them with the QueryRun DataSource
    4. Make use of the Fallback, if a stream could return 0 entries
  2. Adjust the required 2sxc version in the app package definition

Publishing

  1. Do a quality check
  2. If everything is ready, publish the app