Skip to main content

Control Library Mental Model

This example is the Operations Console shell as a Wisej.NET Page with four docked areas (navigation left, command top, status bottom, content fill — added last), six placeholder UserControl pages, one Navigate(Control content, string title) method every navigation button routes through, and the ControlSelection.md note. The stretch goal (selected control, selected record, active profile, last refresh) sits in the status area.

Run it

cd "LearnWisej-Samples/Mastering the Control Library Course/Module 1/OperationsConsole"
dotnet run -f net10.0 --urls http://localhost:5701

Then open http://localhost:5701. (Visual Studio: open OperationsConsole.slnx in this folder, press F5.)

What to try

ActionWhat you should see
Nothing yetgreen status "Ready", diagnostics Control: — · Record: — · Profile: Desktop · Refreshed: —
Click EditorsWidgetsthe placeholder page swaps into the content area, status "Showing Lists and Trees", Control: listsTreesButton
Refresh with a section openRefreshed: HH:mm:ss is stamped, status "Editors refreshed at …"
Refresh with no section openamber status "Nothing to refresh — open a section first."
Tick Simulate page failure, click a sectionred status, an AlertBox top-right in plain words, the previous page stays
Untick it, click the section againthe page opens, status is green again
Resize the browser under 1025 px / 601 pxProfile: follows (ClientProfiles.json)

Where things live

OperationsConsole/
├─ MainPage.cs / .Designer.cs the shell: four docked areas, Navigate(), IConsoleShell implementation
├─ Shell/ IConsoleShell (+ StatusLevel), ShellStatus, ISection
├─ Sections/ six placeholder UserControls (title label)
├─ Models/ SectionKey, SectionInfo
├─ Services/SectionCatalog.cs the page factory (SimulateFailure drives the failure path)
├─ docs/ControlSelection.md deliverable: control family per area and per page, alternative considered
└─ ClientProfiles.json Phone ≤ 600 px, Tablet ≤ 1024 px, Desktop