The program winds up quite a bit more complex in VB.NET than in SPLat. There are two reasons for this:
There are two main aspects of the VB.NET program: A visual form, and the actual program code.
The form serves, in this case, as a substitute for the real-world apparatus that we imagine the program to be controlling, namely a tank of fluid that must be maintained at a temperature of about 85°C. The form is what we see on the computer screen, and interact with.
The program code is, well, the program. It does the work that implements the required state machine functionality.
I have kept the form design dead simple, so you should be able to replicate it with a minimum of fuss. With the VB.NET visual form designer it is basically a drag and drop operation.
Figure 9 shows the form while the program is in state 1 (heating). A gadget in the middle lets you adjust the temperature reading to simulate the effect of the heater. The circle to the left of the alarm reset button will turn red if the alarm trips. The current state number and remaining time until timeout are show at the bottom, for diagnostic purposes.