Now, we have looked at the first code to generate a form and composed a very simple interface consisting of a button. As you may have noticed, F# has no visual designer as present in the other .NET languages. There are several ways of composing interfaces in F#:
Writing interface code manually
Using the C# visual designer and converting the code into F#
Building a library using other .NET language and using it from F#
Building your own visual designer to output F# code
In this book, we will mainly use the first alternative—writing interface code manually. This may seem tedious, but the upside is total control over the layout. We'll now look at a larger example using an agent to keep track of the highest number and a user interface with a button. When a user clicks on that button, a random number is sent to the agent (see the following screenshot). The agent then outputs the highest number every second. Also, the example illustrates the use of namespaces and modules in a realistic...