Wisej.NET Foundations
One runnable Wisej.NET 4 application per module of the Wisej.NET Foundations course, built from each
module's lesson guide, lab guide and walkthrough video. Every sample follows the same layout: the screen the
lab asks for, built with the control names the lab guide uses, plus an event log card that shows what
the server-side C# did for every click, a status label, and buttons that exercise the success path, a
progress path where the module has one, at least one failure path and the recovery. Each module folder has
its own README.md (what to click, lab steps → code map, self-check answers) and a docs/ folder with the
lab deliverables.
Requirements: .NET 10 SDK and the Wisej-4 4.1.0 NuGet package. Nothing is deployed anywhere.
The modules
| Module | What it builds |
|---|---|
| 1 · How Wisej.NET works | Window1: the first app from the walkthrough — lblTitle "What's your name?", txtName, btnSayHello, lblStatus greeting |
| 2 · Designer, properties & events | DashboardWindow: lblTitle, lblStatus, pnlServices with three service labels, Start / Stop / Reset / Refresh, lstEventLog + AddLog |
| 3 · Application shell & navigation | MainPage : Page shell: docked header / nav / content / status, four UserControl views, one NavigateTo, view-only Settings for a Support Agent |
| 4 · Data binding & layout | TicketsWindow: Ticket + TicketService, SplitContainer, dgvTickets bound through a BindingSource, detail controls, btnSaveTicket |
| 5 · Dialogs & validation | the ticket grid + one TicketDialog for New and Edit, ValidateForm, DialogResult.OK, refresh only after a successful save |
| 6 · State, background work & errors | JobsWindow: Start Import / Export, Cancel, progress bar, job log, async/await + try/catch/finally, safe messages, per-session state |
| 7 · Theming & UI modernization | MainWindow: theme selector (Application.LoadTheme), active nav state, metric cards, grouped commands, recent activity — Module 5 ticket logic reused unchanged |
| 8 · JavaScript widget | StatusPage: widStatus (Wisej.Web.Widget) fed by a C# StatusService, Widgets/statusGauge.js + .css, data card, Refresh / Set Healthy / Warning / Critical, gaugeClick event |
| 9 · Configuration, security & deployment | ReleaseReviewWindow: release info, required / optional checklist, deployment notes, role-gated review with a server-side re-check, license key from secure config, troubleshooting log |
| 10 · Capstone | Window1 mini helpdesk: left-nav shell (Dashboard, Tickets, Architecture, Code Review, Deployment, Next Steps), ticket CRUD with TicketDialog + TicketValidator + TicketService over a fake repository, dashboard counts, notes screens |
Run any module from its WisejTrainingApp project folder. The projects multi-target net10.0-windows and
net10.0, so dotnet run needs a framework (-f net10.0, or -f net10.0-windows), e.g.
cd "LearnWisej-Samples/Foundations Course/Module 4/WisejTrainingApp"
dotnet run -f net10.0 --urls http://localhost:5084
or open the WisejTrainingApp.slnx in the module folder with Visual Studio and press F5.