Production Drawing Architecture and Capstone
One OperationsModel
sits behind all four surfaces — the painted gauges, the painted grid cells, the Canvas topology and the
PNG export — with a shared geometry layer, a RenderMetrics recorder, one measured optimisation, four
degraded paths that are actually executed, an accessible table of every value the graphics show, and a
test project for the geometry.
The three remaining Module 1 surfaces - Label + ProgressBar, a Wisej.Web.Canvas and an
off-screen Bitmap in a PictureBox - stay on the operations page under the gauges, so the same
reading can still be compared across surfaces. Surface 2, the inline Paint handler, is now the
TelemetryGauge control itself.
This folder is the complete application at the end of the course.
Run it
cd "Drawing and Painting Course/Module 7/VisualOperationsStudio"
dotnet run -f net10.0 --urls http://localhost:6007
cd "Drawing and Painting Course/Module 7"
dotnet test VisualOperationsStudio.Tests/VisualOperationsStudio.Tests.csproj
Open http://localhost:6007. The tests need no Wisej session, licence or browser: the geometry layer is ordinary arithmetic, which is the point of keeping it separate.
The demo script
| Step | What to look for |
|---|---|
| Take reading | The spindle gauge moves and the values table follows it. One changed reading is one repaint. |
| Resize the browser | Gauges and cells repaint from the server; the Canvas goes blank and Redraw rebuilds it. |
| Scroll the grid | Every newly visible painted cell calls the one guarded CellPaint handler. |
| Plant topology → drag and zoom a node | The same model, a different surface. |
| Export PNG | The bytes are rendered from the model, never screenshotted from the Canvas. |
| Back, then Render metrics | Median times per surface, and the last few individual renders with their sizes and object counts. |
| Run degraded checks | Empty data, zero-sized surface, inverted range and missing font, each one executed and reported. |