Home Page -------------------
[Home Page] - [Reviews Main]
-------------------

Book Review
Visual C++ ISAPI Programming by Michael Tracy
Recommended
ISBN: 1 874416 66 4       Publisher: Wrox Press       Pages: 273pp       Price: £36-99
Categories:   MS Windows     microsoft     internet    
Reviewed by Ian Brunt in C Vu 9-6 (Sep 1997)
The Internet Server Application Programming Interface (ISAPI) is another one of Microsoft's 'open' APIs. This slim volume, using Microsoft's Internet Information Server (IIS) and Visual C++, shows how the functionality of any conforming Internet server can be extended and covers the two types of ISAPI programs, extensions and filters. Extensions perform a similar function to traditional CGI programs, accept-ing input, processing and providing output. Filters are potentially more powerful and allow any server event such as selecting a URL, executing a program, logging on, etc. to be intercepted and modified both before and after the server has dealt with them.

After a brief introduction to ISAPI and its alternatives, the book consists of a section each on extensions and filters followed by a sizeable appendix.

The first section introduces extensions, how they hook into the server, the main control structures, general input and output and the relevant MFC classes. There then follows four good examples on navigation, database access, cookies and emailing forms. The navigation example shows how to present a user with a listbox of options and how to deal with their response. The database example demonstrates how to obtain a users personal details and via ODBC store them in a database. Within this example there is a sub-plot of covering thread safety with regards to both the MFC classes and ODBC drivers. The cookies example demonstrates the ability for a user to create a custom homepage and be able to maintain their selection between multiple visits to the site. The email example shows how to perform the traditional emailing of form data, with a good introduction of sockets, multi-threading and SMTP.

The filters section contains examples on document conversion, user authentication and some general topics. As the size and quality of any installed filters can seriously affect the performance of a server, most of the examples are created without the MFCs. The automatic document conversion shows a filter that, when a particular document type is selected, actually transmits one of three file types, depending upon the browsers abilities. The user authentication example shows how to restrict a visitors movement within a site, depending upon their registration details and is linked with the earlier database example. There are then general filters for logging the visitors to a site in different ways and for changing the type of graphics file sent depending on the browser being used.

The appendix covers an ISAPI debugger that enables the applications to be initially tested without the need for a full blown Internet server. The source code for this and all of the other examples in the book may be obtained via ftp or by sending a disc to the publishers. Also included is a summary of HTML 2.0 and 3.2 tags and their support in IE 3.0 and Navigator 3.0 together with a crash course on HTTP. Considering this book's size, the author has managed to cover a lot of ground without being rushed. Indeed the layout and examples give the impression that this book has been created from real-world use. The included code listings appear for illustration and not simply for padding and their are useful introductions to other relevant topics such as multi-threading, type safety and sockets.

If you need to write extensions for your web server and it supports ISAPI, this is an excellent, clear and concise introduction.


Last Update - 13 May 2001.

To link to this review, please use the URL: http://www.accu.org/bookreviews/public/reviews/v/v000103.htm

Copyright © The Association of C & C++ Users 1998-2000. All rights reserved.

Mirrored from http://www.accu.org/