Prepare

  1. Move in Apps-Dev list to "2sxc 17... (WIP)"
  2. Create branch "strong-typed"
  3. Update version to be x.17 (eg. v4.03 should become 04.17)
  4. Update app requirements to be 17.06.02
  5. add the .sln and .csproj files according to https://go.2sxc.org/vscode 
  6. if the app uses staging/live editions, also update create/update the App_Data/app.json file
    1. Make sure it uses schema 17 (see example in Mobius)
    2. add the editions that are used

Generate

When generating, if we use editions for bs5 etc. then do it in the root, if we use editions for staging/live, then ATM only do it in staging to publish later. 

  1. generate types
  2. generate razor base class
  3. if necessary (don't always do this) generate Service Base class
  4. if necessary (don't always do this) generate WebApi Base class

Implement changes in BS5 only

  1. All razors which use App.Settings/Resources
    1. must inherit from AppCode.Razor.AppRazor - or from a derived type
    2. change all accesses to the settings/resources to use the direct property
  2. Helpers
    1. Decide which to
      1. convert to services
      2. to extend in the AppRazor
      3. to create a custom RazorBase which we'll extend - eg. RazorListBase
    2. change to using these instead of the helpers
    3. if the helpers are only used in this edition, remove the originals
  3. Switch data to typed
    1. Decide where to
      1. create a custom RazorBase
      2. just use As<...> to do it in the razor
    2. Make all changes
  4. clean up other stuff
    1. Test has to > IsNotEmpty ex. spot.IsNotEmpty("Image")
    2. variable where it is needed, not just at the top
       

Changes WebApi

  • todo

Control

  1. Your code should not have any GetCode(...) or CreateInstance(...) any more

Pre-Deploy

  1. publish staging to live
  2. update readme to record what was done, what version it uses etc.
  3. anything else?