Examples
95 runnable Wisej.NET 4 applications, one per module of the LearnWisej courses. Each one is a complete Visual Studio solution built from that module's lesson guide, lab guide and walkthrough video, so you can open the lab, run the finished sample next to it, click through it and compare.
Every sample follows the same frame: the screen on the left, a live trace card on the right that logs what the server did for every click, and a button bar that exercises the success path, a progress path, at least one failure path and the recovery — so every anti-pattern can be reproduced on screen and then fixed rather than only described.
Get the code
The courses
| Course | Samples | Project | What you build |
|---|---|---|---|
| Wisej.NET Foundations | 10 | WisejTrainingApp | Your first windows, designer, navigation shell, data binding, dialogs, background work, theming, a JavaScript widget, deployment, and a mini helpdesk capstone |
| Mastering the Control Library | 7 | OperationsConsole | An Operations Console that grows module by module: editors and validation, containers and layouts, trees and lists, DataGridView mastery, charts and documents, a custom widget |
| Theming & Responsive Layouts | 7 | AdaptiveOps | An Adaptive Operations Console: theme JSON, Theme Builder, CSS and states, Dock/Anchor, Flow/Table/Flex layouts, ClientProfiles.json, accessibility and performance |
| Validation in Wisej.NET | 7 | ValidationClinic | Field events, ErrorProvider feedback, the Validation extender, custom rules, bound model errors, grid validation and a complete Save pipeline |
| Data Binding with EF Core | 7 | SupportDesk | A Support Desk Data Console on EF Core 10 + SQLite: DI bridge and context lifetimes, modeling and migrations, BindingSource grids, CRUD editors, validation, async and performance, concurrency |
| Real-Time Apps with Server Push | 7 | TicketOpsLive | TicketOps Live: WebSocket push vs polling, session ownership, progress without refresh, update cadence, a live ticket board, one hub feeding many sessions, production review |
| Application Integration | 10 | IntegrationLab | JavaScript widgets in Wisej.NET: one-off Widgets, reusable widget classes, custom controls with theme mixins, Call/CallAsync/EvalAsync, events and contracts, data endpoints, complex data widgets, a heatmap capstone |
| From WinForms to the Web | 7 | OrderDesk.Web | Migrating LegacyOrderDesk (WinForms) to the web: discovery and risk mapping, project conversion, forms and modal workflow, sessions and statics, grids and performance, files and reports, secure deployment |
| Production Architecture Deep Dive | 12 | TicketOps | The TicketOps Console built the production way: project structure, startup and session state, responsive composition, data workflows, safe save pipelines, modal transactions, background sync, DI, interop, localization, security, deployment |
| Performance & Profiling | 7 | WisejPerfLab | WisejPerfLab, a support desk over 50,000 tickets, made fast with evidence: scenarios and a budget, the Visual Studio profiling workflow, the CPU hot path, session leaks and allocations, a virtual grid and a lazy tree, one query per page and a non-blocking export, then a capacity model and a health check |
| Enterprise Wisej.NET: Architecture to Cloud | 14 | EnterpriseOps | The EnterpriseOps Command Center, a multi-tenant field-service system: governance, migration strategy, tenancy and concurrency, EF Core transactions, high-volume UX, background pipelines, wizards, custom components, secure interop, SSO and audit, observability, cloud release engineering, PWA/offline, AI-assisted delivery |
Running a sample
You need the .NET 10 SDK and access to the Wisej-4 4.1.0
NuGet package. The Data Binding course also uses EF Core 10 and the dotnet-ef tool, and the Control
Library course restores Wisej-4-ChartJS from Module 6 on; the Performance & Profiling course uses both,
EF Core 10 with the SQLite provider and Wisej-4-ChartJS, in every module. Nothing is deployed anywhere: every sample
runs on localhost.
Every module folder contains a .slnx solution and the project folder. Open the solution in Visual
Studio and press F5, or run it from the command line. The projects multi-target net10.0-windows and
net10.0, so dotnet run needs a framework:
cd "Foundations Course/Module 4/WisejTrainingApp"
dotnet run -f net10.0 --urls http://localhost:5084
Then open the printed URL in a browser. Each course page lists the port assigned to every module, so several modules can run side by side.
Modules with unit tests (the Data Binding course and Validation capstone) run them with dotnet test from the module folder.
How a sample is laid out
All 95 samples follow the same frame so that a learner who has finished one module knows where to look in the next:
- The lab screen on the left, built with the control names the lab guide uses.
- A live trace card on the right that logs what the server did for every click: the event log, the server ⇄ client message trace, the EF Core lifetime and SQL trace, or the layer-by-layer activity trace, depending on the course.
- A button bar that exercises the success path, a progress path, at least one failure path and the recovery, so every anti-pattern the lesson warns about can be reproduced and then fixed on screen.
- A
docs/folder with the lab deliverables written as Markdown: architecture notes, ADRs, checklists, migration logs, demo scripts.
Courses that build one application across modules (Control Library, Data Binding, Real-Time Push,
Theming, Validation, WinForms to the Web, Production Architecture, Enterprise, Performance & Profiling) are cumulative: each
Module N folder is the complete application as it stands at the end of module N, and the last module
is the finished capstone.
Stand-ins instead of third-party packages
The courses ship no commercial or third-party libraries, so the samples carry small self-contained
stand-ins where a real product would go: JavaScript "vendor" gauges, knobs, charts, grids and heatmaps
for the Application Integration course, a minimal .xlsx writer and a single-page PDF writer for the
migration course, an in-memory order store seeded with the orders shown in the videos. The
orders.csv at the repository root is the file used for the CSV upload labs. Swap in a
real library and only the adapter or service class changes.