The two models of program execution (which are not necessarily mutually exclusive) are linear and event-driven. The key to understanding ASP.NET is that it is event-driven.
Linear programs move from step 1, to step 2, and so on, to the end of all the steps, as shown in Figure 3-1. Flow control structures within the code (such as loops,
if statements, and method calls) may redirect the flow of the program, but essentially, once the program execution begins, it runs its course, unaffected by anything the user or system may do. Before GUI environments, most computer programs were linear.
Figure 3-1. Linear program execution
In contrast, event-driven programming responds to something happening, such as a button being pressed, as shown in Figure 3-2. A website or web form waits until some user action occurs and then an event dispatcher triggers the code that deals with the particular event.
Figure 3-2. Event-driven program execution
Most often, events are generated by user actions, but events can be raised by the web server as well. For example, the system will raise an event when the user’s session expires, or when an unhandled error has occurred.
In ASP.NET, some objects may raise events while other objects may have assigned event handlers. For example, a button may raise the
Click event, ...