Professional Active Server Pages 3.0
Authors: Brian Francis, Dino Esposito, Andrea Chiarelli
Venue:  (1999)

From the Book:They say that everyone can remember exactly where they were, and what they were doing, when one of those major events in history occurred. It could be when President Kennedy was shot, it could be the day that Elvis Presley died, or it could just be something less historic and much closer to home such as the first time you saw 'Doom'. One of our colleagues firmly believes that the introduction of Microsoft's Active Server Pages (ASP) technology, or Denali as it was called then, was one such important event. He backs this up by remembering exactly what he was doing at the time. He'd just finished work on a book about Web database connectivity techniques, ending with the jewel-in-the-crown at that time-the Internet Database Connector JDQ. The rapid addition of an extra chapter before going to press, to cover this exciting new ASP technology, was the order of the day. In fact that single chapter was probably the reason for most of the book's sales, because suddenly every developer wanted to be 'into' ASP. All this sounds like it was a long time ago, and we have all become quite blase about Active Server Pages and whole range of techniques that have built up around it. But (at the time of writing) this was less than three years ago. Yet here we are, with version 3.0 of ASP just released, and with a feature set, performance and capabilities that leave the original version 1.0 standing in the dust. What Is This Book About? This book is about Active Server Pages 3.0, as included with Windows 2000. However, because ASP is now a core part of so many Web-oriented features within Windows, this book covers a far wider area than just how ASP works. ASP ismaturing all the time to encompass more integration with other Windows services and software, and so there are many other areas that impinge directly on the use and performance of ASP. In particular this involves the Windows operating system itself, including the new security features of Windows 2000, and the Internet server software that comes with Windows 2000 - Internet Information Server (IIS). On top of this are the other less obvious services, which also have a direct or indirect effect on the way that ASP works. These include COM+, the various Internet service administration tools, and - indirectly - the many other services and installed software packages that either provide additional functionality to ASP, or which have interfaces that are available for use in ASP. In fact, this is really where ASP comes into its own, and why it has become such an integral part of working with Windows on the Internet. ASP introduced the concept of using ActiveX interfaces or discreet component objects (separate controls that provide a COM interface) within Web scripts, rather than running external executable programs as had previously been the norm in other Web scripting languages (such as Perl). This integration with COM and ActiveX means that ASP can effectively access anything on the Web server, or a connected network, which provides a suitable interface. From this alone, a huge market has grown up for components and objects that implement or encapsulate specific functions. More than that, almost all installed software and services in Windows either include a set of specific ActiveX components, or directly exposes a COM interface, to allow ASP to access it. So, as well as chapters all about the roots of ASP, the base object structure, and how it's used, you'll also see chapters that demonstrate the many different ways that ASP integrates seamlessly with other software and services in Windows. One of the most obvious of these is access to data in a relational database or other type of data store (such as Active Directory), and you'll see several chapters devoted to these topics. We'll also explore the intimate relationship between Internet Information Server and COM and the new COM+, and see how ASP has changed the way that it hosts and executes external components s provide better performance and scalability. This also affects the way that components are designed and built, and we'll be exploring this topic in some depth as well. Who Is This Book For? When Active Server Pages was first introduced, we produced a book covering that initial version from the point of view of a beginner to the technology. Fair enough, because at that point everyone was a beginner. However, the runaway success of ASP means that this is no longer the case. There are many millions of knowledgeable and active ASP developers out there who want hard-core technical coverage of ASP in its new version. Then, when version 2.0 of ASP was released, we produced a separate beginner's guide, and this is also the case with version 3.0. This book is the Professional- level version, and is aimed at two categories of developers. Firstly, it is designed to satisfy the needs of those who are already well practiced in the skills of ASP and server-side Web application development. Secondly, it will be a useful and fasttrack guide to those who are less familiar with ASP, but have a server-side Web application development background - perhaps in the use of Perl, IDC, etc. For newcomers to Web applications and dynamic Web page creation, we recommend you look at Beginning Active Server Pages 3.0 (ISBN 1-861003-38-2) first. Version 3.0 of ASP in itself is not an earth-shattering upgrade. In fact, ASP is reaching the point where there isn't much more that can be done with it. However, the wish lists of most developers should be fulfilled with the new version. There are many subtle changes to the way that it works, in the scripting engines that are included, in the Web server (IIS) itself and in the administration tools. There are also some fundamental changes in the IIS/COM(+) relationship, which it's important that you grasp. If you didn't really do much with COM and NITS in version 2.0 of ASP (a lot of people managed to ignore them), then now is the time to get to grips with them and start building pages and components to integrate with it.