At the same time that server-side web development was moving through an alphabet
soup of technologies, a new type of programming was gaining popularity. Developers
began to experiment with the different ways they could enhance web pages by embedding
multimedia and miniature applets built with JavaScript, DHTML (Dynamic HTML),
and Java code. These client-side technologies don’t involve any server processing.
Instead, the complete application is downloaded to the client browser, which executes it
locally.
The greatest problem with client-side technologies is that they aren’t supported
equally by all browsers and operating systems. One of the reasons that web development
is so popular in the first place is because web applications don’t require setup CDs, downloads,
and other tedious (and error-prone) deployment steps. Instead, a web application
can be used on any computer that has Internet access. But when developers use clientside
technologies, they encounter a few familiar headaches. Suddenly, cross-browser
compatibility becomes a problem. Developers are forced to test their websites with different
operating systems and browsers, and they might even need to distribute browser
updates to their clients. In other words, the client-side model sacrifices some of the most
important benefits of web development.
For that reason, ASP.NET is designed as a server-side technology. All ASP.NET code
executes on the server. When the code is finished executing, the user receives an ordinary
HTML page, which can be viewed in any browser.