Web applications have a lot going for them. For example, they can be run on a large number of diverse clients. A particular Web application might run on a PC, a Macintosh computer, a Pocket PC, or, in many cases, all of these environments. The user experience might not always be perfect on all devices, but often it is good enough.
Web applications can also be run remotely by users who are not at the location of the actual application. The exact location of the server that houses the application is of virtually no consequence to users of the application. Whether the server is in the next room or around the world, in most cases a well-designed Web application performs equally well. Those of us who have been around long enough to create large-scale client/server applications may recall the process of carefully crafting a network structure to ensure that the clients and servers were joined via a fast connection. With Web applications, this task is eliminated.
However, some serious limitations exist when it comes to allowing users to customize Web applications. By cleverly applying themes and cascading style sheets (covered in Chapter 3), a Web developer can allow users to change the overall look of the application. Even the layout of the application can be changed for example, by using cascading style sheets, you can allow users to move a menu from the left side of the page to the right side. However, for other kinds of changes, such as adding a stock ticker or removing a pane that displays the current weather, some other technology is required.
Fortunately, Microsoft ASP.NET 2.0 offers a new feature, borrowed from Microsoft SharePoint Products and Technologies, called Web Parts. Web Parts are little bits of functionality that can be added or removed by users as they run the application. What Web Parts can do is limited only by the imagination of the developer.