The World Wide Web began its life as a platform for sharing documents over the Internet, but now it is used for much more than simple document publishing. In fact, most commercial and corporate Internet sites can be more accurately described as Web applications because they require complex programming logic and a myriad of automated, back-end processes to create a compelling, informative experience for their target users. Web technology is also experiencing widespread growth as an effective platform for deploying internal, corporate intranet applications and external, business-to-business extranet applications.
Dynamic Web applications must be able to coordinate a variety of components and processing that are necessary to provide user interactivity and up-to-date information (for example, real-time data and access to dynamic information stored in databases). These Web applications have server-side processing, commonly accomplished with the use of ASP (Active Server Pages) or CGI (common gateway interface) applications, to process forms, respond to user input, and format database information into HTML (hypertext markup language) pages constructed on the fly. Often the applications must integrate with existing systems within an organization, such as product and customer databases, as well as order processing systems and various other transaction-oriented systems. On the client, the Web pages themselves increasingly contain programming logic such as Microsoft JScript or Microsoft VBScript (Visual Basic, Scripting Edition), as well as embedded software components such as Java applets and ActiveX controls that can provide advanced functionality to users.
Microsoft Visual InterDev 1 was one of the first integrated, visual tools for building dynamic Web applications, and it provided developers the ability to quickly build powerful ASP applications using design-time controls, ActiveX components, and other technologies. As powerful as Visual InterDev 1 was, however, it did not provide a graphical development environment, an object-based development paradigm, or a complete object model for development and thus did not satisfy the needs of many developers.