Here’s the outline I’ve come up with for the web framework guide. @greg_smalter what do you think?
Prereqs:
Getting started (including database creation)
Database migration - run it with a specific script that creates a bunch of data for us. This will include
Data access - so you understand what retrieval and mod classes are
Sections of guide:
Setup - run DB script to create CustomerTypes table with two rows (business customers and personal customers) and empty Customers table with a bunch of columns of different types
Simple page construction with loop to create section for each customer type. Use row constants to vary display by type. Explain built-in UI.
Creating a second page (the customer add/edit form) and linking to it w/EwfHyperlink. Explain PageInfo/ResourceInfo concept. Form page should be child of the first page. Explain query parameters. Load customer row if in edit mode.
Explain FormState class and how it connects validations with post-backs. Explain PostBack objects.
Add controls to the form. Explain FormItemList and how it has different modes. Control types to include: text, email, numeric text, number, checkbox, drop-down, date.
Add built-in Submit button to bottom.
Go back to first page and add a table to each section to display existing customers.
Use a DataValue to create a checkbox and nest one of the controls beneath it. Then explain PageModificationValue and do a similar thing with another control to explain DisplaySetup. Also illustrate dynamic CSS classes and explain ElementClass generation.
Explain intermediate post-backs and component state, which are used for changing parts of the page. Explain why you need to tell the framework which parts of page are changing (concurrency checks, and usability when async JS post-back is implemented). Explain ethereal components and why they still need to have a location in the tree.
Durable component state: Make a customer type radio list that changes which form fields are present.
Transient component state: Make a list of input fields with a button that adds a new slot to the bottom.
Use autofocus regions to put cursor in good place after post-back.
Add user-management to the system with three roles (reference separate guide for adding user management). Show built-in user editor. Make first page accessible to two of the roles, and form accessible only to one role. Explain inherited access restrictions.